File: 0.00.1a/js/alerts.js (View as Code)

1: /* ------------------------------------------------------------- 2: This file is part of FreeDESK 3: 4: FreeDESK is (C) Copyright 2012 David Cutting 5: 6: FreeDESK is free software: you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation, either version 3 of the License, or 9: (at your option) any later version. 10: 11: FreeDESK is distributed in the hope that it will be useful, 12: but WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14: GNU General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with FreeDESK. If not, see www.gnu.org/licenses 18: 19: For more information see www.purplepixie.org/freedesk/ 20: -------------------------------------------------------------- */ 21: 22: /** 23: * The alert pane manager for FreeDESK 24: **/ 25: function FreeDESK_AlertPane() 26: { 27: this.container = document.getElementById('alert_pane'); 28: 29: this.random = function() 30: { 31: var len=32; 32: var chars = "abcdefghijklmnopqrstuvwxyz0123456789"; 33: var randomstring = ""; 34: for (var i=0; i 35: { 36: var randchar = Math.floor(Math.random() * chars.length); 37: randomstring += chars.substring(randchar, randchar+1); 38: } 39: return randomstring; 40: } 41: 42: // Add an alert 43: // text: text to appear 44: // level: 0 green, 1 (default) yellow, 2 red 45: // autoRemove: seconds before autoRemove (0 = keep forever), default 5s 46: this.add = function(text, level, autoRemove) 47: { 48: if (level == undefined) 49: var level = 1; 50: if (autoRemove == undefined) 51: var autoRemove = 5; 52: 53: if (this.container == null) // not initialised at startup 54: this.container = document.getElementById('alert_pane'); 55: var div = document.createElement('div'); 56: var id = "alert_"+this.random(); 57: div.setAttribute('id', id); 58: div.className = "alert_"+level; 59: 60: var content = document.createElement('span'); 61: content.innerHTML = text; 62: 63: var close = document.createElement('span'); 64: close.className = "alertclose"; 65: close.innerHTML = "X"; 66: 67: div.appendChild(content); 68: div.appendChild(close); 69: 70: this.container.appendChild(div); 71: 72: if (autoRemove > 0) 73: { 74: setTimeout(function(){Alerts.close(id); }, autoRemove*1000); 75: } 76: } 77: 78: this.close = function(id) 79: { 80: var child = document.getElementById(id); 81: if (child != undefined) 82: this.container.removeChild(child); 83: } 84: 85: this.clear = function() 86: { 87: if (this.container.hasChildNodes()) 88: { 89: while(this.container.childNodes.length >= 1) 90: this.container.removeChild(this.container.firstChild); 91: } 92: } 93: 94: this.randomTest = function() 95: { 96: var lvl = Math.floor(Math.random() * 3); 97: var txt = "Hello "+this.random()+ " "+lvl; 98: this.add(txt, lvl); 99: } 100: } 101: 102: Alerts = new FreeDESK_AlertPane(); 103: 104: