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

1.1     ! harris41    1: // loncapa.js
        !             2: //
        !             3: // This is a window handling library for the LON-CAPA
        !             4: // web interface.  This library interfaces with a variety
        !             5: // of web page handlers.  This is part of the LON-CAPA
        !             6: // project at http://www.lon-capa.org/
        !             7: //
        !             8: // Window status tracking
        !             9: // -1: not yet opened, no existing window object yet created
        !            10: // 0: closed
        !            11: // 1: open (or closed without using the close_window method)
        !            12: //
        !            13: // Methods
        !            14: // -------
        !            15: // open_window
        !            16: // close_window
        !            17: // check_window
        !            18: // change_window
        !            19: // change_window_by_submission
        !            20: 
        !            21: var status=new Array();
        !            22: status['abc123']=-1;
        !            23: status['def456']=-1;
        !            24: status['ghi789']=-1;
        !            25: var windows=new Array();
        !            26: 
        !            27: //-------------------------------------------------------- window attributes
        !            28: function window_attributes(name,type) {
        !            29:   if (name=='abc123') {
        !            30:     if (type=='target') {return '';}
        !            31:     if (type=='name') {return 'abc123';}
        !            32:     if (type=='options') {return 'width=360,height=165';}
        !            33:     return(true);
        !            34:   }
        !            35:   if (name=='def456') {
        !            36:     if (type=='target') {return '';}
        !            37:     if (type=='name') {return 'def456';}
        !            38:     if (type=='options') {return 'width=360,height=165';}
        !            39:     return(true);
        !            40:   }
        !            41:   if (name=='ghi789') {
        !            42:     if (type=='target') {return '';}
        !            43:     if (type=='name') {return 'ghi789';}
        !            44:     if (type=='options') {return 'width=360,height=165';}
        !            45:     return(true);
        !            46:   }
        !            47:   alert('undefined window '+name+' called for loncapa.js;'+
        !            48:         'see window_attributes function');
        !            49:   return(false);
        !            50: }
        !            51: //------------------------------------------------------------ open a window
        !            52: function open_window(name) {
        !            53:   if (window_attributes(name)&&(status[name]==-1||windows[name].closed)) {
        !            54:     windows[name]=window.open(window_attributes(name,'target'),
        !            55:                               window_attributes(name,'name'),
        !            56:                               window_attributes(name,'options'));
        !            57:     status[name]=1;
        !            58:   }
        !            59: }
        !            60: //-------------------------------------------------- close dependent windows
        !            61: function close_dependents(name) {
        !            62:   if (name=='THIS') {
        !            63:     close_window('abc123');
        !            64:     close_window('def456');
        !            65:     close_window('ghi789');
        !            66:   }
        !            67:   if (name=='abc123') {
        !            68:     close_window('ghi789');
        !            69:   }
        !            70: }
        !            71: //----------------------------------------------------------- close a window
        !            72: function close_window(name) {
        !            73:   close_dependents(name);
        !            74:   
        !            75:   if (name!="THIS" && window_attributes(name) && status[name]!=-1
        !            76:       && !windows[name].closed) {
        !            77:     windows[name].close();
        !            78:     status[name]=0;
        !            79:   }
        !            80: }
        !            81: //------------------------------------------------- check and focus a window
        !            82: function check_window(name) {
        !            83:   open_window(name);
        !            84:   windows[name].focus();
        !            85: }
        !            86: //---------------------------------------------------------- change a window
        !            87: function change_window(name) {
        !            88:   check_window(name);
        !            89: }
        !            90: //-------------------------------------------- change a window by submission
        !            91: function change_window_by_submission() {
        !            92:   check_window(name);
        !            93: }

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