summaryrefslogtreecommitdiff
path: root/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2007-09-10 03:44:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:05:50 -0500
commit15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7 (patch)
treec5bcb824e04cb1de4cccb07a148c113ff1831298 /webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js
parent37de963f67a1331b6402f901d2bda79b7119a155 (diff)
downloadsamba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.tar.gz
samba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.tar.bz2
samba-15c1801a5c13479f1bf67e0e3c1ad7c0af8e3af7.zip
r25051: Move SWAT back to the old-style form-submit modal.
The Web 2.0, async client tools were really interesting, but without developer backing they remain impossible to support into a release. The most interesting app was the LDB browser, and I intend to replace this with phpLdapAdmin, preconfigured for Apache during provision. This also removes the need to 'compile' SWAT on SVN checkouts. Andrew Bartlett (This used to be commit cda965e908055d45b1c05bc29cc791f7238d2fae)
Diffstat (limited to 'webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js')
-rw-r--r--webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js286
1 files changed, 0 insertions, 286 deletions
diff --git a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js b/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js
deleted file mode 100644
index 4bfc5e5bf4..0000000000
--- a/webapps/qooxdoo-0.6.5-sdk/frontend/framework/source/class/qx/log/WindowAppender.js
+++ /dev/null
@@ -1,286 +0,0 @@
-/* ************************************************************************
-
- qooxdoo - the new era of web development
-
- http://qooxdoo.org
-
- Copyright:
- 2006 STZ-IDA, Germany, http://www.stz-ida.de
-
- License:
- LGPL: http://www.gnu.org/licenses/lgpl.html
- EPL: http://www.eclipse.org/org/documents/epl-v10.php
- See the LICENSE file in the project's top-level directory for details.
-
- Authors:
- * Til Schneider (til132)
-
-************************************************************************ */
-
-/* ************************************************************************
-
-#module(core)
-#module(log)
-
-************************************************************************ */
-
-/**
- * An appender that writes all messages to a log window.
- * <p>
- * This class does not depend on qooxdoo widgets, so it also works when there
- * are problems with widgets or when the widgets are not yet initialized.
- *
- * @param name {String ? "qx_log"} the name of the log window.
- */
-qx.OO.defineClass("qx.log.WindowAppender", qx.log.Appender,
-function(name) {
- qx.log.Appender.call(this);
-
- this._id = qx.log.WindowAppender.register(this);
- this._name = (name == null) ? "qx_log" : name;
-
- this._errorsPreventingAutoCloseCount = 0;
-
- this._logWindowOpened = false;
-});
-
-
-/**
- * The maximum number of messages to show. If null the number of messages is not
- * limited.
- */
-qx.OO.addProperty({ name:"maxMessages", type:"number", defaultValue:500 });
-
-/** Whether the window should appear under the main window. */
-qx.OO.addProperty({ name:"popUnder", type:"boolean", defaultValue:false, allowNull:false });
-
-/** Whether the window should automatically be closed when its creating page is unloaded and
- * errors have been logged. Note that errors that have been logged before this property has been
- * turned off will be ignored. Warning: Turning this off may create a memory hole because the disposer
- * of this class will auto-close the window, i. e. it may stay open after dispose(), still holding
- * memory. However, for diagnostics it is often more important to get information about errors
- * than to save memory.
- */
-qx.OO.addProperty({ name:"autoCloseWithErrors", type:"boolean", defaultValue:true, allowNull:false });
-
-
-/**
- * Creates and opens the log window if it doesn't alread exist.
- */
-qx.Proto.openWindow = function() {
- if (this._logWindowOpened) {
- // The window is already open -> Nothing to do
- return;
- }
-
- // Open the logger window
- var winWidth = 600;
- var winHeight = 350;
- var winLeft = window.screen.width - winWidth;
- var winTop = window.screen.height - winHeight;
- var params = "toolbar=no,scrollbars=yes,resizable=yes,"
- + "width=" + winWidth + ",height=" + winHeight
- + ",left=" + winLeft + ",top=" + winTop;
-
- // NOTE: In window.open the browser will process the event queue.
- // Which means that other log events may arrive during this time.
- // The log window is then in an inconsistent state, because the
- // this._logElem is not created yet. These events will be added to the
- // this._logEventQueue and logged after this._logElem is created.
- this._logWindow = window.open("", this._name, params);
-
- if (!this._logWindow || this._logWindow.closed)
- {
- if (!this._popupBlockerWarning) {
- alert("Couldn't open debug window. Please disable your popup blocker!");
- }
-
- this._popupBlockerWarning = true;
- return;
- }
-
- // Seems to be OK now.
- this._popupBlockerWarning = false;
-
- // Store that window is open
- this._logWindowOpened = true;
-
- if (this.getPopUnder()) {
- this._logWindow.blur();
- window.focus();
- }
-
- var logDocument = this._logWindow.document;
- // NOTE: We have to use a static onunload handler, because an onunload
- // that is set later using DOM is ignored completely.
- // (at least in Firefox, but maybe in IE, too)
- logDocument.open();
- logDocument.write("<html><head><title>" + this._name + "</title></head>"
- + '<body onload="qx = opener.qx;" onunload="try{qx.log.WindowAppender._registeredAppenders[' + this._id + ']._autoCloseWindow()}catch(e){}">'
- + '<pre id="log" wrap="wrap" style="font-size:11"></pre></body></html>');
- logDocument.close();
-
- this._logElem = logDocument.getElementById("log");
-
- // Log the events from the queue
- if (this._logEventQueue != null) {
- for (var i = 0; i < this._logEventQueue.length; i++) {
- this.appendLogEvent(this._logEventQueue[i]);
- }
- this._logEventQueue = null;
- }
-};
-
-
-/**
- * Closes the log window.
- */
-qx.Proto.closeWindow = function() {
- if (this._logWindow != null) {
- this._logWindow.close();
- this._logWindow = null;
- this._logElem = null;
- this._logWindowOpened = false;
- }
-};
-
-/**
- * Called when the window should be automatically closed (because the page that opened
- * is is unloaded). Will only close the window if the autoClose***-Properties allow it
- */
-qx.Proto._autoCloseWindow = function() {
- if (this.getAutoCloseWithErrors() || this._errorsPreventingAutoCloseCount == 0){
- this.closeWindow();
- } else {
- //Show message why auto-close has failed
- this._showMessageInLog("Log window message: <b>Note: " + this._errorsPreventingAutoCloseCount
- + " errors have been recorded, keeping log window open.</b>");
- }
-};
-
-/**
- * Appends a line to the log showing the given text
- * @param msg {String} message to show, may be HTML
- */
-qx.Proto._showMessageInLog = function(msg) {
- //Create dummy log event and use appendLogEvent()
- //Reason is that it is rather complicated to get something into the log
- //window when it is not already open -> reuse the existing code
- //which does event queuing in such a case
- var dummyEvent = {message: msg, isDummyEventForMessage : true};
- this.appendLogEvent(dummyEvent);
-};
-
-
-// overridden
-qx.Proto.appendLogEvent = function(evt) {
- if (!this._logWindowOpened) {
- this._logEventQueue = [];
- this._logEventQueue.push(evt);
-
- this.openWindow();
-
- // Popup-Blocker was active!
- if (!this._logWindowOpened) {
- return;
- }
- } else if (this._logElem == null) {
- // The window is currenlty opening, but not yet finished
- // -> Put the event in the queue
- this._logEventQueue.push(evt);
- } else {
- var divElem = this._logWindow.document.createElement("div");
- if (evt.level >= qx.log.Logger.LEVEL_ERROR) {
- divElem.style.backgroundColor = "#FFEEEE";
- if (!this.getAutoCloseWithErrors()){
- this._errorsPreventingAutoCloseCount += 1;
- }
- } else if (evt.level == qx.log.Logger.LEVEL_DEBUG) {
- divElem.style.color = "gray";
- }
- if (evt.isDummyEventForMessage){
- divElem.innerHTML = evt.message;
- } else {
- divElem.innerHTML = qx.html.String.fromText(this.formatLogEvent(evt));
- }
- this._logElem.appendChild(divElem);
-
- while (this._logElem.childNodes.length > this.getMaxMessages()) {
- this._logElem.removeChild(this._logElem.firstChild);
-
- if (this._removedMessageCount == null) {
- this._removedMessageCount = 1;
- } else {
- this._removedMessageCount++;
- }
- }
-
- if (this._removedMessageCount != null) {
- this._logElem.firstChild.innerHTML = "(" + this._removedMessageCount
- + " messages removed)";
- }
-
- // Scroll to bottom
- this._logWindow.scrollTo(0, this._logElem.offsetHeight);
- }
-}
-
-qx.Proto._modifyAutoCloseWithErrors = function(propValue, propOldValue, propData){
- if (!propValue && propOldValue){
- this._errorsPreventingAutoCloseCount = 0;
-
- //Show message in log so user can see which errors have been counted
- this._showMessageInLog("Log window message: Starting error recording, any errors below this line will prevent the log window from closing");
-
- } else if (propValue && !propOldValue){
- //Show message in log so user can see which errors have been counted
- this._showMessageInLog("Log window message: Stopping error recording, discarding " + this._errorsPreventingAutoCloseCount + " errors.");
- }
- return true;
-}
-
-
-
-// overridden
-qx.Proto.dispose = function() {
- if (this.getDisposed()) {
- return true;
- }
-
- this._autoCloseWindow();
-
- return qx.log.Appender.prototype.dispose.call(this);
-}
-
-
-qx.Class._nextId = 1;
-qx.Class._registeredAppenders = {};
-
-
-/**
- * Registers a WindowAppender. This is used by the WindowAppender internally.
- * You don't have to call this.
- *
- * @param appender {WindowAppender} the WindowAppender to register.
- * @return {Integer} the ID.
- */
-qx.Class.register = function(appender) {
- var WindowAppender = qx.log.WindowAppender;
-
- var id = WindowAppender._nextId++;
- WindowAppender._registeredAppenders[id] = appender;
-
- return id;
-}
-
-
-/**
- * Returns a prviously registered WindowAppender.
- *
- * @param id {Integer} the ID of the wanted WindowAppender.
- * @return {WindowAppender} the WindowAppender or null if no
- * WindowAppender with this ID is registered.
- */
-qx.Class.getAppender = function(id) {
- return qx.log.WindowAppender._registeredAppenders[id];
-}