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, 6 months 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_5_msu, version_2_11_5, 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>