Closed Bug 227651 Opened 21 years ago Closed 21 years ago

[calendar] [mozilla 1.x] if native calendar app is available, and mozilla calendar is not there, show chrome to launch a native calendar, if specified by a pref

Categories

(SeaMonkey :: UI Design, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.6final

People

(Reporter: sspitzer, Assigned: mscott)

References

Details

Attachments

(3 files, 3 obsolete files)

[calendar] if native calendar app is available, and mozilla calendar not avaible, show chrome to launch calendar
Target Milestone: --- → mozilla1.6final
the current goal is to make it so people who use the Mozilla 1.x app suite, and happen to have an existing calendar, like CS&T (that shipped with Netscape 4.x, for example), or Outlook, or Mozilla Calendar (Sunbird), etc automatically get the "Window | Calendar" menu item. some notes: application/v-calendar: ext: vcf "text/calendar" mime type .ics file extension http://www.innerjoin.org/iCalendar/calendar-mime-type.html HKEY_CLASSES_ROOT\icsfile\shell\open\command for CS&T: HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Calendar value is "4.73 (en)" HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Calendar\4.73 (en)\Main\Install Directory value is "C:\Program Files\Netscape\Communicator\Calendar" the exe for cs&t cal is "C:\Program Files\Netscape\Communicator\Calendar\nscal32.exe" It doesn't look like CS&T calendar registers itsself as the default hander for the calendar mime types or the .ics file. one idea, for the first attempt at this bug fix, is to make it a pref to the calendar .exe, that if set, we'll show the UI and launch. this might be something we can generalize, if we wanted to show other apps (AIM, for example, like IE does) more info coming soon.
Keywords: 4xp
note, cs&t can import .vcs files (among other files) iCal (.ics) is an updated version of the vCal (.vcs) format. a related key: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.vcs\OpenWithList a = notepad.exe b = nscal32.exe I don't see that CS&T registering itsself as the default handler for .vcs or .ics files, like Outlook does. HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Calendar\Microsoft Outlook\Protocols\.ics
Attached file for mozilla\extensions\tasks (obsolete) —
there are more changes (to mozilla top level), coming next
Attached patch patch (obsolete) — Splinter Review
todo: 1) the first line of haveInternalCalendar(), "return false;" is temporary, for my own testing. 2) an example of the pref, to launch CS&T: user_pref("task.calendar.location", "C:\\Program Files\\Netscape\\Communicator\\Calendar\\nscal32.exe"); 3) <!ENTITY other-cal-cmd.accesskey "l"> <!ENTITY other-cal-cmd.commandkey "8"> should be "r" and "7" to match the existing calendar UI 4) I need to figure out a better solution than the setTimeout() one for collapsing (or hiding) the UI when there is a native calendar, or no pref set. JavaScript error: chrome://tasks/content/tasksOverlay.js line 61: otherCalTaskBarIcon has no prope rties
on windows we really should honor apppaths which are keys that live in: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths (HKCU is supposed to override, so check it first) the easy case for me to describe atm is aim I should be able to enter "aim.exe" and instead of mozilla storing the current path to some random aim.exe, it should just store "aim.exe" then when it wants to run aim it would check: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\aim.exe which today has a default (@) value of: "C:\PROGRAM FILES\NETSCAPE\COMMUNICATOR\PROGRAM\AIM\AIM.EXE" and a path ("Path") of: "C:\PROGRAM FILES\NETSCAPE\COMMUNICATOR\PROGRAM\AIM" This matters for various reasons, you can share a profile across multiple computers where you might want to use the same program but the program might live in different places. It also means that if the user moves or upgrades the application we automatically find the correct version instead of either running a broken/old version or giving the user an error. I believe nscal is listed in apppaths, if it isn't and we find it we could actually register nscal and then the os should track it for us. I can't check from the computer I'm currently borrowing, it isn't installed.... As for matching the existing ui, do we want the user to be able to launch both the internal calendar and an external calendar? if not then we should remove the ui from calendar and have this new code be able to launch the internal calendar. Note that none of the cc'd people represent the XPFE module. I know that mozilla.org / mozilla foundation are changing the way we do business, but... That said, I'm moving this bug to XPApps so that I can find it, as I see no reason for this bug to live in MailNews.
Component: Mail Window Front End → XP Apps: GUI Features
OS: Windows 2000 → All
Product: MailNews → Browser
QA Contact: esther → pawyskoczka
Hardware: PC → All
Comment on attachment 136966 [details] for mozilla\extensions\tasks 1. ("@mozilla.org/ical-container;1" in Components.classes) should be a good enough test. 2. Menuitems don't like being collapsed, please use hidden="true" instead. 3. Use a non-capturing load event listener to do startup stuff.
As to timeless' comments, we don't actually have an api to launch an app by name yet (extension of nsIProcess perhaps?) but it would be nice to have; and integrating with calendar might be tricky if calendar needs to be backward compatible (like rginda tries to do with ChatZilla).
oops, I meant to log this bug in Calendar, not mailnews. XP Apps works as well, too.
neil / timeless, thanks for the comments and suggestions. > As for matching the existing ui, do we want the user to be able to launch both > the internal calendar and an external calendar? if not then we should remove > the ui from calendar and have this new code be able to launch the internal > calendar. no, we don't want that. So the current logic of if we should show this calendar UI in the Window menu or the taskbar is "if no internal calendar and the pref is set, we'll show the UI" the current patch needs some more build changes, since this should be built by default. (for example, I'm sure firebird doesn't want it) > ("@mozilla.org/ical-container;1" in Components.classes) should be a good > enough test. good point. I was doing: try { var iCalLibComponent = Components.classes["@mozilla.org/ical-container;1"].getService(Components.interfaces.oeIICalContainer); return true; } catch (ex) { return false; } but that is too heavy-weight. I'll continue on the patch, hopefully have something today. > As to timeless' comments, we don't actually have an api to launch an app by > name yet (extension of nsIProcess perhaps?) but it would be nice to have; agreed. for starters, I'm going to make this file path pref based. it does have the limitations that timeless points out. fixing it to work with just the exe name can come later.
Status: NEW → ASSIGNED
neil: > ("@mozilla.org/ical-container;1" in Components.classes) works great, thanks! > 2. Menuitems don't like being collapsed, please use hidden="true" instead. done. > 3. Use a non-capturing load event listener to do startup stuff. thanks, works great!
on win32, if the "other" app is already running, and I launch it from the app suite, it gets brought to the front. I'm not sure what will happen on linux / mac.
Summary: [calendar] [mozilla 1.x] if native calendar app is available, and mozilla calendar not avaible, show chrome to launch calendar → [calendar] [mozilla 1.x] if native calendar app is available, and mozilla calendar there, show chrome to launch a native calendar, if specified by a pref
after making the changes neil suggested, I checked in mozilla/extensions/tasks, as NOT PART OF THE BUILD. I've got an updated patch for the top level, coming next...
Attached patch patch (obsolete) — Splinter Review
I need to see if this is what I want. I'm hoping I can just do: "--enable-extensions=default,tasks" or something to get what I want.
Attachment #136966 - Attachment is obsolete: true
Attachment #136967 - Attachment is obsolete: true
Attachment #136993 - Attachment is obsolete: true
modern and classic look good, and if you do: --enable-extensions=default,tasks it does what we want. if you do: --enable-extensions=all you'll get tasks if you build moz calendar, or install moz calendar later (as an xpi), and build this tasks extension, moz calendar takes preference, even if the pref is set.
One more question... does pressing the shortcut key work when you have both pieces installed?
> One more question... does pressing the shortcut key work when you have both > pieces installed? good question, let me double check that.
Flags: blocking1.6+
>> One more question... does pressing the shortcut key work when you have both >> pieces installed? > > good question, let me double check that. yes, it works.
lets get reviews done so we can get it in quickly for 1.6 if we think it is ready
Comment on attachment 136995 [details] [diff] [review] make tasks get built if you do "--enable-extensions=all" r=leaf
Attachment #136995 - Flags: review?(leaf)
Attachment #136995 - Flags: review+
Attachment #136995 - Flags: approval1.6?
Summary: [calendar] [mozilla 1.x] if native calendar app is available, and mozilla calendar there, show chrome to launch a native calendar, if specified by a pref → [calendar] [mozilla 1.x] if native calendar app is available, and mozilla calendar is not there, show chrome to launch a native calendar, if specified by a pref
fixed. Checking in configure.in; /cvsroot/mozilla/configure.in,v <-- configure.in new revision: 1.1291; previous revision: 1.1290 done Checking in allmakefiles.sh; /cvsroot/mozilla/allmakefiles.sh,v <-- allmakefiles.sh new revision: 1.460; previous revision: 1.459 done the follow up tasks: 1) log a bug on some of the enhancements that timeless suggested 2) write up a doc on how the "tasks" extension works and how to use it, and extend it 3) turn it into a tbird extension? (see bug #227652)
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment on attachment 136995 [details] [diff] [review] make tasks get built if you do "--enable-extensions=all" sr/a=sspitzer
Attachment #136995 - Flags: superreview+
Attachment #136995 - Flags: approval1.6?
Attachment #136995 - Flags: approval1.6+
Error: otherCalTaskBarIcon has no properties Source File: chrome://tasks/content/tasksOverlay.js Line: 51 Some windows have a window but no component bar...
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Attachment #137333 - Flags: superreview?(bryner)
Attachment #137333 - Flags: review+
Attachment #137333 - Flags: approval1.6?
Attachment #137333 - Flags: superreview?(bryner) → superreview+
Comment on attachment 137333 [details] [diff] [review] bulletproofing a=asa (on behalf of drivers) for checkin to Mozilla 1.6
Attachment #137333 - Flags: approval1.6? → approval1.6+
Fix checked in.
Status: REOPENED → RESOLVED
Closed: 21 years ago21 years ago
Resolution: --- → FIXED
> Some windows have a window but no component bar... good catch, thanks neil.
cc'ing eric, as he's involved with the calendar xpis.
from http://bugzilla.mozilla.org/show_bug.cgi?id=227651#c22 > 2) write up a doc on how the "tasks" extension works and how to use it, and extend it see http://www.mozilla.org/docs/extensions/tasks/index.html
timeless noticed that the tasks stuff gets called for every page load :-(
Attachment #140801 - Flags: review?(timeless)
Comment on attachment 140801 [details] [diff] [review] Don't use capturing handler well, that's a start...
Attachment #140801 - Flags: review?(timeless) → review+
Attachment #140801 - Flags: superreview+
Checked in an attachment (id=140801)
Product: Core → Mozilla Application Suite
Component: XP Apps: GUI Features → UI Design
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: