Closed Bug 67376 Opened 24 years ago Closed 15 years ago

Tracking bug for help system for Mozilla

Categories

(SeaMonkey :: Help Documentation, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: rudman, Assigned: neil)

References

Details

(Keywords: meta)

Attachments

(5 files, 3 obsolete files)

Checkin planned prior to M9.

This bug tracks the known issues for the Help system---general problems to solve
(prior to checkin).

1. Make HTML help content files part of the individual component installs
(affects RDF overlay items).
2. Need to build help.jar (and register it).
3. Set up commercial build so that it overwrites the mozilla help content.
4. Await XBLification of browser (dependency on what bug?).
5. Remove existing NS chrome.
[need to set target milestone andn keywords appropriately...working on that]
Priority: -- → P1
Accepting, adding dependency: I have a basic help viewer to check-in, but I am
waiting for the browser to be fully "XBL-ified" per bug 65412

Also adding samir to the cc: list because I believe he has offered some extra
help on the check-in and install process. Thanks, Samir :)
Status: NEW → ASSIGNED
Depends on: 65412
Note that you can do everything you need by using code like in navigator.js
instead of the code I sent you. Once I land 65412, you can optionally switch to
the new code, but the old code should still work...
jag: Thanks. Does that mean that <browser/> is alrady partially xbl-ified?:
  return getBrowser().webNavigation;

And is your landing bound to happen soon, or is it a maybe? You're just waiting
in the sr= queue, right?
Yeah, browser is already in xbl, but it's only got a couple of properties.

http://lxr.mozilla.org/seamonkey/source/xpfe/global/resources/content/xulBinding
s.xml#549
Yep, and those few are currently enough to get where Ian wants to go.

Ian: it could take a while actually... It's in hyatt's "comments" queue, after
which I'll probably have to do some rewriting, then get r= and sr=. I wouldn't
wait for it.
I can't really diff-n-show this, but I need approval on the following "first
stage" of getting the help into Mozilla. Ben, I thought you might give me the
word on this or point me to someone else who should:

* cvs remove ns/tpubs/ns6/helpchrome/jar.mn, makefiles, & helpchrome/*
* remove link(s) to help window in ns help menu
* add a directory: src/mozilla/xpfe/components/help
* add the non-building help chrome in there: help.xul, help.js,
helpMenuOverlay.xul, etc.

	
This is so that the help will eventually be built as help.jar, a peer of
comm.jar in the chrome directory (this in contrast to the commercial version,
which was put in comm.jar).
cc:ing asa, removing dependency, and going ahead with partially-xbl-ified
browser widget per jag's suggestion. 
No longer depends on: 65412
I'm having some trouble getting the webNavigation interface through XBL. This
snippet in my help.js code, used on the back button, returns something like
"getWebNavigation has no properties":

// <browser id="help-content" ... />
function getBrowser()
{
  return document.getElementById("help-content");
}

function getWebNavigation()
{
  try {
    return getBrowser().webNavigation;
  } catch (e) {
    return null;
  }
}

function BrowserBack()
{
  getWebNavigation().goBack();
  // UpdateBackForwardButtons();
}
Weird...can you e-mail me the relevant js/xul?
You loathe me, Ben. I can see that now.
Who else can approve the addition of these files (see comment on 2/6/01) to the
mozilla source? The equally intractable hyatt? Jag, can you sr= this in?

The presence of a help.jar at the root chrome level (with comm.jar, en-US.jar,
etc.) is not a small deal. And I need to get going.
Changing product to Browser for better tracking.
Component: User → Help
Product: Documentation → Browser
Target Milestone: --- → mozilla0.9
Version: unspecified → other
Keywords: nsbeta1
QA Contact: rudman → tpreston
Changing to Terri Preston for QA contact.

Adding Sean Cotter to cc list.

Adding nsbeta1 keyword. Note previous settting of m0.9 milestone.
cc'ing leaf in here: I think I am going with the help-as-extension plan. Leaf,
what do I have to do to register mozilla/extensions/help as an extension that
gets built? I see MOZ_EXTENSIONS is populated with a short list of dirs under
extensions/ in autocongif.mk, but I don't know how it gets there and what else
might need to be done. Thanks.

Thanks, too, jag for the work on the <browser>-using help.js.
?: r=leaf, sr=alecf just for the following passive, non-building additions to
src/mozilla/extensions?:

mkdir help
mkdir help/resources
mkdir help/resources/content
mkdir help/resources/locale
mkdir help/resources/locale/en-US

cp (help.xul, help.js, helpMenuOverlay.xul, contents.rdf) help/resources/content
cp (all HTML content, help-toc.rdf, images subdirectory) help/resources/locale/en-US

cvs add all
cvs commit all

These are just the basic chrome and content files, no makefiles and no jar.mn.
I'd like to get the stuff into the source so we can get the chrome updates in
(e.g., jag's xbl browser fixes) and so I can get some help on making it an
extension and getting it registered as a package (e.g., browser.jst,
packages-plat, jar.mn). Thanks.
yep, sounds like that's the right place for additions, ian. I think everyone 
agrees that having this on by default makes sense, and i can help make that so 
on unix/windows for you, but will need mac help.
Just checked in the basic (non-building) help stuff at
mozilla/extensions/help/resources. Still need an r= and some hand-holding on the
ns remove (see 2/15 attachment) 
This is a DUP of bug 16097.

Ian O., please announce this bug on the .documentation newsgroup.


How do we want to organize the help files?

It should be possible to deselect the docs for any component individually, since
the docs can be pretty large and I might have different knowledge of the
components/applications in the suite.

Should it be <chrome://component/help/bla> or <chrome://help/component/bla>? I
favor the former.
(cc'ing jatin, new writer for ns.)
Ben: What do you say we call this the main bug and let the other one--which
implied that we needed to *begin* talking about a Mozilla help strategy--slip
away. And thanks for the suggestion: I will post a mesage to the n.p.m.docs (I
thought I did, but I'm out of it :(  ), and then let's talk about these issues.

Great points already, Ben, and things I am thinking about. As for the
chrome/location, I am shooting for chrome://help (sic!) and a jar at the chrome
level called help.jar. In fact, this is what I made available in a provisional
way in that help.xpi install I sent around a little while ago. 
Ian O.: Note: I was speaking about the help *contents*, not the help system /
viewer.
*** Bug 16097 has been marked as a duplicate of this bug. ***
Eureka! With Andrew W's help, I was able to 1) put together a great way to pass
context to the window from other parts of the UI and 2) get the right part of
the toc tree selected. I will check these changes into the files in
extensions/help and update the specs on the project page shortly, but in brief:

1) toOpenWindowByType(), the single-instance window opener defined in
tasksOverlay.js that I have been using to make sure we only have a single help
window open ( windowtype=mozilla:help) at any one time, now takes a chrome url
that includes a special key at the end. For example, the url
"chrome://help/content/help.xul?mail" includes a cgi-like "search" snippet at
the end that can be retrieved with window.location.search. In the help.js, I
have a JS object with members like this
var key {
 "?mail": "chrome://help/locale/mail_help.html",
 ...
}

so that the help init can do this:

if (window.location.search) {
 _Help_LoadContent(key[window.location.search]);
} else {
 _Help_Home();
}

This will load the mail help using the special "?mail" key at the end of the
chrome url. (Note that Mozilla appears not to strip off the leading "?" on the
search string. Is this a bug?)

2) Got selection working in the tree so that when a particular HTML document is
loaded in the content subframe, the appropriate part of the toc tree will be
selected:

function _Help_TreeSelect(link_attr) {
 var items = document.getElementsByAttribute("helplink", link_attr);
 var parentRow = items[0].parentNode;
 var selectableNode = parentRow.parentNode; // helplink is an attribute
 // on a treecell, which cannot be selected
 var tree = document.getElementById("help-toc-tree");
 tree.selectItem(selectableNode);
}

Call this function (e.g., in the init function above) with the key that
corresponds to the content you want, and the viewer loads with the right part of
the tree selected.

 
Ian, will the Help Viewer be handling external http:// links or will they 
open/be sent to a browser window?
It'll handle local and remote http. I think NS plans on doing served release
notes in the Help window.

BTW, just checked in the basic prototype for doing context sensitivity in
helpMenuOverlay.xul (where there's a context-passing menuitem) and the updated
help.js, which includes a couple of keys at the top.

these are are mozilla/extensions/help/resources/content/
Spec updated as well
Does this bug depend on bug 46226?
As this bug is a catch-all, and the new system is designed for (or at least
allows) context-sensitivity, I don't think there is any dependency on bug 46226.
Ian (or anyone else), unless you think otherwise, I'd mark 46226 as a dupe of
this one.
I'm just wondering, Ian, how help for commercial-only components is going to be 
done. Is there some plan for this, or are those components going to go out 
without help docs?
We are going to use the chrome built from Mozilla and then destrutively
overwrite just the HTML content and the RDF table of contents in the help.jar
when we do the ns build. Shouldn't require any new chrome or structure, just
additions to the content...And maybe UI where those new components want to call
context-sensitive help.
for the makefile.win change, you'll need to truncate the line previous to the 
one you're removing, or substitute $(NULL) for the line you're removing 
(trailing \, i thought, were bad for nmake). Other than that, r=leaf for the 
build changes.
Got a not quite complete help.dtd into the help src this morning, posted a new
doc at the projects page about how to use context-sensitivity
(www.mozilla.org/projects/help-viewer/client_howto.html), and made a somewhat
formal request for a code review of the stuff in src now so we can get it
building ASAP
Ian, have you thought yet about how you are goign to handle the monitoring of 
the Back/Forward UI widgets.  In navigator.xul/.js, it uses broadcasters 
(canGoBack/canGoForward).  There is an 'nsXULBrowserWindow' with a function 
onLocation which calls the function UpdateBackForwardButtons() that handles the 
observers.
It would be nice if there was a way of doing this without duplicating the whole 
nsXULBrowserWindow class, and attaching an instance of it to 
window.XULBrowserWindow.

I don't quite undertand yet how it fully works but it seems the above steps are 
needed to get full back/forward functionality
kinger: jag will correct me if I'm wrong, but I think that one of the boons of
having an xbl-ified <browser /> is that you can get .canGoBack and .canGoForward
any time you want and not having to worry about managing the session history
yourself. Though as you noted I haven't hooked it all the way up yet, we ought
to be able to manage navigation and history with:
goBack, goForward, canGoBack, and canGoForward.

note also that I have eschewed the button states (disabled when there is no
history, enabled when there is). This is another update we'll have to make.
Well, I'm not sure about the session history object management. Personally I
think it would be nice if the xbl-ified browser would take care of it for you,
but there's a movement going to delay loading as many dlls as possible till
after the window shows. I haven't thought of a way yet to get the binding to do
this (other than adding an init method and explicitly calling that on a timer
started from onload).

Anyway, I'm attaching a mini-nav.xul, which is a very simplified version of our
browser. It uses a JS Object implementing nsIWebProgressListener to act as glue
between the docloader and the browser UI. Have fun :-)
jag: 
Just fixed (in my local build) the help.css for the modern.jar "refactoring". Checking this in shortly. But now, with the nav buttons present again, I get: 

JavaScript error:
 line 0: uncaught exception: [Exception... "Component returned failure code: 0x8
0004005 (NS_ERROR_FAILURE) [nsIWebNavigation.canGoBack]"  nsresult: "0x80004005
(NS_ERROR_FAILURE)"  location: "JS frame :: chrome://help/content/help.js :: goB
ack :: line 71"  data: no]

Like it's not seeing the canGoBack property on webNavigation. 
This looks related to the error I showed you with loadURI().
And as I mentioned in IRC a moment ago,
the toOpenWindowByType() from tasksOverlay is supposed to get the window-mediator datasource, but it doesn't look like it does so successfully right now. So I've had to use:

<menuitem label="Help Direct" 
  	oncommand="window.open('chrome://help/content/help.xul', '_blank', 'chrome,menubar,toolbar,resizable,scrollbars');" />   
  
But then I lose the single-instance-ing of that previous function. Do you know anything about this latter? Please advise.

-ian 

General status on help window  03/27/00: 
sr=ben, r=hyatt on chrome yesterday, but having some trouble this morning with regressions (?), webNavigation stuff, and maybe with the window-opening function in the Help menu itself, which tries to get a window-mediator datasource and is failing (?) to do so. Working with jag on these problems--n'est-ce pas, jag?

Have updates to help.css per hewitt's modern re-org to check in. Working on help build/installer tomorrow with samir's oversight, at which point we'll get, I hope, an sr=dveditz, r=samir on the install piece, and check the viewer in this week.

jag, Just wanted to let you know that I think the trouble I was having displayin
the help viewer has something to do with my calling menu item being in an
overlay rather than with any regressive trouble with the window-mediator.
Prassanna suggested using a construction like xmlterm does (also an extension,
also using an overlay into the browser menus), where the toOpenWindowByType()
function is wrapped by something in the overlay itself:

<script>
function toHelpWindow(uri){
  toOpenWindowByType('mozilla:help', uri);
}
</script>

Not sure why exactly this would improve things, but I am working on it now.
Ian: so I've got a hacked up <helpbrowser/> which supports tooltips on its
content. That's what you wanted, right? Or did you want tooltips on the chrome?
jag: content tooltips is what I was thinking of. Great! I am moments away from checking the help build stuff in (see 74132), after which point I guess you can update the XUL (and the JS, you said) to use the new widget.

what needs to be done here?  
no more features for 0.9 , moving to 0.9.1
of the work is done lets mark this ond fixed
and put back on the 0.9 radar to make sure it gets
tested...

thanks
Target Milestone: mozilla0.9 → mozilla0.9.1
*** Bug 76124 has been marked as a duplicate of this bug. ***
Status Report (to answer chofmann's question):

Help is in mozilla, built as a default extension
Netscape packaging has been updated so it builds there too
Issues:
  skin needs work: "Home" button and other cleanup
  linux installer builds still don't have help extension
  keys (ctrl + w) and broadcasters need to be hooked up
  html index needs to be done (have scripts for this)
  html content needs to be managed in commercial tree separately
  jag has <help_browser /> ready to be reviewed and checked in
  context-sensitive help buttons need to be done in the UI per spec

I will write separate bugs for these issues and string them on to this one.
There are others too, I'm sure.
Depends on: 76935
Depends on: 76948
moving tracking bugs off the 0.9.1 radar.  if there
are key blockers in the help system for 0.9.1 or
betas that come off that milestone lets get 'em on
the list.   thanks
Target Milestone: mozilla0.9.1 → ---
Blocks: 80879
*** Bug 80879 has been marked as a duplicate of this bug. ***
Adding dependency to bug 81991, in which I describe some pesky context-sensitive
and toc-selection problems I have been having. Help!
Depends on: 81991
Adding the context-sensitive help bug as a dependency. Tracking some 
problems/imminent check-ins there.
Depends on: 46226
Adding but to sanitize Help system
Depends on: 46917
Adding new bug for a help system search engine
Depends on: 83862
Depends on: 79212
Blake - I don't think the trunk ever got the fruits of our last minute labor.
Previous patch catches the trunk up, I think. You want to take a quick look.
walk84: maybe you can give it an r= too? It resolves, among many other things,
the 89754 bug you just reopened.
sr=blake
r=walk84
Updates checked into trunk.
Blocks: 104166
I just posted a proposal for some big updates to the help system at
www.mozilla.org/projects/help-viewer/proposal.html. Author: Pete Wilson. Also
going to update that project index page when I get a minute, since it's like a
million years old now.

The proposal discusses some better uses of RDF in the toc/index/search; better
searching; a better doc format (like DocBook, which has been discussed as a Big
Possibility for mozilla.org for that same million years) that we could deploy as
printed manuals, as more modular, component-specific help documents, aural help,
what have you; some updates to the navigation in the viewer, et cetera. A lot of
things.

I like many of Peter's suggestions and the document itself (except for the user
of the verb "liase", blech! ;^), especially the set of recommendations at the
end, which I think we can get to work on. Or at least put on the table. 

I think Dr. Wilson and I are going to hang out on Friday at the mozilla
developers thing in Mountain View. Maybe we could have a little doc/help BOF.
Let me know if you are interested. 



Which reminds me: what's going on with <wizard/> or with <dialog
help="[url]"../>? Anybody know? 
Just an FYI for folks.  The next version of Komodo (1.2, currently in beta) has 
search for on-line help, based in part on a public-domain indexer which was 
written in Python.  See 
http://www-106.ibm.com/developerworks/linux/library/l-pyind.html?dwzone=linux 
for details.

It works ok for us.  It's not as high-power as some, but it delivers basic 
search functionality.

Our code is all in Python, which isn't a realistic solution for Mozilla (yet!), 
but there may be open source C++ indexers that could be used instead.  Note 
that I haven't modified it to work with documents in chrome.  It currently 
indexes 'real' files only.

Attached patch big updates to the help system (obsolete) — Splinter Review
peter wilson's handiwork on the help system. this patch includes sidebar-like
panels, a search facility, and a much more prolific use of RDF: the index is in
RDF (but I still have to update my script to write to RDF/XML, so currently the
index is pretty bare), the table of contents is composed from module specific
files (e.g., composer-toc.rdf), the context-sensitive help has been cleaned up
and now uses RDF URIs instead of keys or pointers to the HTML itself; also, the
help window now loads a "master file" that describes which panels are
available, which sets of content, and which databases to search against
(mozillahelp.rdf is loaded by default). Also some bug fixes for selection and
initialization.

This patch prepares the help system to be used, for example, by other
applications (think myapphelp.rdf) or for specific installations of
mozilla--like ones where there is no mail component or whatever. The
context-setting stuff has been greatly optimized.

Also there are some test files in the build so you can see the different master
instances of the help system running and test context-sensitive help. I will be
updating the specs at mozilla.org/projects/help-viewer to reflect this stuff
that I hope will be checked in (after a little more cleanup) some time very
soon.
Depends on: 117567
Updated version.
Attachment #65097 - Attachment is obsolete: true
Joe Hewitt, Blake
You think you guys could take a look at this patch and r/sr it if it looks good?
It's a nice update for the help system that lets you include different content
for different instances, uses RDF URIs for the context-sensitive help, and fixes
a bunch of bugs. Thanks in advance.
Note that the patch I posted here fixes or moot-ifies the following bugs,
mutatis mutandis: 91207, 93216, 93312, 104895, 114055, 83862, 108695 and maybe
others.
Comment on attachment 65246 [details] [diff] [review]
slightly updated: added the test.xul file, cleaned out some noise

nifty, r= or sr=waterson, whichever helps.
Attachment #65246 - Flags: superreview+
The only thing that I'd be worried about is the GetDataSourceBlocking calls.
These should be fine so long as the data is local (which it probably always will
be).
I love Chris Waterson. And not just because he r/sr'd this big patch. The RDF
against which the calls are being made is local.

Hewitt, perhaps you can take a look and give the complementary sr/r? Thanks a lot.
I love Chris Waterson too. He's a good guy.  But his tendency to hate non-
English speaking cultures really gets on my nerves.  All of the English text 
needs to be localizable.

Also, align="baseline" doesn't mean anything.

And please fix the indentation/tabs.
I love Chris Waterson too, even though I never met him. I just hope his ego is
not getting too big because of this bug.
Anyway, the patch looks great Ian, but I'm not sure if my opinion counts here.
Just one thing. In help.xul why are the forward and back menu popups in a
popupset with an id of "aTooltip". Isn't this reserved for tooltips?
<popupset> is deprecated, you can put your context menu popups all by themselves.

<popup> is deprecated, use menupopup instead.

tooltip="aTooltip" - you don't need this anymore, just go with tooltiptext.  if
there is an actual aTooltip element in your doc, just remove it.

<box orient="horizontal"  flex="0"> - how about just <hbox>
Attached patch update to Big Patch (obsolete) — Splinter Review
Another update to mull over. This one has localized strings in the XUL, tabs
and DOS line-endings removed in all files, a new generated RDF index, and
better formatting in general.
Attachment #65246 - Attachment is obsolete: true
* popup->menupopup
* menupopups not within popupset anymore
* tooltip attributes out
* <box/> in test.xul changed to <hbox/>
Attachment #66398 - Attachment is obsolete: true
Hey, did you guys generate the RDF/XML from the help text using a tool? If so,
it'd be great if you could check that tool into the tree somewhere. Also, I
think blake may have been referring to the ``hard-coded'' text in the RDF/XML:
blake, was that what you'd wanted to see as entities?
I talked with Blake about this, and I think he was referring to the XUL, where I
had some English. AFAIAC, the RDF/XML is fine full of English. Like HTML, an RDF
file in the locale/en-US subdirectory should be *replaced* by a localized
version in a different language pack.
K, so I've done the updates that blake and hewitt mentioned in their reviews.
Does this mean I can have an r=blake or an r=hewitt now (see latest patch)? Or
do I have to do something sneaky and say this work is sr=waterson, r=oesdchger,
and author=pwilson, which in fact is the case, in order to get it in in the next
couple of days?
Please Help!

mozilla builders and interested interlocutors, please apply this patch if you
can and verify that this help system update works on your platform in at least a
rudimentary way: that the datasources load in the panels, that the panels
display correctly, that the start content loads, that the navigation buttons
work. I am
confident that these changes work and are good, but I need some more
eyeballs.

We are beginning some usability studies on the help system, and I need
to have this stuff checked in by tomorrow night. Thanks for your
attention. 
Depends on: 124273
Moving back to this bug to track help issues, e.g, regular expressions for
searching, maybe a full-text search facility, setting focus on the search field,
removing dependencies and building help as an optional extension...
Depends on: 89603, 130346, 134392
Depends on: 135607
Depends on: 122806
Depends on: 117569
Depends on: 188160
No longer depends on: 134392
Keywords: meta
Depends on: 134392
Is there a reason for this bug to still be open.  Help has its own component so
I don't see the purpose of a Help tracking bug unless it tracks bugs external to
the Help component.
Can we keep this open for now? It's been useful in the past as a way to track
things (sometimes outside of Help), and I think I smell it becoming useful again.
Yes, I agree, let's keep it open. Brant: I think you misunderstand the meaning
of a tracking bug. As you can see from the 'depends on' list, there are still
many open bugs on the Help component.
Now that the new roadmap has been announced, has there been in thought put into
how the help systems for Phoenix and Minotaur (Thunderbird).  Would it be some
sort of standalone app that the both could reference, or will it duplicated in
both programs. 
moving stuff over to an outside-the-firewall email for the time being, looking
for people to pick these Help and doc bugs up for me.
Assignee: oeschger → oeschger
Status: ASSIGNED → NEW
mass reassign of all of Ian Oeschger's bugs to me (R.J. Keller).
Assignee: oeschger → rlk
> Now that the new roadmap has been announced, has there been in thought put into
> how the help systems for Phoenix and Minotaur (Thunderbird).  Would it be some
> sort of standalone app that the both could reference, or will it duplicated in
> both programs. 

http://firebirdhelp.mozdev.org

This is the future of Mozilla Help. It's planned on being the same app in both
programs but with different documentation.
QA Contact: tpreston → stolenclover
Depends on: 218878, 220561
Moving to new Help component owner.
Assignee: rlk → neil.parkwaycc.co.uk
Product: Browser → Seamonkey
Priority: P1 → --
Closing this tracking bug. We are now using the toolkit help viewer on trunk. Any new issues should be filed in the relevant toolkit component.
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: