// 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); }