http://wiki.webos-internals.org/index.php?title=Uber_Calendar&feed=atom&action=history
Uber Calendar - Revision history
2024-03-29T12:14:35Z
Revision history for this page on the wiki
MediaWiki 1.35.1
http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=16005&oldid=prev
MetaView at 08:55, 17 May 2011
2011-05-17T08:55:24Z
<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 08:55, 17 May 2011</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The UberCalendar patch enhances the build-in calendar application. It brings more detailed views (like subject lines in week view or shrinked day view) and a lot of other customizations. You will find the latest stable version of this patch in Preware.</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The UberCalendar patch enhances the build-in calendar application. It brings more detailed views (like subject lines in week view or shrinked day view) and a lot of other customizations. You will find the latest stable version of this patch in Preware.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A documentation of all features and settings is available here: http://forums.precentral.net/webos-patches/273919-preference-guide-metaviews-ubercalendar-uc-patch.html</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A documentation of all features and settings is available here: http://forums.precentral.net/webos-patches/273919-preference-guide-metaviews-ubercalendar-uc-patch.html</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A forums thread for questions, comments and more infos about the latest test version can be found here: http://forums.precentral.net/webos-patches/245177-ubercalendar-enhanced-calendar-patch.html</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>A forums thread for questions, comments and more infos about the latest test version can be found here: http://forums.precentral.net/webos-patches/245177-ubercalendar-enhanced-calendar-patch.html</div></td></tr>
</table>
MetaView
http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=16003&oldid=prev
MetaView: removed old stuff and point to precentral threads
2011-05-17T08:54:47Z
<p>removed old stuff and point to precentral threads</p>
<a href="http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=16003&oldid=9793">Show changes</a>
MetaView
http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=9793&oldid=prev
MetaView at 19:29, 5 May 2010
2010-05-05T19:29:21Z
<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 19:29, 5 May 2010</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l102" >Line 102:</td>
<td colspan="2" class="diff-lineno">Line 102:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+///</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+///</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+ if (event.alarm !== undefined) {</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+ if (event.alarm !== undefined) {</div></td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>+ ctx.drawImage(this.imgAlarm, left+4+width-18, subjectTop+1, 12, 12);</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>+ <ins class="diffchange diffchange-inline">try{ </ins>ctx.drawImage(this.imgAlarm, left+4+width-18, subjectTop+1, 12, 12); <ins class="diffchange diffchange-inline">} catch(e){}</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+ }</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+ }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+///</div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>+///</div></td></tr>
</table>
MetaView
http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=9784&oldid=prev
MetaView at 18:36, 4 May 2010
2010-05-04T18:36:36Z
<p></p>
<table class="diff diff-contentalign-left diff-editfont-monospace" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 18:36, 4 May 2010</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l1" >Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td></tr>
<tr><td class='diff-marker'>−</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>There are 2 patch files for the JS source and for the CSS. There are also 2 small icons which need to be copied into the images folder. The icons are here: [http://www.metaviewsoft.de/Calendar/ <del class="diffchange diffchange-inline">icons</del>]</div></td><td class='diff-marker'>+</td><td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>There are 2 patch files for the JS source and for the CSS. There are also 2 small icons which need to be copied into the images folder. The icons are here: [http://www.metaviewsoft.de/Calendar/<ins class="diffchange diffchange-inline">menu-icon-agenda.png Agenda icon] and [http://www.metaviewsoft.de/Calendar/alarm-icon.png Alarm bell</ins>]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><source lang="text"></div></td><td class='diff-marker'> </td><td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><source lang="text"></div></td></tr>
</table>
MetaView
http://wiki.webos-internals.org/index.php?title=Uber_Calendar&diff=9783&oldid=prev
MetaView: New page: There are 2 patch files for the JS source and for the CSS. There are also 2 small icons which need to be copied into the images folder. The icons are here: [http://www.metaviewsoft.de/Cale...
2010-05-04T18:34:56Z
<p>New page: There are 2 patch files for the JS source and for the CSS. There are also 2 small icons which need to be copied into the images folder. The icons are here: [http://www.metaviewsoft.de/Cale...</p>
<p><b>New page</b></p><div>There are 2 patch files for the JS source and for the CSS. There are also 2 small icons which need to be copied into the images folder. The icons are here: [http://www.metaviewsoft.de/Calendar/ icons]<br />
<br />
<source lang="text"><br />
<br />
Name: UberCalendar<br />
Version: 1.4.0-5<br />
Author: metaview, frause<br />
Description: Enhance the calendar views. (MIT license)<br />
<br />
<br />
--- /usr/palm/applications/com.palm.app.calendar/app/controllers/app-assistant.js 2010-01-22 04:25:18.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/app/controllers/app-assistant.js 2010-05-02 11:48:42.000000000 +0200<br />
@@ -489,7 +489,15 @@ var AppAssistant = Class.create({<br />
this.firstUseManager = new FirstUseManager(stageController);<br />
} else {<br />
// Otherwise show the Day View<br />
- stageController.pushScene({name: "day", transition: Mojo.Transition.crossFade, disableSceneScroller: true});<br />
+ var view = "day";<br />
+ var cookie = new Mojo.Model.Cookie("LastView");<br />
+ try {<br />
+ view = cookie.get();<br />
+ } catch (e) {}<br />
+ if ((view != "month") && (view != "week")) {<br />
+ view = "day";<br />
+ }<br />
+ stageController.pushScene({name: view, transition: Mojo.Transition.crossFade, disableSceneScroller: true});<br />
}<br />
},<br />
<br />
--- /usr/palm/applications/com.palm.app.calendar/app/controllers/day-assistant.js 2010-02-09 23:08:26.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/app/controllers/day-assistant.js 2010-05-03 21:10:34.000000000 +0200<br />
@@ -42,6 +42,8 @@ var DayAssistant = Class.create({<br />
this.pendingCalendarSettingsUpdate = false;<br />
//this.pendingOpenScratchEventInDetails = false;<br />
this.snapEffectCount = 0;<br />
+ this.imgAlarm = new Image();<br />
+ this.imgAlarm.src = "images/alarm-icon.png";<br />
<br />
<br />
this.hourHeight = 48;<br />
@@ -212,17 +214,23 @@ var DayAssistant = Class.create({<br />
buildDayTitle: function(doScrim) {<br />
var today = Date.today().clearTime();<br />
var dayDateNoTime = new Date(this.dayDate).clearTime();<br />
+ var weekNumber = new Date(this.dayDate).getISO8601Week();<br />
<br />
if (dayDateNoTime.compareTo(today) == 0) {<br />
- var template = new Template($L("#{todayStr}, #{dateStr}"));<br />
+ var template = new Template($L("#{todayStr}, #{dateStr}") + ", W#{weekStr}");<br />
var todayStr= Mojo.Format.formatRelativeDate(today, {date: "short"}).capitalize();<br />
<br />
var templateModel = {};<br />
templateModel.todayStr = todayStr;<br />
+ templateModel.weekStr = weekNumber;<br />
templateModel.dateStr = Mojo.Format.formatDate(this.dayDate, $L("EEE MMM d"));<br />
this.controller.get('dv_title').update(template.evaluate(templateModel)); // Localize this date format string<br />
} else {<br />
- this.controller.get('dv_title').update(Mojo.Format.formatDate(this.dayDate, $L("EEE MMM d, yyyy"))); // Localize this date format string<br />
+ var template = new Template($L("#{dateStr}") + ", W#{weekStr}");<br />
+ var templateModel = {};<br />
+ templateModel.weekStr = weekNumber;<br />
+ templateModel.dateStr = Mojo.Format.formatDate(this.dayDate, $L("EEE MMM d, yyyy"));<br />
+ this.controller.get('dv_title').update(template.evaluate(templateModel)); // Localize this date format string<br />
}<br />
<br />
if (doScrim) {<br />
@@ -702,6 +710,8 @@ var DayAssistant = Class.create({<br />
//Mojo.Log.info("day-assistant: renderEvent");<br />
if (this.animating && !event.animatible)<br />
return;<br />
+<br />
+//Mojo.Log.error(Object.toJSON(event));<br />
<br />
var ctx = this.divs[whichDay].ctxEvents;<br />
var marginLeft = 28;<br />
@@ -743,6 +753,17 @@ var DayAssistant = Class.create({<br />
ctx.fillRect(left+1, top+height-3, width-2, 1);<br />
<br />
var textTop = top + 30;<br />
+<br />
+///<br />
+ // Alarm<br />
+ if (event.gotFullDetails === undefined) {<br />
+ // get more infos for this event<br />
+ getCalendarService().getEvent(event.id,<br />
+ this.getEventDetails.bind(this, whichDay, event, selected, ghost),<br />
+ function(response) {Mojo.Log.error(response.errorText);},<br />
+ this.controller);<br />
+ }<br />
+///<br />
<br />
// Subject<br />
ctx.fillStyle = this.colors[event.calendarColor].text;<br />
@@ -753,8 +774,14 @@ var DayAssistant = Class.create({<br />
var subjectTop = top+15;<br />
if (bottom >= (top + height))<br />
subjectTop = top+17; // no room for location or note, therefore vertically center subject text<br />
- this.fillText(event.subject, ctx, left+4, subjectTop, width, bottom, 15 /*line height*/); <br />
- <br />
+ this.fillText(event.subject, ctx, left+4, subjectTop, width-((event.alarm !== undefined) ? 18 : 0), bottom, 15 /*line height*/); <br />
+<br />
+///<br />
+ if (event.alarm !== undefined) {<br />
+ ctx.drawImage(this.imgAlarm, left+4+width-18, subjectTop+1, 12, 12);<br />
+ }<br />
+///<br />
+<br />
// Location<br />
if (event.location && (event.location.length > 0) && (textTop < (top + height))) {<br />
ctx.font = "italic bold 14px Prelude";<br />
@@ -769,7 +796,7 @@ var DayAssistant = Class.create({<br />
bottom = top+height;<br />
this.fillText(event.note, ctx, left+4, textTop-2, width, bottom-2, 12 /*line height*/); <br />
}<br />
- <br />
+<br />
if (ghost) {<br />
var selectedColor = "rgba(228, 228, 226, 0.85)"<br />
ctx.fillStyle = selectedColor;<br />
@@ -789,6 +816,14 @@ var DayAssistant = Class.create({<br />
ctx.fillRect(left, top, width, height);<br />
}<br />
},<br />
+<br />
+///<br />
+ getEventDetails: function(whichDay, event, selected, ghost, details) {<br />
+ event.alarm = details.alarm;<br />
+ event.gotFullDetails = true;<br />
+ this.renderEvent(whichDay, event, selected, ghost);<br />
+ },<br />
+///<br />
<br />
getAllDayDimensions: function(index, event) {<br />
var marginLeft = 4;<br />
@@ -1828,6 +1863,7 @@ var DayAssistant = Class.create({<br />
{label:$L('Views'), <br />
toggleCmd:'day', <br />
items:[<br />
+ {label:$L('Agenda'), icon: 'menu-agenda', command:'agenda'},<br />
{label:$L('Day'), icon: 'menu-day', command:'day'}, <br />
{label:$L('Week'), icon: 'menu-week', command:'week'}, <br />
{label:$L('Month'), icon: 'menu-month', command:'month'}<br />
@@ -1854,6 +1890,9 @@ var DayAssistant = Class.create({<br />
this.controller.setupWidget(this.divs[this.PREV_DAY].alldayevents_scroller, undefined, {mode: 'vertical'});<br />
this.controller.setupWidget(this.divs[this.NEXT_DAY].alldayevents_scroller, undefined, {mode: 'vertical'});<br />
<br />
+ var cookie = new Mojo.Model.Cookie("LastView");<br />
+ cookie.put("day");<br />
+<br />
this.CalSelectorHandler = this.calSelector.bindAsEventListener(this);<br />
<br />
// IMPORTANT: Set up the height of the scrollers. If this is not done<br />
@@ -2095,6 +2134,17 @@ var DayAssistant = Class.create({<br />
Event.stop(event);<br />
this.maybeCommitScratchEvent(true);<br />
this.syncAllCalendars();<br />
+ } else if (event.command == 'agenda') {<br />
+ Event.stop(event);<br />
+ this.maybeCommitScratchEvent(true);<br />
+ this.controller.serviceRequest('palm://com.palm.applicationManager', {<br />
+ method: 'launch',<br />
+ parameters: {<br />
+ id: 'com.palm.app.agenda'<br />
+ }<br />
+ });<br />
+ this.menuModel.items[1].toggleCmd = 'day';<br />
+ this.controller.modelChanged(this.menuModel, this);<br />
} <br />
} else if(event.type == Mojo.Event.commandEnable && event.command == Mojo.Menu.prefsCmd) {<br />
// Enable prefs menuitem for this scene.<br />
--- /usr/palm/applications/com.palm.app.calendar/app/controllers/month-assistant.js 2010-01-06 03:09:08.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/app/controllers/month-assistant.js 2010-05-03 21:11:06.000000000 +0200<br />
@@ -5,6 +5,7 @@ var MONTH_DAY_ID_FORMAT = 'MMMM dd yyyy'<br />
var MonthAssistant = Class.create({<br />
<br />
reminderMenuItemId: 3,<br />
+ fullEvts: null,<br />
<br />
initialize: function() {<br />
this.appMenuModel = { visible:true, <br />
@@ -22,12 +23,28 @@ var MonthAssistant = Class.create({<br />
<br />
this.scrollerModel = { scrollbars: false, mode: "vertical-snap", snapIndex: 0, snapElements: { y: [] } };<br />
},<br />
+<br />
+ colors: {"cal-color-blue": "#91d3ea",<br />
+ "cal-color-green": "#8cf08c",<br />
+ "cal-color-yellow": "#e8e37c",<br />
+ "cal-color-gray": "#c2c2c2",<br />
+ "cal-color-orange": "#fbb474",<br />
+ "cal-color-pink": "#f59cbc",<br />
+ "cal-color-red": "#ff9797",<br />
+ "cal-color-purple": "#d9b7ff",<br />
+ "cal-color-teal": "#72dfd2"},<br />
<br />
setupMonth: function(startDate, endDate, callbackfn) <br />
{<br />
+ getCalendarService().getEvents('all', startDate.getTime(), endDate.getTime(), this.getEventsCallback.bind(this), this.controller, this.getEventsFailCallback, {useSlices: true});<br />
getCalendarService().getBusyDays(getCurrentCal(), startDate.getTime(), endDate.getTime(), callbackfn, this.controller);<br />
},<br />
- <br />
+<br />
+ getEventsCallback: function(resp)<br />
+ {<br />
+ this.fullEvts = resp.days;<br />
+ },<br />
+<br />
buildViewHeader: function() <br />
{<br />
//Mojo.Log.info("month-assistant: buildViewHeader");<br />
@@ -37,7 +54,13 @@ var MonthAssistant = Class.create({<br />
<br />
buildMonthTitle: function() <br />
{<br />
- this.mvTitle.innerText = Mojo.Format.formatDate(this.monthDate, $L("MMM yyyy")); // Localize this date format string<br />
+ var wn = new Date(this.monthDate);<br />
+ wn.setDate(1);<br />
+ var firstWeek = wn.getISO8601Week(); <br />
+ wn.setMonth(wn.getMonth()+1);<br />
+ wn.setDate(wn.getDate()-1);<br />
+ var lastWeek = wn.getISO8601Week();<br />
+ this.mvTitle.innerText = Mojo.Format.formatDate(this.monthDate, $L("MMM yyyy")) + ", " + $L("Week") + " " + firstWeek + "-" + lastWeek; // Localize this date format string<br />
},<br />
<br />
buildDayHeader: function() {<br />
@@ -359,26 +382,39 @@ var MonthAssistant = Class.create({<br />
calStyle = getCalendarsManager().getCalColorStyle('id'+getCurrentCal());<br />
}<br />
<br />
+<br />
var weekCell = this._months.rows[0];<br />
var dayCell = weekCell.cells[0];<br />
<br />
+ var cls;<br />
var days = response.days;<br />
var daylen = days.length - 1; // We get back more days of info that we want - 1 more in fact, because its inclusive, rather than exclusive<br />
for (var d = 0; d < daylen; d++) <br />
{<br />
var day = this._token2state(days.charCodeAt(d));<br />
- <br />
+<br />
+ var bgcolor = "";<br />
+ if (this.fullEvts[d].allDayEvents.length > 1)<br />
+ {<br />
+ bgcolor = "gray";<br />
+ }<br />
+ else if (this.fullEvts[d].allDayEvents.length == 1)<br />
+ {<br />
+ bgcolor = this.colors[this.fullEvts[d].allDayEvents[0].calendarColor];<br />
+ }<br />
+<br />
+//Mojo.Log.error(bgcolor, this.fullEvts[d].allDayEvents.length);<br />
var child = dayCell.firstChild;<br />
- var cls;<br />
for (var i = 1; i < 8; i <<= 1)<br />
{<br />
- if (day & (i << 3)) <br />
+ child.style.backgroundColor = bgcolor;<br />
+ if (day & (i << 3))<br />
{<br />
- cls = "monthview-busy-time " + calStyle;<br />
+ cls = "monthview-partly-busy-time " + calStyle;<br />
}<br />
else if (day & i) <br />
{<br />
- cls = "monthview-busy-time";<br />
+ cls = "monthview-partly-busy-time";<br />
}<br />
else <br />
{<br />
@@ -642,6 +678,11 @@ var MonthAssistant = Class.create({<br />
label: $L('Views'),<br />
toggleCmd: 'month',<br />
items: [<br />
+ {<br />
+ label:$L('Agenda'),<br />
+ icon: 'menu-agenda',<br />
+ command:'agenda'<br />
+ },<br />
{<br />
label: $L('Day'),<br />
icon: 'menu-day',<br />
@@ -664,6 +705,9 @@ var MonthAssistant = Class.create({<br />
this.controller.setupWidget(Mojo.Menu.appMenu, {omitDefaultItems:true}, this.appMenuModel);<br />
this.remindersUpdated(); // Update missed reminders menu item<br />
<br />
+ var cookie = new Mojo.Model.Cookie("LastView");<br />
+ cookie.put("month");<br />
+ <br />
this.CalSelectorHandler = this.calSelector.bindAsEventListener(this);<br />
},<br />
<br />
@@ -729,6 +773,16 @@ var MonthAssistant = Class.create({<br />
} else if (event.command == 'reminders') {<br />
Event.stop(event);<br />
this.controller.stageController.pushScene('reminder-list');<br />
+ } else if (event.command == 'agenda') {<br />
+ Event.stop(event);<br />
+ this.controller.serviceRequest('palm://com.palm.applicationManager', {<br />
+ method: 'launch',<br />
+ parameters: {<br />
+ id: 'com.palm.app.agenda'<br />
+ }<br />
+ });<br />
+ this.menuModel.items[1].toggleCmd = 'month';<br />
+ this.controller.modelChanged(this.menuModel, this);<br />
} <br />
}<br />
else if(event.type == Mojo.Event.commandEnable && event.command == Mojo.Menu.prefsCmd) {<br />
--- /usr/palm/applications/com.palm.app.calendar/app/controllers/week-assistant.js 2010-01-06 03:09:08.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/app/controllers/week-assistant.js 2010-05-03 21:11:48.000000000 +0200<br />
@@ -42,6 +42,8 @@ var WeekAssistant = Class.create({<br />
this.COL_POS = [0, 45, 91, 137, 183, 229, 275];<br />
this.pendingRender = false;<br />
this.pendingCalendarSettingsUpdate = false;<br />
+ this.imgAlarm = new Image();<br />
+ this.imgAlarm.src = "images/alarm-icon.png";<br />
},<br />
<br />
getEventChangeCallback: function(response) {<br />
@@ -103,10 +105,12 @@ var WeekAssistant = Class.create({<br />
buildWeekTitle: function() {<br />
var today = Date.today().clearTime();<br />
var dayOfWeek = this.getFirstDayOfWeek(this.weekDate);<br />
+ var weekNumber = new Date(this.weekDate).getISO8601Week();<br />
<br />
- var template = new Template($L("Week of #{dateStr}"));<br />
+ var template = new Template($L("Week") + " #{weekStr}, " + $L("#{dateStr}"));<br />
var templateModel = {};<br />
templateModel.dateStr = Mojo.Format.formatDate(dayOfWeek, $L("MMM d, yyyy"));<br />
+ templateModel.weekStr = weekNumber;<br />
this.title.innerHTML = template.evaluate(templateModel);<br />
<br />
if (this.changingWeeks)<br />
@@ -373,6 +377,13 @@ var WeekAssistant = Class.create({<br />
var startPos = this.startDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
var midPos = this.midDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
var endPos = this.endDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
+ <br />
+ for (var i=1; i<24; i++) {<br />
+ ctx.fillStyle = "rgb(185, 185, 185)";<br />
+ ctx.fillRect(0, i * this.HOUR_HEIGHT - 1, 320, 1);<br />
+ ctx.fillStyle = "rgb(255, 255, 255)";<br />
+ ctx.fillRect(0, i * this.HOUR_HEIGHT, 320, 1);<br />
+ }<br />
<br />
// Draw marker lines<br />
ctx.fillStyle = "rgb(135, 135, 134)";<br />
@@ -388,7 +399,16 @@ var WeekAssistant = Class.create({<br />
<br />
renderStartEndDayLabels: function(whichWeek) {<br />
var ctx = this.weeks[whichWeek].ctxEvents;<br />
- <br />
+<br />
+ // Draw marker labels<br />
+ ctx.fillStyle = "rgb(0, 0, 0)";<br />
+ ctx.font = "bold 14px Prelude";<br />
+<br />
+ for (var i=2; i<24; i+=2) {<br />
+ var endPos = i * this.HOUR_HEIGHT - 1;<br />
+ ctx.strokeText(i, 12, endPos + 24);<br />
+ }<br />
+ /*<br />
var startPos = this.startDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
var midPos = this.midDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
var endPos = this.endDayMarkerPos * this.HOUR_HEIGHT - 1;<br />
@@ -401,6 +421,7 @@ var WeekAssistant = Class.create({<br />
if (this.midDayMarkerPos != this.startDayMarkerPos && this.midDayMarkerPos != this.endDayMarkerPos)<br />
ctx.strokeText(this.midDayMarkerTime, 12, midPos + 24);<br />
ctx.strokeText(this.endDayMarkerTime, 17, endPos + 24);<br />
+ */<br />
},<br />
<br />
renderEmptyWeek: function(whichWeek) {<br />
@@ -488,8 +509,65 @@ var WeekAssistant = Class.create({<br />
<br />
ctx.fillStyle = "rgba(255, 255, 255, 0.10)";<br />
ctx.fillRect(left+1, top+height-3, width-2, 1);<br />
+ <br />
+///<br />
+//Mojo.Log.error(Object.toJSON(event));<br />
+ if (event.subject === undefined) {<br />
+ // get more infos for this event<br />
+ getCalendarService().getEvent(event.id,<br />
+ this.getEventDetails.bind(this, whichWeek, whichDay, event),<br />
+ function(response) {Mojo.Log.error(response.errorText);},<br />
+ this.controller);<br />
+ } else {<br />
+ // Subject<br />
+ ctx.fillStyle = this.colors[event.calendarColor].text;<br />
+ ctx.font = "10px Prelude";<br />
+ var oldAlign = ctx.textAlign;<br />
+ var oldBaseline = ctx.textBaseline;<br />
+ ctx.textAlign = "left";<br />
+ ctx.textBaseline = "top";<br />
+ <br />
+ var text = event.subject;<br />
+ var length = text.length;<br />
+ var metrics = ctx.measureText(text);<br />
+ while ((metrics.width > eventMaxWidth-3) && (length > 0)) {<br />
+ // too large, try one less<br />
+ length--;<br />
+ text = text.substring(0, length);<br />
+ metrics = ctx.measureText(text);<br />
+ }<br />
+ ctx.fillText(text, left+2, top+1);<br />
+ top += 12<br />
+ if (text.length < event.subject.length) {<br />
+ var text = event.subject.substring(text.length);<br />
+ var length = text.length;<br />
+ var metrics = ctx.measureText(text);<br />
+ while ((metrics.width > eventMaxWidth-3) && (length > 0)) {<br />
+ // too large, try one less<br />
+ length--;<br />
+ text = text.substring(0, length);<br />
+ metrics = ctx.measureText(text);<br />
+ }<br />
+ ctx.fillText(text, left+2, top+1);<br />
+ top += 12<br />
+ }<br />
+ if (event.alarm !== undefined) {<br />
+ ctx.drawImage(this.imgAlarm, left+1, top+2, 12, 12);<br />
+ }<br />
+ ctx.textAlign = oldAlign;<br />
+ ctx.textBaseline = oldBaseline;<br />
+ }<br />
+///<br />
},<br />
- <br />
+<br />
+///<br />
+ getEventDetails: function(whichWeek, whichDay, event, details) {<br />
+ event.subject = details.subject;<br />
+ event.alarm = details.alarm;<br />
+ this.renderEvent(whichWeek, whichDay, event);<br />
+ },<br />
+///<br />
+<br />
renderBusyTime: function(whichWeek, whichDay, busy) {<br />
var ctx = this.weeks[whichWeek].ctxEvents;<br />
var marginLeft = 1;<br />
@@ -712,6 +790,7 @@ var WeekAssistant = Class.create({<br />
{ label:$L('Views'), <br />
toggleCmd:'week', <br />
items:[<br />
+ {label:$L('Agenda'), icon: 'menu-agenda', command:'agenda'},<br />
{label:$L('Day'), icon: 'menu-day', command:'day'}, <br />
{label:$L('Week'), icon: 'menu-week', command:'week'}, <br />
{label:$L('Month'), icon: 'menu-month', command:'month'}<br />
@@ -723,6 +802,9 @@ var WeekAssistant = Class.create({<br />
this.controller.setupWidget(Mojo.Menu.commandMenu, undefined, this.menuModel);<br />
this.controller.setupWidget(Mojo.Menu.appMenu, {omitDefaultItems:true}, this.appMenuModel);<br />
this.remindersUpdated(); // Update missed reminders menu item<br />
+<br />
+ var cookie = new Mojo.Model.Cookie("LastView");<br />
+ cookie.put("week");<br />
<br />
this.CalSelectorHandler = this.calSelector.bindAsEventListener(this);<br />
<br />
@@ -791,6 +873,16 @@ var WeekAssistant = Class.create({<br />
} else if (event.command == 'reminders') {<br />
Event.stop(event);<br />
this.controller.stageController.pushScene('reminder-list');<br />
+ } else if (event.command == 'agenda') {<br />
+ Event.stop(event);<br />
+ this.controller.serviceRequest('palm://com.palm.applicationManager', {<br />
+ method: 'launch',<br />
+ parameters: {<br />
+ id: 'com.palm.app.agenda'<br />
+ }<br />
+ });<br />
+ this.menuModel.items[1].toggleCmd = 'week';<br />
+ this.controller.modelChanged(this.menuModel, this);<br />
} <br />
}<br />
else if(event.type == Mojo.Event.commandEnable && event.command == Mojo.Menu.prefsCmd) {<br />
--- /usr/palm/applications/com.palm.app.calendar/javascripts/datejs/week.js 1970-01-01 01:00:00.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/javascripts/datejs/week.js 2010-05-03 21:17:06.000000000 +0200<br />
@@ -0,0 +1,44 @@<br />
+Date.prototype.getWeek = function() {<br />
+ var date = new Date(this);<br />
+ var year = date.getFullYear();<br />
+ var month = date.getMonth();<br />
+ var day = date.getDate();<br />
+ <br />
+ var when = new Date(year,month,day);<br />
+ var newYear = new Date(year,0,1);<br />
+ var modDay = newYear.getDay();<br />
+<br />
+ if(this.startDay != 1)<br />
+ if (modDay == 0) modDay=6; else modDay--;<br />
+<br />
+ var daynum = ((Date.UTC(year,when.getMonth(),when.getDate(),0,0,0) -<br />
+ Date.UTC(year,0,1,0,0,0)) /1000/60/60/24) + 1;<br />
+<br />
+ if (modDay < 4 ) {<br />
+ var weekno = Math.floor((daynum+modDay-1)/7)+1;<br />
+ }<br />
+ else {<br />
+ var weekno = Math.floor((daynum+modDay-1)/7);<br />
+ <br />
+ if (weekno == 0) {<br />
+ year--;<br />
+ <br />
+ var prevNewYear = new Date(year,0,1);<br />
+ var prevmodDay = prevNewYear.getDay();<br />
+ if (prevmodDay == 0) prevmodDay = 6; else prevmodDay--;<br />
+ if (prevmodDay < 4) weekno = 53; else weekno = 52;<br />
+ }<br />
+ }<br />
+<br />
+ return weekno;<br />
+};<br />
+<br />
+Date.prototype.getISO8601Week = function() {<br />
+ var d = new Date(this);<br />
+ d.setUTCDate(d.getUTCDate() - (d.getUTCDay() + 6) % 7 + 3);<br />
+ var ms = d.valueOf();<br />
+ d.setUTCMonth(0, 4);<br />
+ var w = Math.round((ms - d.valueOf()) / 604800000) + 1;<br />
+ if (w <= 9) { w = "0" + w; }<br />
+ return w;<br />
+};<br />
--- /usr/palm/applications/com.palm.app.calendar/sources.json 2009-12-15 01:57:53.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/sources.json 2010-05-03 21:14:12.000000000 +0200<br />
@@ -3,6 +3,9 @@<br />
"source": "javascripts\/datejs\/date.js"<br />
},<br />
{<br />
+ "source": "javascripts\/datejs\/week.js"<br />
+ },<br />
+ {<br />
"source": "javascripts\/recurrence-rule.js"<br />
},<br />
{<br />
<br />
</source><br />
<br />
<source lang="text"><br />
<br />
Name: UberCalendar_css<br />
Version: 1.4.0-5<br />
Author: metaview, frause<br />
Description: Enhance the calendar views. (MIT license)<br />
<br />
<br />
--- /usr/palm/applications/com.palm.app.calendar/stylesheets/calendar.css 2010-01-22 21:26:25.000000000 +0100<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/stylesheets/calendar.css 2010-05-01 21:16:44.000000000 +0200<br />
@@ -59,6 +59,10 @@<br />
background-image: url(../images/menu-icon-day.png);<br />
}<br />
<br />
+.palm-menu-icon.menu-agenda {<br />
+ background-image: url(../images/menu-icon-agenda.png);<br />
+}<br />
+<br />
.palm-menu-icon.edit {<br />
background-image: url(../images/menu-icon-compose.png);<br />
}<br />
--- /usr/palm/applications/com.palm.app.calendar/stylesheets/event-colors.css 2009-06-13 01:46:10.000000000 +0200<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/stylesheets/event-colors.css 2010-05-02 15:33:56.000000000 +0200<br />
@@ -15,15 +15,26 @@ Copyright 2009 Palm, Inc. All rights re<br />
*/<br />
<br />
/* Month View: busy time */<br />
-.monthview-busy-time.cal-color-blue { background: url(../images/month-busy-time-blue.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-green { background: url(../images/month-busy-time-green.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-yellow { background: url(../images/month-busy-time-yellow.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-gray { background: url(../images/month-busy-time-gray.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-orange { background: url(../images/month-busy-time-orange.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-pink { background: url(../images/month-busy-time-pink.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-red { background: url(../images/month-busy-time-red.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-purple { background: url(../images/month-busy-time-purple.png) 0 0 fixed repeat; }<br />
-.monthview-busy-time.cal-color-teal { background: url(../images/month-busy-time-teal.png) 0 0 fixed repeat; }<br />
+.monthview-busy-time.cal-color-blue { background: url(../images/month-busy-time-blue.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-green { background: url(../images/month-busy-time-green.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-yellow { background: url(../images/month-busy-time-yellow.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-gray { background: url(../images/month-busy-time-gray.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-orange { background: url(../images/month-busy-time-orange.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-pink { background: url(../images/month-busy-time-pink.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-red { background: url(../images/month-busy-time-red.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-purple { background: url(../images/month-busy-time-purple.png) right 0 fixed repeat-y; }<br />
+.monthview-busy-time.cal-color-teal { background: url(../images/month-busy-time-teal.png) right 0 fixed repeat-y; }<br />
+<br />
+/* Month View: partly busy time */<br />
+.monthview-partly-busy-time.cal-color-blue { background: url(../images/month-busy-time-blue.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-green { background: url(../images/month-busy-time-green.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-yellow { background: url(../images/month-busy-time-yellow.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-gray { background: url(../images/month-busy-time-gray.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-orange { background: url(../images/month-busy-time-orange.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-pink { background: url(../images/month-busy-time-pink.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-red { background: url(../images/month-busy-time-red.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-purple { background: url(../images/month-busy-time-purple.png) left center fixed no-repeat; }<br />
+.monthview-partly-busy-time.cal-color-teal { background: url(../images/month-busy-time-teal.png) left center fixed no-repeat; }<br />
<br />
/* Week View: Events */<br />
.wv_event.cal-color-blue,<br />
--- /usr/palm/applications/com.palm.app.calendar/stylesheets/month.css 2009-06-13 01:46:10.000000000 +0200<br />
+++ /cygdrive/z/Programme/Komodo/Calendar2/src/stylesheets/month.css 2010-05-02 14:49:48.000000000 +0200<br />
@@ -124,12 +124,24 @@<br />
float: left;<br />
}<br />
<br />
+.monthview-partly-busy-time {<br />
+ background: none;<br />
+ background-image: url(../images/busy-time.png);<br />
+ background-repeat: no-repeat;<br />
+ background-attachment: fixed;<br />
+ background-position: left center;<br />
+ /*color: #FF0000;*/<br />
+ width: 100%;<br />
+ height: 16px;<br />
+ float: left;<br />
+}<br />
+<br />
.monthview-busy-time {<br />
background: none;<br />
background-image: url(../images/busy-time.png);<br />
- background-repeat: repeat;<br />
+ background-repeat: repeat-y;<br />
background-attachment: fixed;<br />
- background-position: 0 0;<br />
+ background-position: right 0;<br />
/*color: #FF0000;*/<br />
width: 100%;<br />
height: 16px;<br />
<br />
</source></div>
MetaView