summaryrefslogtreecommitdiffstats
path: root/htdocs
diff options
context:
space:
mode:
authorTom Kistner <tom@duncanthrax.net>2008-12-04 11:24:17 +0100
committerAndreas Unterkircher <unki@netshadow.at>2008-12-12 23:18:56 +0100
commitf8a8bc98f9a77d24e0fce2abd73c9512bcf26f2d (patch)
tree84af841fdb450b60d54e590ec02b9ddb0e671cba /htdocs
parenta35e1469841bfbc7e58b66dcefb108993bc4b494 (diff)
downloadexilog-f8a8bc98f9a77d24e0fce2abd73c9512bcf26f2d.zip
exilog-f8a8bc98f9a77d24e0fce2abd73c9512bcf26f2d.tar.gz
exilog-f8a8bc98f9a77d24e0fce2abd73c9512bcf26f2d.tar.bz2
Forward unreleased changes
- IPv6 address parsing - Some queue management - Better SQL quoting - More misc stuff Signed-off-by: Tom Kistner <tom@duncanthrax.net>
Diffstat (limited to 'htdocs')
-rw-r--r--htdocs/exilog_jscript.js111
-rw-r--r--htdocs/exilog_stylesheet.css31
2 files changed, 129 insertions, 13 deletions
diff --git a/htdocs/exilog_jscript.js b/htdocs/exilog_jscript.js
index 01aaf52..e08d79d 100644
--- a/htdocs/exilog_jscript.js
+++ b/htdocs/exilog_jscript.js
@@ -1,3 +1,43 @@
+// ********************************************************************
+// XMLHTTP stuff
+
+var xmlhttp=false;
+/*@cc_on @*/
+/*@if (@_jscript_version >= 5)
+// JScript gives us Conditional compilation, we can cope with old IE versions.
+// and security blocked creation of the objects.
+ try {
+ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+} catch (e) {
+ try {
+ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+} catch (E) {
+ xmlhttp = false;
+}
+}
+@end @*/
+if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
+ xmlhttp = new XMLHttpRequest();
+}
+
+var xmlhttpparent;
+function message_action(myserver,mymsgid,mycontrol,myparent) {
+ xmlhttpparent = myparent;
+ var myaction = mycontrol.options[mycontrol.selectedIndex].value;
+ if (myaction.length < 2) return;
+ xmlhttp.open("GET", "?xmlhttp=1&action="+myaction+"&server="+myserver+"&message_id="+mymsgid,true);
+ xmlhttp.onreadystatechange=function() {
+ if (xmlhttp.readyState==4) {
+ document.getElementById(xmlhttpparent).innerHTML = xmlhttp.responseText;
+ }
+ }
+ xmlhttp.send(null)
+}
+
+
+// ********************************************************************
+// Some generic functions used across the interface
+
function set_value(myobj,myvalue) {
document.getElementById(myobj).value = myvalue;
};
@@ -16,6 +56,10 @@ function link_off(myobj) {
myobj.style.background = myobj.id;
};
+
+// ********************************************************************
+// JS Code for the picker controls on the "Messages" and "Queues" tabs
+
var my_controls = new Object;
my_controls['term'] = new Object;
my_controls['events'] = new Object;
@@ -77,9 +121,12 @@ function switch_controls(myselection) {
}
};
-function check_group(group)
-{
- var j, c=document.forms[0].elements, s=c.length;
+
+// ==================================================================
+// "Messages" tab specific
+//
+function check_group(group) {
+ var j, c=document.forms[0].elements, s=c.length;
for( j=0 ; j<s ; j++ ) {
if (c[j].name == "sr")
if( c[j].id == group )
@@ -127,8 +174,63 @@ function sr_changed() {
};
+// ==================================================================
+// "Queues" tab specific
+//
+function q_check_group(group) {
+ var j, c=document.forms[0].elements, s=c.length;
+ for( j=0 ; j<s ; j++ ) {
+ if (c[j].name == "q_sr")
+ if( c[j].id == group )
+ c[j].checked = true;
+ else
+ c[j].checked = false;
+ };
+}
+
+function q_ss_changed() {
+ if (document.getElementById('q_ss').selectedIndex == 0) {
+ // "all" was selected, select all
+ var j, c=document.forms[0].elements, s=c.length;
+ for( j=0 ; j<s ; j++ )
+ if (c[j].name == "q_sr") c[j].checked = true;
+ }
+ else if (document.getElementById('q_ss').selectedIndex == 1) {
+ // "custom" was selected, blank all
+ var j, c=document.forms[0].elements, s=c.length;
+ for( j=0 ; j<s ; j++ )
+ if (c[j].name == "q_sr") c[j].checked = false;
+ }
+ else {
+ var group = document.getElementById('q_ss').options[document.getElementById('q_ss').selectedIndex].value;
+ q_check_group(group);
+ };
+};
+
+function q_sr_off_except(myobj) {
+ var j, c=document.forms[0].elements, s=c.length;
+ for( j=0 ; j<s ; j++ )
+ if (c[j].name == "q_sr") c[j].checked = false;
+ myobj.checked = true;
+};
+
+function q_qw_off_except(myobj) {
+ var j, c=document.forms[0].elements, s=c.length;
+ for( j=0 ; j<s ; j++ )
+ if (c[j].name == "q_qw") c[j].checked = false;
+ myobj.checked = true;
+};
+
+function q_sr_changed() {
+ document.getElementById('q_ss').selectedIndex = 1;
+};
+
+
+// ******************************************************************
+// JS Code for the Date picker control
+//
// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
@@ -1227,6 +1329,3 @@ function CP_getCalendar() {
return result;
}
-
-var cal1x = new CalendarPopup("caldiv1x");
-var cal2x = new CalendarPopup("caldiv2x");
diff --git a/htdocs/exilog_stylesheet.css b/htdocs/exilog_stylesheet.css
index f50ec95..e315446 100644
--- a/htdocs/exilog_stylesheet.css
+++ b/htdocs/exilog_stylesheet.css
@@ -91,9 +91,15 @@ select {
font-size: 10px;
}
-table.queue_table {
- background: black;
+table.queue_frame_table {
+ border: 0;
+ font-size: 12px;
+}
+table.queue_entry_table {
+ background: #999999;
+ margin-bottom: 8px;
font-size: 12px;
+ width: 926px;
}
td.queue_header {
background: #cccccc;
@@ -104,15 +110,26 @@ td.queue {
background: #eeeeee;
white-space: nowrap;
padding: 2px 4px 2px 4px;
+ font-family: monospace;
+}
+
+div.popup_container {
+ position: relative;
+ width:0px;
+ height:0px;
+ border:0;
+ margin:0;
+ padding:0;
}
-div.rcpts_pending_popup {
+div.popup {
position: absolute;
visibility: hidden;
- background: #dddddd;
+ background: #eeeeee;
+ top: -3px;
+ left: -5px;
color: black;
- padding: 4px;
- border: 1px solid black;
- width: 100px;
+ padding: 2px 4px 2px 4px;
+ border: 1px solid #999999;
}
td.table_titlebar {