File:  [LON-CAPA] / doc / window_handling.txt
Revision 1.4: download - view: text, annotated - select for diffs
Thu May 3 16:48:39 2001 UTC (23 years ago) by harris41
Branches: MAIN
CVS tags: version_2_9_X, version_2_9_99_0, version_2_9_1, version_2_9_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_12_X, version_2_11_X, version_2_11_4_uiuc, version_2_11_4_msu, version_2_11_4, version_2_11_3_uiuc, version_2_11_3_msu, version_2_11_3, version_2_11_2_uiuc, version_2_11_2_msu, version_2_11_2_educog, version_2_11_2, version_2_11_1, version_2_11_0_RC3, version_2_11_0_RC2, version_2_11_0_RC1, version_2_11_0, version_2_10_X, version_2_10_1, version_2_10_0_RC2, version_2_10_0_RC1, version_2_10_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, version_0_99_3, version_0_99_2, version_0_99_1, version_0_99_0, version_0_6_2, version_0_6, version_0_5_1, version_0_5, version_0_4, stable_2002_spring, stable_2002_july, stable_2002_april, stable_2001_fall, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, conference_2003, bz6209-base, bz6209, STABLE, HEAD, GCI_3, GCI_2, GCI_1, BZ4492-merge, BZ4492-feature_horizontal_radioresponse, BZ4492-feature_Support_horizontal_radioresponse, BZ4492-Support_horizontal_radioresponse
sketching out the window handling API

The following files have window handling:
(find . -type f | xargs grep -s -l -i '<script' | xargs grep -s -l -i '\.open')

./loncom/homework/lonhomework.pm
./loncom/html/res/adm/pages/annotator/admannotations.pm
./loncom/html/res/adm/pages/homeworkmenu.html
./loncom/html/res/adm/pages/menu.html
./loncom/html/res/adm/pages/bookmarkmenu/bookmarkpal_old.html
./loncom/interface/londropadd.pm
./loncom/interface/lonmenu.pm
./loncom/interface/lonnavmaps.pm
./loncom/interface/lonparmset.pm
./loncom/interface/loncreateuser.pm
./loncom/xml/scripttag.pm
./rat/client/code.html
./rat/client/parameter.html

things that refer to loncapaclient
find . -type f | xargs grep loncapaclient

#########################################
# ./loncom/html/res/adm/pages/menu.html
#

clienthost=window.location.host;
clientwindow=opener;

function windowcheck() {
   if (clientwindow.closed) {
      clientwindow=window.open("http://"+clienthost+"/"); 
   }
   clientwindow.name='loncapaclient';
}

function logout () {
   windowcheck();
   if (clientwindow.status!='MenuControl:nologout')
   {   
      clientwindow.window.location.href="http://"+clienthost+"/adm/logout";
   }
}



The way that children windows of 
loncapaclient should work:

* need to track if they have ever been opened
* if not,
   * open when needed
   * never refer to any object properties
     * which also means never close
* if currently open,
   * just focus when needed
   * close when needed
   * can refer to object properties
* if have been closed,
   * can refer to object properties

The way loncapaclient window "should" work.
* lonxml makes exceptions for some URI=resources like
 * /res/adm/pages/menu.html
 * bookmark stuff.html
* lonxml should by default
 * a script command should follow the body tag
   and 
   * name the window (loncapaclientURICHECKSUM)
   * tell remote control it exists
   * remote control checks clientwindow (opener)
     and if opener.name is loncapaclientURICHECKSUM
     it changes this to loncapaclient


window instance <-- invoked from menu.html, but can be referred
                    to from other children windows
  + status (has it ever been opened, is it closed, is it open)

create_window_dependency(base,offshoot) <-- "offshoot" window
                    should only be open if "base" window is open

remove_window_dependency(base,offshoot)

close_window
open_window
check_window
change_window
change_window_by_submission

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.