First I'd like to say that I'm really glad someone is working on this. I really prefer that alerts only pop up when there's a problem, not every time things work as expected. I will say though, that almost all of the programs I have handy to check with use the Left side of their status bar for messages. Firefox and IE show either Ready, Done, or Error messages in the lower left (I'd suggest keeping alerts for Errors in addition to status messages) while Office programs show Ready or (depending on the version) a short message describing the currently hovered-over menu item. Chrome only pops the message up in the lower left as opposed to having a status bar across the whole bottom, which is a little odd, but still along the same lines.
It's possible MS, Apple, or GNOME mention this someplace in a HIG document, but I've not taken the time to look through any of them. Thanks Jason -- Jason Boyer, IT Specialist Jackson County Public Library 303 W Second St Seymour, IN 47274 jas...@myjclibrary.org p (812) 522-3412 ext. 227 f (812) 522-5456 On Tue, Oct 13, 2009 at 11:16 AM, Bill Ott <b...@grpl.org> wrote: > > This was discussed briefly in IRC yesterday. The concept is, adding a > status bar to the staff client window to receive messages, instead of alert > messages that need to have the "OK" responded to. > > On the client side, Jason pointed out that a status bar was already added > in trunk. In my testing, I've simply added a new panel to that bar for > messages. It's not-so-creatively named, statusbarRight. ...I also added a > left, but for some reason I've been updating the right. Not sure if there's > any logic to one side over the other. > > > This piece of course has to go on each client install: > > xul/staff_client/build/chrome/content/main/menu_frame_overlay.xul > > <statusbarpanel id='statusbarRight'/> > > > I'm certainly no XUL wizard, so it took some digging to come up with the > right way to get a hold of the status bar from child windows. The following > is a not so elegant way of doing so in global_util.js. In particular, > there's got to be a better way to populate mainWindow without two separate > calls. > > In xul/server/Open-ILS/global_util.js > > function updateStatus(panel,value) { > > > netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); > > var mainWindow = > window.QueryInterface(Components.interfaces.nsIInterfaceRequestor) > .getInterface(Components.interfaces.nsIWebNavigation) > .QueryInterface(Components.interfaces.nsIDocShellTreeItem) > .rootTreeItem > > .QueryInterface(Components.interfaces.nsIInterfaceRequestor) > .getInterface(Components.interfaces.nsIDOMWindow); > > // if it's a dialog, we need to look at the opener > > if (!mainWindow.name.match(/^main/)){ > mainWindow = > window.opener.QueryInterface(Components.interfaces.nsIInterfaceRequestor) > > .getInterface(Components.interfaces.nsIWebNavigation) > > .QueryInterface(Components.interfaces.nsIDocShellTreeItem) > .rootTreeItem > > .QueryInterface(Components.interfaces.nsIInterfaceRequestor) > > .getInterface(Components.interfaces.nsIDOMWindow); > > var sb = mainWindow.document.getElementById(panel); > }else{ > var sb = mainWindow.document.getElementById(panel); > } > > sb.setAttribute("label",value); > } > > > > Then, instead of the alert, I added a call to the above function from > copy_to_clipboard, in Open-ILS/global_utils.js > > > Strings.getFormattedString('openils.global_util.clipboard', [text]); > updateStatus('statusbarRight',text + ' : copied to > clipboard'); > > > Or the to replace the "Copies not modified" alert in cat/util.js > > updateStatus('statusbarRight',(typeof > params.no_copies_modified_msg != 'undefined' ? params.no_copies_modified_msg > : $("catStrings").getString('staff.cat.util.copy_editor.not_modified'))); > > > > At one point I had a setTimeout clearing the value after a few seconds, but > it seemed more overhead than it was worth, and having the last status linger > didn't seem like a problem. > > > -- >