mirror of
				https://github.com/xcat2/xcat-core.git
				synced 2025-11-03 21:02:34 +00:00 
			
		
		
		
	git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
		
			
				
	
	
		
			115 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Copyright (c) 2006 Sébastien Gruhier (http://xilinus.com, http://itseb.com)
 | 
						|
// YOU MUST INCLUDE window.js BEFORE
 | 
						|
//
 | 
						|
// Object to store hide/show windows status in a cookie
 | 
						|
// Just add at the end of your HTML file this javascript line: WindowStore.init()
 | 
						|
WindowStore = {
 | 
						|
  doSetCookie: false,
 | 
						|
  cookieName:  "__window_store__",
 | 
						|
  expired:     null,
 | 
						|
  
 | 
						|
  // Init function with two optional parameters
 | 
						|
  // - cookieName (default = __window_store__)
 | 
						|
  // - expiration date (default 3 years from now)
 | 
						|
  init: function(cookieName, expired) {
 | 
						|
    WindowStore.cookieName = cookieName || WindowStore.cookieName
 | 
						|
 | 
						|
    if (! expired) {
 | 
						|
      var today = new Date();
 | 
						|
      today.setYear(today.getYear()+1903);
 | 
						|
      WindowStore.expired = today;
 | 
						|
    }
 | 
						|
    else
 | 
						|
      WindowStore.expired = expired;
 | 
						|
 | 
						|
    Windows.windows.each(function(win) {
 | 
						|
      win.setCookie(win.getId(), WindowStore.expired);
 | 
						|
    });
 | 
						|
 | 
						|
    // Create observer on show/hide events
 | 
						|
    var myObserver = {
 | 
						|
    	onShow: function(eventName, win) {
 | 
						|
    	  WindowStore._saveCookie();
 | 
						|
    	},
 | 
						|
    	
 | 
						|
    	onClose: function(eventName, win) {
 | 
						|
    	  WindowStore._saveCookie();
 | 
						|
  	  },
 | 
						|
  	  
 | 
						|
    	onHide: function(eventName, win) {
 | 
						|
    	  WindowStore._saveCookie();
 | 
						|
    	}
 | 
						|
    }
 | 
						|
    Windows.addObserver(myObserver);
 | 
						|
 | 
						|
    WindowStore._restoreWindows();
 | 
						|
    WindowStore._saveCookie();
 | 
						|
  },
 | 
						|
  
 | 
						|
  show: function(win) {
 | 
						|
    eval("var cookie = " + WindowUtilities.getCookie(WindowStore.cookieName));
 | 
						|
    if (cookie != null) {
 | 
						|
      if (cookie[win.getId()])
 | 
						|
        win.show();
 | 
						|
    }
 | 
						|
    else
 | 
						|
      win.show();
 | 
						|
  },
 | 
						|
 | 
						|
  // Function to store windows show/hide status in a cookie 
 | 
						|
  _saveCookie: function() {
 | 
						|
    if (!doSetCookie)
 | 
						|
      return;
 | 
						|
    
 | 
						|
    var cookieValue = "{";
 | 
						|
    Windows.windows.each(function(win) {
 | 
						|
      if (cookieValue != "{")
 | 
						|
        cookieValue += ","
 | 
						|
      cookieValue += win.getId() + ": " + win.isVisible();
 | 
						|
    });
 | 
						|
    cookieValue += "}"
 | 
						|
  
 | 
						|
    WindowUtilities.setCookie(cookieValue, [WindowStore.cookieName, WindowStore.expired]);  
 | 
						|
  },
 | 
						|
 | 
						|
  // Function to restore windows show/hide status from a cookie if exists
 | 
						|
  _restoreWindows: function() {
 | 
						|
    eval("var cookie = " + WindowUtilities.getCookie(WindowStore.cookieName));
 | 
						|
    if (cookie != null) {
 | 
						|
      doSetCookie = false;
 | 
						|
      Windows.windows.each(function(win) {
 | 
						|
        if (cookie[win.getId()])
 | 
						|
          win.show();
 | 
						|
      });
 | 
						|
    }
 | 
						|
    doSetCookie = true;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
// Object to set a close key an all windows
 | 
						|
WindowCloseKey = {
 | 
						|
  keyCode: Event.KEY_ESC,
 | 
						|
  
 | 
						|
  init: function(keyCode) {
 | 
						|
    if (keyCode)
 | 
						|
      WindowCloseKey.keyCode = keyCode;      
 | 
						|
      
 | 
						|
    Event.observe(document, 'keydown', this._closeCurrentWindow.bindAsEventListener(this));   
 | 
						|
  },
 | 
						|
  
 | 
						|
  _closeCurrentWindow: function(event) {
 | 
						|
    var e = event || window.event
 | 
						|
  	var characterCode = e.which || e.keyCode;
 | 
						|
  	
 | 
						|
  	// Check if there is a top window (it means it's an URL content)
 | 
						|
  	var win = top.Windows.focusedWindow;
 | 
						|
    if (characterCode == WindowCloseKey.keyCode && win) {
 | 
						|
      if (win.cancelCallback) 
 | 
						|
        top.Dialog.cancelCallback();      
 | 
						|
      else if (win.okCallback) 
 | 
						|
        top.Dialog.okCallback();
 | 
						|
      else
 | 
						|
        top.Windows.close(top.Windows.focusedWindow.getId());
 | 
						|
    }
 | 
						|
  }
 | 
						|
} |