[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

RESOLVED FIXED in mozilla1.6final

Status

RESOLVED FIXED
15 years ago
11 years ago

People

(Reporter: sspitzer, Assigned: mscott)

Tracking

Trunk
mozilla1.6final
Dependency tree / graph
Bug Flags:
blocking1.6 +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(3 attachments, 3 obsolete attachments)

[calendar] if native calendar app is available, and mozilla calendar not
avaible, show chrome to launch calendar
Target Milestone: --- → mozilla1.6final
(Assignee)

Comment 1

15 years ago
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
(Assignee)

Comment 2

15 years ago
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



(Assignee)

Comment 3

15 years ago
Created attachment 136966 [details]
for mozilla\extensions\tasks

there are more changes (to mozilla top level), coming next
(Assignee)

Comment 4

15 years ago
Created attachment 136967 [details] [diff] [review]
patch
(Assignee)

Comment 5

15 years ago
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

Comment 6

15 years ago
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.
(Assignee)

Comment 10

15 years ago
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
(Assignee)

Comment 11

15 years ago
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!
(Assignee)

Comment 12

15 years ago
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.
(Assignee)

Updated

15 years ago
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
(Assignee)

Comment 13

15 years ago
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...
(Assignee)

Comment 14

15 years ago
Created attachment 136993 [details] [diff] [review]
patch

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.
(Assignee)

Updated

15 years ago
Attachment #136966 - Attachment is obsolete: true
Attachment #136967 - Attachment is obsolete: true
(Assignee)

Comment 15

15 years ago
Created attachment 136995 [details] [diff] [review]
make tasks get built if you do "--enable-extensions=all"
Attachment #136993 - Attachment is obsolete: true
(Assignee)

Comment 16

15 years ago
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?
(Assignee)

Comment 18

15 years ago
> 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+
(Assignee)

Comment 19

15 years ago
>> 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.

Comment 20

15 years ago
lets get reviews done so we can get it in quickly for 1.6 if we think it is ready
Attachment #136995 - Flags: review?(leaf)
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
(Assignee)

Comment 22

15 years ago
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
Last Resolved: 15 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 → ---

Updated

15 years ago
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
Last Resolved: 15 years ago15 years ago
Resolution: --- → FIXED
(Assignee)

Comment 28

15 years ago
> Some windows have a window but no component bar...

good catch, thanks neil.
(Assignee)

Comment 29

15 years ago
cc'ing eric, as he's involved with the calendar xpis.
(Assignee)

Comment 30

15 years ago
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
Created attachment 140801 [details] [diff] [review]
Don't use capturing handler

timeless noticed that the tasks stuff gets called for every page load :-(

Updated

15 years ago
Attachment #140801 - Flags: review?(timeless)

Comment 32

15 years ago
Comment on attachment 140801 [details] [diff] [review]
Don't use capturing handler

well, that's a start...
Attachment #140801 - Flags: review?(timeless) → review+
(Assignee)

Updated

15 years ago
Attachment #140801 - Flags: superreview+
Checked in an attachment (id=140801)
Product: Core → Mozilla Application Suite

Updated

11 years ago
Component: XP Apps: GUI Features → UI Design
You need to log in before you can comment on or make changes to this bug.