File:  [LON-CAPA] / loncom / javascriptlib / loncapa.js
Revision 1.2: download - view: text, annotated - select for diffs
Wed Dec 19 17:21:28 2001 UTC (22 years, 3 months ago) by albertel
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, loncapaMITrelate_1, language_hyphenation_merge, language_hyphenation, conference_2003, bz6209-base, bz6209, bz5969, bz2851, STABLE, PRINT_INCOMPLETE_base, PRINT_INCOMPLETE, HEAD, GCI_3, GCI_2, GCI_1, BZ5971-printing-apage, BZ5434-fox, BZ4492-merge, BZ4492-feature_horizontal_radioresponse
- added GPL headers

// The LearningOnline Network with CAPA
// loncapa.js This is a window handling library for the LON-CAPA web interface.
//
// $Id: loncapa.js,v 1.2 2001/12/19 17:21:28 albertel Exp $
//
// Copyright Michigan State University Board of Trustees
//
// This file is part of the LearningOnline Network with CAPA (LON-CAPA).
//
// LON-CAPA is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// LON-CAPA is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with LON-CAPA; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// /home/httpd/html/adm/gpl.txt
//
// http://www.lon-capa.org/
//
// This is a window handling library for the LON-CAPA
// web interface.  This library interfaces with a variety
// of web page handlers.  This is part of the LON-CAPA
// project at http://www.lon-capa.org/
//
// Window status tracking
// -1: not yet opened, no existing window object yet created
// 0: closed
// 1: open (or closed without using the close_window method)
//
// Methods
// -------
// open_window
// close_window
// check_window
// change_window
// change_window_by_submission

var status=new Array();
status['abc123']=-1;
status['def456']=-1;
status['ghi789']=-1;
var windows=new Array();

//-------------------------------------------------------- window attributes
function window_attributes(name,type) {
  if (name=='abc123') {
    if (type=='target') {return '';}
    if (type=='name') {return 'abc123';}
    if (type=='options') {return 'width=360,height=165';}
    return(true);
  }
  if (name=='def456') {
    if (type=='target') {return '';}
    if (type=='name') {return 'def456';}
    if (type=='options') {return 'width=360,height=165';}
    return(true);
  }
  if (name=='ghi789') {
    if (type=='target') {return '';}
    if (type=='name') {return 'ghi789';}
    if (type=='options') {return 'width=360,height=165';}
    return(true);
  }
  alert('undefined window '+name+' called for loncapa.js;'+
        'see window_attributes function');
  return(false);
}
//------------------------------------------------------------ open a window
function open_window(name) {
  if (window_attributes(name)&&(status[name]==-1||windows[name].closed)) {
    windows[name]=window.open(window_attributes(name,'target'),
                              window_attributes(name,'name'),
                              window_attributes(name,'options'));
    status[name]=1;
  }
}
//-------------------------------------------------- close dependent windows
function close_dependents(name) {
  if (name=='THIS') {
    close_window('abc123');
    close_window('def456');
    close_window('ghi789');
  }
  if (name=='abc123') {
    close_window('ghi789');
  }
}
//----------------------------------------------------------- close a window
function close_window(name) {
  close_dependents(name);
  
  if (name!="THIS" && window_attributes(name) && status[name]!=-1
      && !windows[name].closed) {
    windows[name].close();
    status[name]=0;
  }
}
//------------------------------------------------- check and focus a window
function check_window(name) {
  open_window(name);
  windows[name].focus();
}
//---------------------------------------------------------- change a window
function change_window(name) {
  check_window(name);
}
//-------------------------------------------- change a window by submission
function change_window_by_submission() {
  check_window(name);
}

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>