Annotation of loncom/javascriptlib/loncapa.js, revision 1.2

1.2     ! albertel    1: // The LearningOnline Network with CAPA
        !             2: // loncapa.js This is a window handling library for the LON-CAPA web interface.
        !             3: //
        !             4: // $Id: gplheader.js,v 1.1 2001/11/29 19:06:47 www Exp $
        !             5: //
        !             6: // Copyright Michigan State University Board of Trustees
        !             7: //
        !             8: // This file is part of the LearningOnline Network with CAPA (LON-CAPA).
        !             9: //
        !            10: // LON-CAPA is free software; you can redistribute it and/or modify
        !            11: // it under the terms of the GNU General Public License as published by
        !            12: // the Free Software Foundation; either version 2 of the License, or
        !            13: // (at your option) any later version.
        !            14: //
        !            15: // LON-CAPA is distributed in the hope that it will be useful,
        !            16: // but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            17: // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            18: // GNU General Public License for more details.
        !            19: //
        !            20: // You should have received a copy of the GNU General Public License
        !            21: // along with LON-CAPA; if not, write to the Free Software
        !            22: // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
        !            23: //
        !            24: // /home/httpd/html/adm/gpl.txt
        !            25: //
        !            26: // http://www.lon-capa.org/
1.1       harris41   27: //
                     28: // This is a window handling library for the LON-CAPA
                     29: // web interface.  This library interfaces with a variety
                     30: // of web page handlers.  This is part of the LON-CAPA
                     31: // project at http://www.lon-capa.org/
                     32: //
                     33: // Window status tracking
                     34: // -1: not yet opened, no existing window object yet created
                     35: // 0: closed
                     36: // 1: open (or closed without using the close_window method)
                     37: //
                     38: // Methods
                     39: // -------
                     40: // open_window
                     41: // close_window
                     42: // check_window
                     43: // change_window
                     44: // change_window_by_submission
                     45: 
                     46: var status=new Array();
                     47: status['abc123']=-1;
                     48: status['def456']=-1;
                     49: status['ghi789']=-1;
                     50: var windows=new Array();
                     51: 
                     52: //-------------------------------------------------------- window attributes
                     53: function window_attributes(name,type) {
                     54:   if (name=='abc123') {
                     55:     if (type=='target') {return '';}
                     56:     if (type=='name') {return 'abc123';}
                     57:     if (type=='options') {return 'width=360,height=165';}
                     58:     return(true);
                     59:   }
                     60:   if (name=='def456') {
                     61:     if (type=='target') {return '';}
                     62:     if (type=='name') {return 'def456';}
                     63:     if (type=='options') {return 'width=360,height=165';}
                     64:     return(true);
                     65:   }
                     66:   if (name=='ghi789') {
                     67:     if (type=='target') {return '';}
                     68:     if (type=='name') {return 'ghi789';}
                     69:     if (type=='options') {return 'width=360,height=165';}
                     70:     return(true);
                     71:   }
                     72:   alert('undefined window '+name+' called for loncapa.js;'+
                     73:         'see window_attributes function');
                     74:   return(false);
                     75: }
                     76: //------------------------------------------------------------ open a window
                     77: function open_window(name) {
                     78:   if (window_attributes(name)&&(status[name]==-1||windows[name].closed)) {
                     79:     windows[name]=window.open(window_attributes(name,'target'),
                     80:                               window_attributes(name,'name'),
                     81:                               window_attributes(name,'options'));
                     82:     status[name]=1;
                     83:   }
                     84: }
                     85: //-------------------------------------------------- close dependent windows
                     86: function close_dependents(name) {
                     87:   if (name=='THIS') {
                     88:     close_window('abc123');
                     89:     close_window('def456');
                     90:     close_window('ghi789');
                     91:   }
                     92:   if (name=='abc123') {
                     93:     close_window('ghi789');
                     94:   }
                     95: }
                     96: //----------------------------------------------------------- close a window
                     97: function close_window(name) {
                     98:   close_dependents(name);
                     99:   
                    100:   if (name!="THIS" && window_attributes(name) && status[name]!=-1
                    101:       && !windows[name].closed) {
                    102:     windows[name].close();
                    103:     status[name]=0;
                    104:   }
                    105: }
                    106: //------------------------------------------------- check and focus a window
                    107: function check_window(name) {
                    108:   open_window(name);
                    109:   windows[name].focus();
                    110: }
                    111: //---------------------------------------------------------- change a window
                    112: function change_window(name) {
                    113:   check_window(name);
                    114: }
                    115: //-------------------------------------------- change a window by submission
                    116: function change_window_by_submission() {
                    117:   check_window(name);
                    118: }

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