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>