Remove no longer used html template files

This commit is contained in:
Akkadius 2019-06-09 23:36:19 -05:00
parent c3e10a7409
commit f6a96ae941
89 changed files with 0 additions and 5151 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 156 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 B

View File

@ -1,60 +0,0 @@
/* TreeMenu.css
A component of HTML_TreeMenu as extended by Chip Chapin
2002-10-31 Chip Chapin
*/
/*******************************************************************
* HTML_TreeMenuXL style entries
* The following entries are used by HTML_TreeMenuXL
* See http://www.chipchapin.com/WebTools/MenuTools/HTML_TreeMenuXL/
********************************************************************/
.tmenu0text { /* Normal paragraph font */
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
font-size: 13px; /* x-small, 80% */
font-weight: bold;
}
.tmenu1text { /* smalltext */
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
font-size: 11px; /* xx-small, 70% */
}
.tmenu2text { /* smallitalic */
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
font-size: 11px;
font-style: italic;
}
.tmenu3text { /* xsmalltext */
font-family: Arial, Tahoma, sans-serif;
font-size: 10px; /* xx-small, 55%, 63%; for Arial */
font-style: normal;
}
/* Since all menu items are links, the following can be equally important
* to your menu appearance.
* The main thing you may want to change are the A:link and A:visited colors.
*/
*.tmenu0text A:link,*.tmenu1text A:link,*.tmenu2text A:link,*.tmenu3text A:link
{ text-decoration:none; color:#505080 }
*.tmenu0text A:visited,*.tmenu1text A:visited,*.tmenu2text A:visited,*.tmenu3text A:visited
{ text-decoration:none; color:#505080 }
*.tmenu0text A:active,*.tmenu1text A:active,*.tmenu2text A:active,*.tmenu3text A:active
{ text-decoration:none; color:#805050 }
*.tmenu0text A:hover,*.tmenu1text A:hover,*.tmenu2text A:hover,*.tmenu3text A:hover
{ text-decoration:underline; color:#FF0000 }
/* .tmlistbox controls the appearance of Listbox menus */
.tmlistbox {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px; /* match 'smalltext' value */
font-size-adjust: 0.58; /* Verdana */
margin-bottom: 0px;
}
/* .tmenuSelected is used with linkSelectKey to highlight selected items */
.tmenuSelected {
background-color: yellow;
}
*.tmenuSelected A:link { text-decoration:none; color:#2020ff }
*.tmenuSelected A:visited { text-decoration:none; color:#2020ff }
*.tmenuSelected A:active { text-decoration:none; color:#ff2020 }
*.tmenuSelected A:hover { text-decoration:underline; color:#FF0000 }

View File

@ -1,636 +0,0 @@
// cc 2002-11-12 modifed for HTML_TreeMenuXL
// +-----------------------------------------------------------------------+
// | Copyright (c) 2002, Richard Heyes, Harald Radi |
// | All rights reserved. |
// | |
// | Redistribution and use in source and binary forms, with or without |
// | modification, are permitted provided that the following conditions |
// | are met: |
// | |
// | o Redistributions of source code must retain the above copyright |
// | notice, this list of conditions and the following disclaimer. |
// | o Redistributions in binary form must reproduce the above copyright |
// | notice, this list of conditions and the following disclaimer in the |
// | documentation and/or other materials provided with the distribution.|
// | o The names of the authors may not be used to endorse or promote |
// | products derived from this software without specific prior written |
// | permission. |
// | |
// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
// | |
// +-----------------------------------------------------------------------+
// | Author: Richard Heyes <richard@phpguru.org> |
// | Harald Radi <harald.radi@nme.at> |
// +-----------------------------------------------------------------------+
//
// $Id: TreeMenu.js,v 1.8 2002/11/10 18:16:19 richard Exp $
/**
* TreeMenu class
*/
function TreeMenu(iconpath, myname, linkTarget, defaultClass, usePersistence)
{
// Properties
this.iconpath = iconpath;
this.myname = myname;
this.linkTarget = linkTarget;
this.defaultClass = defaultClass;
this.usePersistence = usePersistence;
this.imgWidth = 20;
this.imgHeight = 20;
this.n = new Array();
this.branches = new Array();
this.branchStatus = new Array();
this.layerRelations = new Array();
this.childParents = new Array();
this.cookieStatuses = new Array();
// cc 2002-11-12
this.style = false;
this.lineImageWidth = this.imgWidth;
this.lineImageHeight= this.imgHeight;
this.iconImageWidth = this.imgWidth;
this.iconImageHeight= this.imgHeight;
this.preloadImages();
}
/**
* Adds a node to the tree
*/
TreeMenu.prototype.addItem = function (newNode)
{
newIndex = this.n.length;
newNode.iconImageWidth = this.imgWidth;
newNode.iconImageHeight = this.imgHeight;
newNode.lineImageWidth = this.imgWidth;
newNode.lineImageHeight = this.imgHeight;
this.n[newIndex] = newNode;
return this.n[newIndex];
}
TreeMenu.prototype.SetImageSize = function(w, h) {
this.imgWidth = w;
this.imgHeight = h;
}
/**
* Preload images hack for Mozilla
*/
TreeMenu.prototype.preloadImages = function ()
{
var plustop = new Image; plustop.src = this.iconpath + '/plustop.gif';
var plusbottom = new Image; plusbottom.src = this.iconpath + '/plusbottom.gif';
var plus = new Image; plus.src = this.iconpath + '/plus.gif';
var minustop = new Image; minustop.src = this.iconpath + '/minustop.gif';
var minusbottom = new Image; minusbottom.src = this.iconpath + '/minusbottom.gif';
var minus = new Image; minus.src = this.iconpath + '/minus.gif';
var branchtop = new Image; branchtop.src = this.iconpath + '/branchtop.gif';
var branchbottom = new Image; branchbottom.src = this.iconpath + '/branchbottom.gif';
var branch = new Image; branch.src = this.iconpath + '/branch.gif';
var linebottom = new Image; linebottom.src = this.iconpath + '/linebottom.gif';
var line = new Image; line.src = this.iconpath + '/line.gif';
}
/**
* Main function that draws the menu and assigns it
* to the layer (or document.write()s it)
*/
TreeMenu.prototype.drawMenu = function ()// OPTIONAL ARGS: nodes = [], level = [], prepend = '', expanded = false, visbility = 'inline', parentLayerID = null
{
/**
* Necessary variables
*/
var output = '';
var modifier = '';
var layerID = '';
var parentLayerID = '';
/**
* Parse any optional arguments
*/
var nodes = arguments[0] ? arguments[0] : this.n
var level = arguments[1] ? arguments[1] : [];
var prepend = arguments[2] ? arguments[2] : '';
var expanded = arguments[3] ? arguments[3] : false;
var visibility = arguments[4] ? arguments[4] : 'inline';
var parentLayerID = arguments[5] ? arguments[5] : null;
var currentlevel = level.length;
for (var i=0; i<nodes.length; i++) {
level[currentlevel] = i+1;
layerID = this.myname + '_' + 'node_' + this.implode('_', level);
/**
* Store the child/parent relationship
*/
this.childParents[layerID] = parentLayerID;
/**
* Gif modifier
*/
if (i == 0 && parentLayerID == null) {
modifier = nodes.length > 1 ? "top" : 'single';
} else if(i == (nodes.length-1)) {
modifier = "bottom";
} else {
modifier = "";
}
/**
* Single root branch is always expanded
*/
if (!this.doesMenu() || (parentLayerID == null && nodes.length == 1)) {
expanded = true;
} else if (nodes[i].expanded) {
expanded = true;
} else {
expanded = false;
}
/**
* Make sure visibility is correct based on parent status
*/
visibility = this.checkParentVisibility(layerID) ? visibility : 'none';
/**
* Setup branch status and build an indexed array
* of branch layer ids
*/
if (nodes[i].n.length > 0) {
this.branchStatus[layerID] = expanded;
this.branches[this.branches.length] = layerID;
}
/**
* Setup toggle relationship
*/
if (!this.layerRelations[parentLayerID]) {
this.layerRelations[parentLayerID] = new Array();
}
this.layerRelations[parentLayerID][this.layerRelations[parentLayerID].length] = layerID;
/**
* Branch images
*/
var gifname = nodes[i].n.length && this.doesMenu() && nodes[i].isDynamic ? (expanded ? 'minus' : 'plus') : 'branch';
// cc 2002-11-12 variable image dimensions to line below
var iconimg = nodes[i].icon ? this.stringFormat('<img src="{0}/{1}" width="{2}" height="{3}" align="top">', this.iconpath, nodes[i].icon, nodes[i].iconImageWidth, nodes[i].iconImageHeight) : '';
/**
* Build the html to write to the document
* IMPORTANT:
* document.write()ing the string: '<div style="display:...' will screw up nn4.x
*/
var layerTag = this.doesMenu() ? this.stringFormat('<div id="{0}" style="display: {1}" class="{2}">', layerID, visibility, (nodes[i].cssClass ? nodes[i].cssClass : this.defaultClass)) : this.stringFormat('<div class="{0}">', '');
var onMDown = this.doesMenu() && nodes[i].n.length && nodes[i].isDynamic ? this.stringFormat('onmousedown="{0}.toggleBranch(\'{1}\', true)" style="cursor: pointer; cursor: hand"', this.myname, layerID) : '';
// cc 2002-11-12 variable image dimensions to line below
var imgTag = this.stringFormat('<img src="{0}/{1}{2}.gif" width="{5}" height="{6}" align="top" border="0" name="img_{3}" {4}>', this.iconpath, gifname, modifier, layerID, onMDown, nodes[i].lineImageWidth, nodes[i].lineImageHeight);
var linkStart = nodes[i].link ? this.stringFormat('<a href="{0}" target="{1}">', nodes[i].link, this.linkTarget) : '';
var linkEnd = nodes[i].link ? '</a>' : '';
// cc 2002-11-12 All these are additions
var selectedStart = nodes[i].selected ? "<span class='"+nodes[i].selected+"'>" : '';
var selectedEnd = nodes[i].selected ? '</span>' : '';
var nobrStart = this.brOK ? '' : '<nobr>';
var nobrEnd = this.brOK ? '' : '</nobr>';
// cc 2002-11-12 modified
output = this.stringFormat('{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}{10}<br></div>',
layerTag,
nobrStart,
prepend,
parentLayerID == null && nodes.length == 1 ? '' : imgTag,
iconimg,
selectedStart, linkStart,
nodes[i].title,
linkEnd, selectedEnd,
nobrEnd);
/**
* Write out the HTML. Uses document.write for speed over layers and
* innerHTML. This however means no dynamic adding/removing nodes on
* the client side. This could be conditional I guess if dynamic
* adding/removing is required.
*/
document.write(output + "\r\n");
/**
* Traverse sub nodes ?
*/
if (nodes[i].n.length) {
/**
* Determine what to prepend. If there is only one root
* node then the prepend to pass to children is nothing.
* Otherwise it depends on where we are in the tree.
*/
if (parentLayerID == null && nodes.length == 1) {
var newPrepend = '';
} else if (i < (nodes.length - 1)) {
// cc 2002-11-12 Both lines, added image size parameters.
var newPrepend = prepend + this.stringFormat('<img src="{0}/line.gif" width="{1}" height="{2}" align="top">', this.iconpath, nodes[i].lineImageWidth, nodes[i].lineImageHeight);
} else {
var newPrepend = prepend + this.stringFormat('<img src="{0}/linebottom.gif" width="{1}" height="{2}" align="top">', this.iconpath, nodes[i].lineImageWidth, nodes[i].lineImageHeight);
}
this.drawMenu(nodes[i].n,
level,
newPrepend,
nodes[i].expanded,
expanded ? 'inline' : 'none',
layerID);
}
}
}
/**
* Toggles a branches visible status. Called from resetBranches()
* and also when a +/- graphic is clicked.
*/
TreeMenu.prototype.toggleBranch = function (layerID, updateStatus) // OPTIONAL ARGS: noSave = false
{
var currentDisplay = this.getLayer(layerID).style.display;
var newDisplay = (this.branchStatus[layerID] && currentDisplay == 'inline') ? 'none' : 'inline'
for (var i=0; i<this.layerRelations[layerID].length; i++) {
if (this.branchStatus[this.layerRelations[layerID][i]]) {
this.toggleBranch(this.layerRelations[layerID][i], false);
}
this.getLayer(this.layerRelations[layerID][i]).style.display = newDisplay;
}
if (updateStatus) {
this.branchStatus[layerID] = !this.branchStatus[layerID];
/**
* Persistence
*/
if (this.doesPersistence() && !arguments[2] && this.usePersistence) {
this.setExpandedStatusForCookie(layerID, this.branchStatus[layerID]);
}
// Swap image
this.swapImage(layerID);
}
}
/**
* Swaps the plus/minus branch images
*/
TreeMenu.prototype.swapImage = function (layerID)
{
imgSrc = document.images['img_' + layerID].src;
re = /^(.*)(plus|minus)(bottom|top|single)?.gif$/
if (matches = imgSrc.match(re)) {
document.images['img_' + layerID].src = this.stringFormat('{0}{1}{2}{3}',
matches[1],
matches[2] == 'plus' ? 'minus' : 'plus',
matches[3] ? matches[3] : '',
'.gif');
}
}
/**
* Can the browser handle the dynamic menu?
*/
TreeMenu.prototype.doesMenu = function ()
{
return (is_ie4up || is_nav6up || is_gecko);
}
/**
* Can the browser handle save the branch status
*/
TreeMenu.prototype.doesPersistence = function ()
{
return (is_ie4up || is_gecko || is_nav6up);
}
/**
* Returns the appropriate layer accessor
*/
TreeMenu.prototype.getLayer = function (layerID)
{
if (is_ie4) {
return document.all(layerID);
} else if (document.getElementById(layerID)) {
return document.getElementById(layerID);
} else if (document.all(layerID)) {
return document.all(layerID);
}
}
/**
* Save the status of the layer
*/
TreeMenu.prototype.setExpandedStatusForCookie = function (layerID, expanded)
{
this.cookieStatuses[layerID] = expanded;
this.saveCookie();
/*
if (is_ie5up) {
document.all(layerID).setAttribute("expandedStatus", expanded);
document.all(layerID).save(layerID);
} else {
}
*/
}
/**
* Load the status of the layer
*/
TreeMenu.prototype.getExpandedStatusFromCookie = function (layerID)
{
if (this.cookieStatuses[layerID]) {
return this.cookieStatuses[layerID];
}
return false;
/* document.all(layerID).load(layerID);
if (val = document.all(layerID).getAttribute("expandedStatus")) {
return val;
} else {
return null;
}
*/
}
/**
* Saves the cookie that holds which branches are expanded.
* Only saves the details of the branches which are expanded.
*/
TreeMenu.prototype.saveCookie = function ()
{
var cookieString = new Array();
for (var i in this.cookieStatuses) {
if (this.cookieStatuses[i] == true) {
cookieString[cookieString.length] = i;
}
}
document.cookie = 'TreeMenuBranchStatus=' + cookieString.join(':');
}
/**
* Reads cookie parses it for status info and
* stores that info in the class member.
*/
TreeMenu.prototype.loadCookie = function ()
{
var cookie = document.cookie.split('; ');
for (var i=0; i < cookie.length; i++) {
var crumb = cookie[i].split('=');
if ('TreeMenuBranchStatus' == crumb[0] && crumb[1]) {
var expandedBranches = crumb[1].split(':');
for (var j=0; j<expandedBranches.length; j++) {
this.cookieStatuses[expandedBranches[j]] = true;
}
}
}
}
/**
* Reset branch status
*/
TreeMenu.prototype.resetBranches = function ()
{
if (!this.doesPersistence()) {
return false;
}
this.loadCookie();
for (var i=0; i<this.branches.length; i++) {
var status = this.getExpandedStatusFromCookie(this.branches[i]);
// Only update if it's supposed to be expanded and it's not already
if (status == true && this.branchStatus[this.branches[i]] != true) {
if (this.checkParentVisibility(this.branches[i])) {
this.toggleBranch(this.branches[i], true, true);
} else {
this.branchStatus[this.branches[i]] = true;
this.swapImage(this.branches[i]);
}
}
}
}
/**
* Checks whether a branch should be open
* or not based on its parents' status
*/
TreeMenu.prototype.checkParentVisibility = function (layerID)
{
if (this.in_array(this.childParents[layerID], this.branches)
&& this.branchStatus[this.childParents[layerID]]
&& this.checkParentVisibility(this.childParents[layerID]) ) {
return true;
} else if (this.childParents[layerID] == null) {
return true;
}
return false;
}
/**
* New C# style string formatter
*/
TreeMenu.prototype.stringFormat = function (strInput)
{
var idx = 0;
for (var i=1; i<arguments.length; i++) {
while ((idx = strInput.indexOf('{' + (i - 1) + '}', idx)) != -1) { // cc 2002-11-12 fix 10<i<=100
strInput = strInput.substring(0, idx) + arguments[i] + strInput.substr(idx + (i<=10?3:4));
}
}
return strInput;
}
/**
* Also much adored, the PHP implode() function
*/
TreeMenu.prototype.implode = function (seperator, input)
{
var output = '';
for (var i=0; i<input.length; i++) {
if (i == 0) {
output += input[i];
} else {
output += seperator + input[i];
}
}
return output;
}
/**
* Aah, all the old favourites are coming out...
*/
TreeMenu.prototype.in_array = function (item, arr)
{
for (var i=0; i<arr.length; i++) {
if (arr[i] == item) {
return true;
}
}
return false;
}
/**
* TreeNode Class
*/
function TreeNode(title, icon, link, expanded, isDynamic, cssClass)
{
this.title = title;
this.icon = icon;
this.link = link;
this.expanded = expanded;
this.isDynamic = isDynamic;
this.cssClass = cssClass;
this.lineImageWidth = 20;
this.lineImageHeight= 20;
this.iconImageWidth = 20;
this.iconImageHeight= 20;
this.n = new Array();
}
/**
* Adds a node to an already existing node
*/
TreeNode.prototype.addItem = function (newNode)
{
newIndex = this.n.length;
newNode.iconImageWidth = this.iconImageWidth;
newNode.iconImageHeight = this.iconImageHeight;
newNode.lineImageWidth = this.lineImageWidth;
newNode.lineImageHeight = this.lineImageHeight;
this.n[newIndex] = newNode;
return this.n[newIndex];
}
/**
* That's the end of the tree classes. What follows is
* the browser detection code.
*/
//<!--
// Ultimate client-side JavaScript client sniff. Version 3.03
// (C) Netscape Communications 1999-2001. Permission granted to reuse and distribute.
// Revised 17 May 99 to add is_nav5up and is_ie5up (see below).
// Revised 20 Dec 00 to add is_gecko and change is_nav5up to is_nav6up
// also added support for IE5.5 Opera4&5 HotJava3 AOLTV
// Revised 22 Feb 01 to correct Javascript Detection for IE 5.x, Opera 4,
// correct Opera 5 detection
// add support for winME and win2k
// synch with browser-type-oo.js
// Revised 26 Mar 01 to correct Opera detection
// Revised 02 Oct 01 to add IE6 detection
// Everything you always wanted to know about your JavaScript client
// but were afraid to ask. Creates "is_" variables indicating:
// (1) browser vendor:
// is_nav, is_ie, is_opera, is_hotjava, is_webtv, is_TVNavigator, is_AOLTV
// (2) browser version number:
// is_major (integer indicating major version number: 2, 3, 4 ...)
// is_minor (float indicating full version number: 2.02, 3.01, 4.04 ...)
// (3) browser vendor AND major version number
// is_nav2, is_nav3, is_nav4, is_nav4up, is_nav6, is_nav6up, is_gecko, is_ie3,
// is_ie4, is_ie4up, is_ie5, is_ie5up, is_ie5_5, is_ie5_5up, is_ie6, is_ie6up, is_hotjava3, is_hotjava3up,
// is_opera2, is_opera3, is_opera4, is_opera5, is_opera5up
// (4) JavaScript version number:
// is_js (float indicating full JavaScript version number: 1, 1.1, 1.2 ...)
// (5) OS platform and version:
// is_win, is_win16, is_win32, is_win31, is_win95, is_winnt, is_win98, is_winme, is_win2k
// is_os2
// is_mac, is_mac68k, is_macppc
// is_unix
// is_sun, is_sun4, is_sun5, is_suni86
// is_irix, is_irix5, is_irix6
// is_hpux, is_hpux9, is_hpux10
// is_aix, is_aix1, is_aix2, is_aix3, is_aix4
// is_linux, is_sco, is_unixware, is_mpras, is_reliant
// is_dec, is_sinix, is_freebsd, is_bsd
// is_vms
//
// See http://www.it97.de/JavaScript/JS_tutorial/bstat/navobj.html and
// http://www.it97.de/JavaScript/JS_tutorial/bstat/Browseraol.html
// for detailed lists of userAgent strings.
//
// Note: you don't want your Nav4 or IE4 code to "turn off" or
// stop working when new versions of browsers are released, so
// in conditional code forks, use is_ie5up ("IE 5.0 or greater")
// is_opera5up ("Opera 5.0 or greater") instead of is_ie5 or is_opera5
// to check version in code which you want to work on future
// versions.
/**
* Severly curtailed all this as only certain elements
* are required by TreeMenu, specifically:
* o is_ie4up
* o is_nav6up
* o is_gecko
*/
// convert all characters to lowercase to simplify testing
var agt=navigator.userAgent.toLowerCase();
// *** BROWSER VERSION ***
// Note: On IE5, these return 4, so use is_ie5up to detect IE5.
var is_major = parseInt(navigator.appVersion);
var is_minor = parseFloat(navigator.appVersion);
// Note: Opera and WebTV spoof Navigator. We do strict client detection.
// If you want to allow spoofing, take out the tests for opera and webtv.
var is_nav = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
&& (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
&& (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));
var is_nav6up = (is_nav && (is_major >= 5));
var is_gecko = (agt.indexOf('gecko') != -1);
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_ie4 = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
var is_ie4up = (is_ie && (is_major >= 4));
//--> end hide JavaScript

View File

@ -1,194 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Account Details</h2>
<hr/>
<?
my $acct = $request->get("name", "");
my $act = $request->get("action", "");
if($acct eq "") {
print "Missing account name.";
} elsif($act eq "move") {
my $cid = $request->getInt("charid", 0);
my $cname = $request->get("charname", "NONE");
if($cid < 1) {
print "Missing char ID";
} else {
print <<"HTML";
<form action="?" method="POST">
Move $cname to another account...<br>
<input type="hidden" name="action" value="move2">
<input type="hidden" name="name" value="$acct">
<input type="hidden" name="charid" value="$cid">
<input type="hidden" name="charname" value="$cname">
New Account ID: <input type="text" name="newacct"><br>
<input type="submit" value="Move">
</form>
HTML
}
} elsif($act eq "move2") {
my $cid = $request->getInt("charid", 0);
my $na = $request->getInt("newacct", 0);
my $cname = $request->get("charname", "NONE");
my $acctE = $EQDB->escape_string($acct);
if($cid < 1 || $na < 1) {
print "Missing char ID";
} else {
my $q = "SELECT name FROM account WHERE id=$na";
my $res=$EQDB->query($q);
my $a;
if(!$res) {
print "Query name error.";
} elsif(!($a = $res->fetch_row_hash)) {
print "No such account $na.";
} else {
$an = $a->{name};
$q = "UPDATE character_ SET account_id=$na WHERE id=$cid";
if($EQDB->query($q)) {
print "$cname has been moved to account $an ($na)";
print "<br><br><a href='?name=$acct'>Back to $acct...</a>";
print "<br><a href='?name=$an'>Go to $an...</a>";
} else {
print "Update error.";
}
}
}
} elsif($act eq "listips") {
my $ipadd = $request->get("ipaddress", "NONE");
my $acctE = $EQDB->escape_string($acct);
if($ipadd eq '') {
print "Missing IP Address";
} else {
my $q = "SELECT accid FROM account_ip WHERE ip='$ipadd'";
my $res=$EQDB->query($q);
if($res) {
print <<"HTML";
<br>
<table border='1'>
<tr>
<th align="center">Account ID</th>
<th align="center">Account Name</th>
<th align="center">IP Address</th>
</tr>
HTML
while(my $row4 = $res->fetch_row_hash) {
my $accountid = $row4->{accid};
my $q;
$q = "SELECT name FROM account WHERE id=$accountid";
my $res2=$EQDB->query($q);
if ($res2) {
my $row5=$res2->fetch_row_hash;
print <<"CHAR";
<tr>
<td align="center">$row4->{accid}</td>
<td align="center"><a href="accounts.html?name=$row5->{name}&action=accounts.html&type='account'">$row5->{name}</a></td>
<td align="center">$ipadd</td>
</tr>
CHAR
} else {
print "Account Name query error.";
}
}
print "</table>";
} else {
print "IP Address query error.";
}
}
} else {
my $acctE = $EQDB->escape_string($acct);
my $q;
$q="select id,charname,sharedplat,status,revoked from account where name='$acctE'";
my $res=$EQDB->query($q);
if ($res) {
my $row=$res->fetch_row_hash;
print <<"HTML";
<table border="1">
<tr><th>Name:</th><td>$acct</td></tr>
<tr><th>Account ID:</th><td>$row->{id}</td></tr>
<tr><th>Status:</th><td>$row->{status}</td></tr>
<tr><th>Revoked:</th><td>$row->{revoked}</td></tr>
<tr><th>Last Used Char:</th><td>$row->{charname}</td></tr>
<tr><th>Shared Platinum:</th><td>$row->{sharedplat}</td></tr>
</table>
HTML
$q = "SELECT id,name,zonename FROM character_ WHERE account_id=$row->{id}";
my $res2 = $EQDB->query($q);
if($res2) {
print <<"HTML";
<br>
<table border='1'>
<tr>
<th align="center">ID</th>
<th align="center">Char Name</th>
<th align="center">Current Zone</th>
<th align="center">Actions</th>
</tr>
HTML
while(my $row2 = $res2->fetch_row_hash) {
print <<"CHAR";
<tr>
<td align="center">$row2->{id}</td>
<td align="center">$row2->{name}</td>
<td align="center">$row2->{zonename}</td>
<td align="center">
delete,
<a href="?name=$acct&action=move&charid=$row2->{id}&charname=$row2->{name}">move acct</a>,
move zone
</td>
</tr>
CHAR
}
print "</table>";
} else {
print "Char query error.";
}
$q="SELECT ip,count FROM account_ip WHERE accid=$row->{id}";
my $res3=$EQDB->query($q);
if($res3) {
print <<"HTML";
<br>
<table border='1'>
<tr>
<th align="center">IPs Used</th>
<th align="center">Count</th>
</tr>
HTML
while(my $row3 = $res3->fetch_row_hash) {
print <<"CHAR";
<tr>
<td align="center"><a href="?name=$acct&action=listips&ipaddress=$row3->{ip}">$row3->{ip}</a></td>
<td align="center">$row3->{count}</td>
</tr>
CHAR
}
print "</table>";
} else {
print "No IPs associated with this account or IP query error.";
}
print <<"HTML";
<hr>
<form action="action.html" method="POST">
<input type='hidden' name='name' value='$acct'>
<input type='hidden' name='action' value='acctpasswd'>
Telnet/HTTP Password: <input type="password" name="password"> <input type='submit' value="Change"> (blank=disable)
</form>
HTML
} else {
print "Query error.";
}
print "Actions: ban/unban, set status, set world password, delete chars, move chars, delete account and chars";
}
?>
</body>
</html>

View File

@ -1,77 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Account Management</h2>
<hr/>
<?
$query = $request->get("name", "");
$accid = $request->getInt("accountid", 0);
$newstatus = $request->getInt("newstatus", 0);
$type = $request->get("type", "");
?>
<form method="get" action="accounts.html">
<b>Account Search:</b><br>
<input name="type" type="radio" value="account" <?if($type ne "char") { print "checked"; } ?> > Account Name &nbsp;
<input name="type" type="radio" value="char" <?if($type eq "char") { print "checked"; } ?> > Character Name
<br>
<input name="name" type="text" value="<?print $query;?>">
<input name="" type="submit" value="Search">
</form>
<?
if($accid > 0) {
my $q2 = "UPDATE account SET status=$newstatus WHERE id=$accid";
$EQDB->query($q2);
print "Status update for Account ID: $accid Completed";
}
if ($query) {
$query = $EQDB->escape_string($query);
my $q;
if($type eq "account") {
$q="select id,name,status from account where name rlike '$query'";
} else {
$q="select b.name as cname,a.id,a.name,a.status from account a, character_ b where b.account_id= a.id and b.name rlike '$query'";
}
my $res=$EQDB->query($q);
if ($res) {
print "<table border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\">\n";
print "\t<tr>\n";
if ($type eq "char") {
printf "\t\t<th scope=\"col\" width=\"150\">Char Name</th>\n";
}
printf "\t\t<th scope=\"col\" width=\"75\">ID</th>\n";
printf "\t\t<th scope=\"col\" width=\"150\">Acct Name</th>\n";
printf "\t\t<th scope=\"col\" width=\"75\">Status</th>\n";
printf "\t\t<th scope=\"col\" width=\"130\">New Status</th>\n";
printf "\t</tr>\n";
while(my $row=$res->fetch_row_hash) {
print "\t<tr>\n";
if ($type eq "char") {
printf "\t\t<td>%s</td>\n",$row->{cname};
}
printf "\t\t<td>%d</td>\n",$row->{id};
printf "\t\t<td><a href=\"account.html?name=%s\">%s</a></td>\n",$row->{name},$row->{name};
printf "\t\t<td>%d</td>\n",$row->{status};
print "<form method=\"get\" action=\"accounts.html\">";
printf "\t\t<input type=\"hidden\" name=\"accountid\" value=\"%d\">\n",$row->{id};
printf "\t\t<input type=\"hidden\" name=\"name\" value=\"$query\">\n",
printf "\t\t<input type=\"hidden\" name=\"type\" value=\"$type\">\n",
printf "\t\t<td><input name=\"newstatus\" type=\"text\" size=\"1\" value=\"0\"> <input name=\"\" type=\"submit\" value=\"Set Status\"></td>\n";
print "\t</tr>\n";
print "</form>";
}
print "</table>";
}
}
?>
</body>
</html>

View File

@ -1,43 +0,0 @@
<?
#for the most part, every action here should redirect to some other page...
$result = ""; #fill this in for non-redirected output.
my $act = $request->get("action", "NONE");
if($act eq "acctpasswd") {
my $aname = $request->getEscaped("name", "_");
my $apass = $request->getEscaped("password", "");
if($aname eq "_") {
print "Missing name";
} else {
my $q;
if($apass eq "") {
#set the password to something that somebody could not likely guess
$q = "UPDATE account SET password=MD5(unix_timestamp()) WHERE name='$aname'";
} else {
$q = "UPDATE account SET password=MD5('$apass') WHERE name='$aname'";
}
if(!$EQDB->query($q)) {
$result = "Error in query.";
} else {
$request->redirect("account.html?name=$aname");
}
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Action Taken</h2>
<hr/>
<? print $result; ?>
</body>
</html>

View File

@ -1,41 +0,0 @@
<?
my $act = $request->get("type");
if($act eq "static") {
my $z = $request->get("zone");
if($z eq "") {
print "Invalid zone name.";
} else {
$EQW->BootStaticZone($z);
$request->SetResponseCode(302);
$request->header("Location", "zones.html");
print "Booting static zone $z...";
}
print "<hr/>\n";
} elsif($act eq "dynamic") {
$EQW->BootDynamicZone();
$request->SetResponseCode(302);
$request->header("Location", "zones.html");
print "Booting a dynamic zone...";
print "<hr/>\n";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Boot A New Zone</h2>
<hr/>
<form name="form1" method="post" action="?">
Zone Type:<br />
<input name="type" type="radio" value="dynamic" checked> Dynamic <br/>
<input name="type" type="radio" value="static"> Static. Short Name: <input type="text" name="zone"> <br/>
<br>
<input type="submit" value="Boot">
</form>
</body>
</html>

View File

@ -1,81 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Bugs</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<?
my $action = $request->get("action", "NONE");
if($action eq "resolved") {
my $id = $request->get("id", "0");
$EQW->ResolveBug($id);
}
$offset = $request->get("offset", "0");
$count = $EQW->CountBugs();
@bugs = $EQW->ListBugs($offset);
# @bugs = (
# { who => "Kim", where => "arena (0.0, 4.0, 5.0)", target => "an_arena_fighter000", description => "Wont accept a simple summons item" }
# );
?>
<body>
<h2 align="center">Bug List</h2>
<hr/>
<div align="center">
<?
my $sep = ($count / 30);
for(my $i = 0; $i < $sep; ++$i) {
my $cur = 30 * $i;
my $name = $i + 1;
print "<a href='bugs.html?offset=$cur'>$name</a> ";
}
?>
</div>
<?
print "There are $count bugs in the database.";
?>
<hr/>
<table width="100%" border="1" cellspacing="2" cellpadding="3" class="zonelist">
<tr>
<th scope="col">Actions</th>
<th scope="col">Reporter</th>
<th scope="col">Where</th>
<th scope="col">Target</th>
<th scope="col">Descripton</th>
</tr>
<?
for my $bugkey (@bugs) {
my $bug = $EQW->GetBugDetails($bugkey);
if(!$bug) {
next;
}
print "<tr>\n";
print "<td><a href='bugs.html?action=resolved&id=$bug->{id}&offset=$offset'>Resolved</a></td>";
print "<td>$bug->{name}</td>";
print "<td>$bug->{zone}: ($bug->{x}, $bug->{y}, $bug->{z})</td>";
print "<td>$bug->{target}</td>";
print "<td>$bug->{bug}</td>";
print "</tr>\n";
}
?>
</table>
<div align="center">
<?
my $sep = ($count / 30);
for(my $i = 0; $i < $sep; ++$i) {
my $cur = 30 * $i;
my $name = $i + 1;
print "<a href='bugs.html?offset=$cur'>$name</a> ";
}
?>
</div>
</body>
</html>

View File

@ -1,15 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Chat</h2>
<hr/>
show the last -n- lines of OOC, maybe tells too... have the ability to send world emotes, OOC, etc...
</body>
</html>

View File

@ -1,104 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Command Settings</h2>
<hr/>
<?
my $gets = $request->get_all;
my $error=0;
if (defined($gets->{"update.x"})) {
my $i=0;
my $max=$gets->{maxid};
$EQDB->query("delete from commands");
for(my $i=0;$i<$max;++$i) {
my ($command,$access) = ($gets->{"command$i"},$gets->{"access$i"});
next if (!$command);
$q=sprintf("replace into commands (command,access) values('%s',%s)",$EQDB->escape_string($command),$EQDB->escape_string($access));
$EQDB->query($q);
if ($EQDB->get_errno) {
$error=1;
printf("Error adding command %s: %s<br>\n",$command,$EQDB->error);
}
}
if ($error==0) {
printf("<h3>Command settings updated, will take affect on zone restart.</h3><br>\n");
}
}
?>
<form method="get" action="commands.html">
<?
my $i=0;
$q="select * from commands order by command";
my $res=$EQDB->query($q);
if ($res) {
print "<table id=\"cmd_tab\" border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\"><tr>\n";
printf "\t\t<th scope=\"col\" width=\"150\">Command</th>\n";
printf "\t\t<th scope=\"col\" width=\"70\">Access</th>\n";
printf "\t</tr>\n";
while(my $row=$res->fetch_row_hash) {
printf "\t\t<tr><td>#%s<input id=\"cmd%d\" type=\"hidden\" name=\"command%d\" value=\"%s\"></td>\n",$row->{command},$i,$i,$row->{command};
printf "\t\t<td><input size=\"4\" type=\"text\" value=\"%s\" name=\"access%d\"/>&nbsp;<img src=\"delete.gif\" alt=\"delete\" onClick=\"del_row(%d)\"></td>\n",$row->{access},$i,$i;
print "\t</tr>\n";
++$i;
}
}
printf("<tr><td colspan=\"2\" align=\"center\"><input value=\"Add New Command\" type=button onClick=\"add_row()\"/></td></tr>\n");
printf("</table><script language=\"javascript\">var next_field=%d;</script>\n",$i);
printf("<input type=\"hidden\" id=\"maxid\" value=\"%d\" name=\"maxid\">\n",$i-1);
?>
<script language="javascript">
function add_row() {
var tab=document.getElementById('cmd_tab');
var row=tab.insertRow(tab.rows.length-1);
var cell=row.insertCell(0);
var textNode = document.createTextNode('#');
cell.appendChild(textNode);
var el=document.createElement('input');
el.type='text';
el.name='command'+next_field;
el.value='NewCommand';
el.id='cmd'+next_field;
el.size=20;
cell.appendChild(el);
cell=row.insertCell(1);
el=document.createElement('input');
el.type='text';
el.name='access'+next_field;
el.value='100';
el.size=4;
cell.appendChild(el);
el=document.createElement('img');
el.src='delete.gif';
el.onclick=new Function('del_row('+next_field+')');
cell.appendChild(el);
++next_field;
var inp=document.getElementById('maxid');
inp.value=next_field;
}
function del_row(i) {
var row=document.getElementById('cmd'+i);
row.parentNode.parentNode.parentNode.removeChild(row.parentNode.parentNode);
}
</script>
<p>
<input type="image" src="update.png" name="update"/>
<input type="image" src="reset.png" name="reset"/>
</form>
</body>
</html>

View File

@ -1,33 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Configuration File</h2>
<hr/>
<p><a href="configdl.html">Download XML Config </a></p>
<table bgcolor="#FFFFCC"><tr><td>
<font color="#000000">
<pre>
<?
$file = "eqemu_config.xml";
if(open(F, "<$file")) {
while(<F>) {
s/</&lt;/g;
s/>/&gt;/g;
print;
}
close(F);
} else {
print "Unable to open $file";
}
?>
</pre></font></td></tr></table>
</body>
</html>

View File

@ -1,10 +0,0 @@
<?
$file = "eqemu_config.xml";
if(open(F, "<$file")) {
$request->get("Content-type", "text/xml");
while(<F>) {
print;
}
close(F);
}
?>

View File

@ -1,19 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Database Operations</h2>
<hr/>
<p>Some basic database operations...</p>
<p><a href="accounts.html">Accounts</a> - View and edit characters and accounts</p>
<p><a href="variables.html">Variables</a> - View and change in-database variables</p>
<p><a href="filters.html">Filters And Bans</a> - View and edit name filters and banned accounts</p>
<p><a href="minilogin.html">Mini-login</a> Change Server Type and Settings</p>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 339 B

View File

@ -1 +0,0 @@

View File

@ -1,16 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Filter Management</h2>
<hr/>
view blocked names, add/delete them.<br>
list banned accounts, add/delete them.
</body>
</html>

View File

@ -1,115 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Guild Details</h2>
<hr/>
<?
my $gid = $request->getInt("id", 0);
if($gid > 0) {
my $act = $request->get("action", "");
#note: delete action should be done on the actions.html page, so we can redirect elsewhere.
if($act eq "makeleader") {
my $char = $request->getInt("char", 0);
if($char > 0) {
if(!$EQW->SetGuildLeader($gid, $char)) {
print "Failed to change guild leader, check your logs.<hr />";
} else {
print "Guild leader changed.<hr />";
}
} else {
print "Invalid char in makeleader.<hr/>";
}
} elsif($act eq "remove") {
my $char = $request->getInt("char", 0);
if($char > 0) {
if(!$EQW->SetGuild($char, -1, 3)) {
print "Failed to remove member, check your logs.<hr />";
} else {
print "Guild member removed.<hr />";
}
} else {
print "Invalid char in remove member.<hr/>";
}
}
my $q = "SELECT g.id,g.name,g.leader,g.motd,g.motd_setter,g.tribute,c.name AS lname FROM guilds AS g LEFT JOIN character_ AS c ON g.leader=c.id WHERE g.id=$gid";
my $res=$EQDB->query($q);
my $row;
if($res && ($row = $res->fetch_row_hash)) {
print <<"HTML";
<table border="1">
<tr><th>Name:</th><td>$row->{name}</td></tr>
<tr><th>Leader:</th><td>$row->{lname} ($row->{leader})</td></tr>
<tr><th>MOTD:</th><td>$row->{motd_setter} - $row->{motd}</td></tr>
<tr><th>Tribute:</th><td>$row->{tribute}</td></tr>
</table>
<hr>
<h4>Guild Members</h4>
HTML
$q = "SELECT g.char_id,c.name,g.rank,gr.title,g.banker,g.public_note,g.tribute_enable,g.total_tribute "
."FROM guild_members AS g "
."LEFT JOIN character_ AS c ON g.char_id=c.id "
."LEFT JOIN guild_ranks AS gr ON g.rank=gr.rank AND g.guild_id=gr.guild_id "
."WHERE g.guild_id=$gid";
my $res2 = $EQDB->query($q);
if($res2) {
print <<"HTML";
<br>
<table border='1'>
<tr>
<th align="center">Char ID</th>
<th align="center">Char Name</th>
<th align="center">Rank</th>
<th align="center">Tribute</th>
<th align="center">Public Note</th>
<th align="center">Actions</th>
</tr>
HTML
while(my $row2 = $res2->fetch_row_hash) {
my $tline = "Off";
if($row2->{tribute_enable}) {
$tline = "On";
}
my $bline = "";
if($row2->{banker}) {
$bline = "<b>Banker</b>";
}
print <<"CHAR";
<tr>
<td align="center">$row2->{char_id}</td>
<td align="center">$row2->{name}</td>
<td align="center">$row2->{title} ($row2->{rank}) $bline</td>
<td align="center">$tline/$row2->{total_tribute}</td>
<td align="center">$row2->{public_note}</td>
<td align="center">
<a href="guild.html?id=$gid&action=remove&char=$row2->{char_id}">Remove</a> -
<a href="guild.html?id=$gid&action=makeleader&char=$row2->{char_id}">Make Leader</a></td>
</tr>
CHAR
}
print "</table>";
}
} else {
print "Unable to query guild details.";
}
} else {
print "Invalid guild id.";
}
?>
TODO:<br>
online status, delete guild, add member, change motd, change public note, set tribute, make banker, rename guild, view/edit custom ranks, view/edit guild relations.
</body>
</html>

View File

@ -1,47 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Create A Guild</h2>
<hr/>
<?
$gname = $request->get("name", "");
$lname = $request->get("leader", "");
if($gname ne "" && $lname ne "") {
$q="select id from character_ where name='".$EQDB->escape_string($lname)."'";
my $res=$EQDB->query($q);
if($res) {
if(my $row=$res->fetch_row_hash) {
my $lid = $row->{id};
my $gid = $EQW->CreateGuild($gname, $lid);
if($gid > 0 && $gid < 3000) {
print "Guild $gname successfully created with ID $gid<br>";
} else {
print "Error creating guild. Check your logs.<br>";
}
} else {
print "Unable to find '$lname'<br>";
}
} else {
print "Unable to query leader's name.<br>";
}
}
?>
<form method="POST" action="guildcreate.html">
Guild Name: <input name="name" type="text" value="<?print $gname;?>"><br>
Leader Char Name: <input name="leader" type="text" value="<?print $lname;?>"><br>
<input name="" type="submit" value="Create">
</form>
</body>
</html>

View File

@ -1,40 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Guild List</h2>
<hr/>
<div align="center">
<a href="guildcreate.html">Create Guild</a> -
<a href="guildsearch.html">Search Guilds</a>
</div>
<hr/>
<?
$q="select a.*,b.name as leader_name from guilds a left outer join character_ b on a.leader=b.id";
my $res=$EQDB->query($q);
if ($res) {
print <<"HTML";
<table border="1" cellspacing="2" cellpadding="3" class="zonelist">
<th scope="col" width="75">ID</th>
<th scope="col" width="150">Guild Name</th>
<th scope="col" width="150">Leader Name</th>
</tr>
HTML
while(my $row=$res->fetch_row_hash) {
printf "\t\t<td>%d</td>\n",$row->{id};
printf "\t\t<td><a href='guild.html?id=%d'>%s</a></td>\n",$row->{id},$row->{name};
printf "\t\t<td>%s</td>\n",$row->{leader_name};
print "\t</tr>\n";
}
}
?>
</body>
</html>

View File

@ -1,40 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Search Guilds</h2>
<hr/>
<?
$query = $request->get("name", "");
$type = $request->get("type", "");
?>
<form method="get" action="guildsearch.html">
<b>Guild Search:</b><br>
<input name="type" type="radio" value="name" <?if($type ne "leader" && $type ne "member") { print "checked"; } ?> > Guild Name <br>
<input name="type" type="radio" value="leader" <?if($type eq "leader") { print "checked"; } ?> > Leader Name <br>
<input name="type" type="radio" value="member" <?if($type eq "member") { print "checked"; } ?> > Member Name
<br>
<input name="name" type="text" value="<?print $query;?>">
<input name="" type="submit" value="Search">
</form>
<?
if($query ne "") {
if($type eq "name") {
print "search for guild by name $query...";
} elsif($type eq "leader") {
print "search for guild by leader $query...";
} elsif($type eq "member") {
print "search for guild by member $query...";
} else {
print "Invalid search type '$type'";
}
}
?>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,17 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>EQEmulator Management</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset rows="99,*" cols="*" frameborder="YES" border="1" framespacing="0">
<frame src="top.html" name="topFrame" scrolling="NO" noresize >
<frameset rows="*" cols="114,*" framespacing="0" frameborder="NO" border="0">
<frame src="menu.html" name="leftF" scrolling="NO" noresize>
<frame src="status.html" name="main">
</frameset>
</frameset>
<noframes><body>
</body></noframes>
</html>

View File

@ -1,200 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<?
$lname = $request->get("name","ERROR");
?>
<body>
<h2 align="center">Launcher <?print $lname; ?> Details</h2>
<hr/>
<?
my $act = $request->get("action", "none");
if($act eq "Add") {
my $dynamics = $request->getInt("dynamics", "0");
if($lname eq "" || $lname eq "ERROR") {
print "Missing launcher name in Add action.";
} elsif($dynamics < 0) {
print "Invalid dynamics count in Add action.";
} else {
print "Added launcher '$lname' with $dynamics dynamic zones.";
$EQW->CreateLauncher($lname, $dynamics);
}
print "<hr/>";
}
$config = $EQW->GetLauncher($lname);
if(!$config) {
print "<h2>Unable to find launcher $lname</h2>";
}
if($act eq "Boot") {
my $zone = $request->get("zone", "none");
my $port = $request->getInt("port", 0);
if($lname eq "ERROR" || $zone eq "none" || $zone eq "" || $port < 0 || $port > 65535) {
print "Invalid zone, port, or launcher name in Boot action.";
} else {
if(!$config->BootStaticZone($zone, $port)) {
print "Failed to boot '$zone' on launcher $lname with port $port. Invalid zone?";
} else {
print "Booting new zone $zone on launcher $lname with port $port.";
}
}
print "<hr/>";
} elsif($act eq "Change") {
my $count = $request->getInt("count", 0);
if($lname eq "ERROR" || $count < 0) {
print "Invalid launcher name or count";
} else {
$config->SetDynamicCount($count);
print "Changed dynamic count to $count. Notifying launcher.";
}
print "<hr/>";
} elsif($act eq "remove") {
my $zone = $request->get("zone", "none");
if($lname eq "ERROR" || $zone eq "none" || $zone eq "") {
print "Invalid zone or launcher name in $act action.";
} else {
if(!$config->DeleteStaticZone($zone)) {
print "Failed to remove '$zone' on launcher $lname. Invalid zone?";
} else {
print "Removed $zone from launcher $lname";
}
}
print "<hr/>";
} elsif($act eq "restart") {
my $zone = $request->get("zone", "none");
if($lname eq "ERROR" || $zone eq "none" || $zone eq "") {
print "Invalid zone or launcher name in $act action.";
} else {
$config->RestartZone($zone);
print "Sent restart for $zone to launcher $lname";
}
print "<hr/>";
} elsif($act eq "start") {
my $zone = $request->get("zone", "none");
if($lname eq "ERROR" || $zone eq "none" || $zone eq "") {
print "Invalid zone or launcher name in $act action.";
} else {
$config->StartZone($zone);
print "Sent start for $zone to launcher $lname";
}
print "<hr/>";
} elsif($act eq "kill") {
my $zone = $request->get("zone", "none");
if($lname eq "ERROR" || $zone eq "none" || $zone eq "") {
print "Invalid zone or launcher name in $act action.";
} else {
$config->StopZone($zone);
print "Sent stop for $zone to launcher $lname";
}
print "<hr/>";
} elsif($act eq "rebootall") {
foreach my $z($config->ListZones()) {
$config->RestartZone($z);
}
print "Restarted all zones.\n<hr/>";
} elsif($act eq "stopall") {
foreach my $z($config->ListZones()) {
$config->StopZone($z);
}
print "Stopped all zones.\n<hr/>";
} elsif($act eq "startall") {
foreach my $z($config->ListZones()) {
$config->StartZone($z);
}
print "Started all zones.\n<hr/>";
}
?>
<div align="center">
<a href="?name=<? print $lname; ?>">Reload</a> -
<a href="?name=<? print $lname; ?>&action=rebootall">Reboot All Zones</a> -
<a href="?name=<? print $lname; ?>&action=stopall">Stop All Zones</a> -
<a href="?name=<? print $lname; ?>&action=startall">Start All Zones</a>
</div>
<hr/>
<table border="0">
<tr>
<td>
<form action="?" method="POST">
<input type='hidden' name='name' value='<?print $lname; ?>'>
Add:
Zone Short Name: <input type='text' name='zone'>
Port: <input type='text' name='port' value='0' size='5'>
<input type='submit' name='action' value='Boot'>
</form>
</td>
</tr>
<tr>
<td>
<form action="launcher.html" method="POST">
<input type='hidden' name='name' value='<?print $lname; ?>'>
Change Dynamic Count: <input type='text' name='count' value='<? print $config->GetDynamicCount(); ?>' size='5'>
<input type='submit' name='action' value='Change'>
</form>
</td>
</tr>
</table>
<hr/>
<table width="100%" border="1" cellspacing="2" cellpadding="3" class="zonelist">
<tr>
<th scope="col">Zone Name</th>
<th scope="col">State</th>
<th scope="col">Port</th>
<th scope="col">Start Count</th>
<th scope="col">Actions</th>
</tr>
<?
my @zones = $config->ListZones();
for my $zone (sort @zones) {
my $z = $config->GetZoneDetails($zone);
if(!$z) {
$zone->{name} = "ERROR: no launcher";
} elsif($z->{error}) {
$zone->{name} = "ERROR: $z->{error}";
}
print "<tr>\n";
print "\t<td><a href='zone.html?zone=$z->{name}'>$z->{name}</a></td>";
if($z->{up}) {
print "<td><font color='#009900'>UP</font></td>";
} else {
print "<td><font color='#CC0000'>DOWN</font></td>";
}
if($z->{port} == 0) {
print "<td>Dynamic</td>";
} else {
print "<td>$z->{port}</td>";
}
print "<td>$z->{starts}</td>";
print "<td>";
if($config->IsConnected()) {
print "<a href='?action=restart&name=$lname&zone=$z->{name}'>Restart</a> - ";
if($z->{up}) {
print "<a href='?action=kill&name=$lname&zone=$z->{name}'>Stop</a>";
} else {
print "<a href='?action=start&name=$lname&zone=$z->{name}'>Start</a>";
}
if($z->{name} !~ /dynamic/) {
print " - ";
}
}
if($z->{name} !~ /dynamic/) {
print "<a href='?action=remove&name=$lname&zone=$z->{name}'>Remove</a>";
}
print "</td>\n";
print "</tr>\n";
}
?>
</table>
</body>
</html>

View File

@ -1,59 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<?
@list = $EQW->ListLaunchers();
?>
<body>
<h2 align="center">Launchers</h2>
<hr/>
<?
print "You have ".($#list+1)." launchers. (@list)";
?>
<hr/>
<table width="100%" border="1" cellspacing="2" cellpadding="3" class="zonelist">
<tr>
<th scope="col">Launcher Name </th>
<th scope="col">IP</th>
<th scope="col">Zone Count</th>
<th scope="col">Actions</th>
</tr>
<?
for my $lk (sort @list) {
my $l = $EQW->GetLauncher($lk);
if(!$l) {
#$zone->{name} = "ERROR: no launcher";
}
print "<tr>\n";
if($l->IsConnected()) {
print "\t<td><a href='launcher.html?name=".$l->GetName()."'>".$l->GetName()."</a></td>";
print "<td>_IP_</td>";
} else {
print "<td><a href='launcher.html?name=".$l->GetName()."'>".$l->GetName()."</a><br><b>Not Connected</b></td>";
print "<td>&nbsp;</td>";
}
print "<td>".$l->GetStaticCount()."s, ".$l->GetDynamicCount()."d</td>";
print "<td>";
print "<a href='launcher.html?name=".$l->GetName()."'>Details</a> - ";
print "<a href='action.html?action=remlauncher&name=".$l->GetName()."'>Remove</a>";
print "</td>\n";
print "</tr>\n";
}
?>
</table>
<form action="launcher.html" method="POST">
Add Launcher: Name: <input type='text' name='name'>
Dynamic Count: <input type='text' name='dynamics' size="3">
<input type='submit' name='action' value='Add'>
</form>
</body>
</html>

View File

@ -1,200 +0,0 @@
body {
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
font-size: 13px;
text-align: justify;
line-height: 20px;
background-color: #091315; //#12282D;
color: #8EAEB0;
}
.edgebody {
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
font-size: 13px;
text-align: justify;
line-height: 20px;
background-color: #091315; //#12282D;
color: #8EAEB0;
margin: 0px;
}
.menuborder {
background-color: #2B6874;
}
.menu {
background-color: #12282D;
}
img {
margin: 0;
}
a {
color: #555599;
TEXT-DECORATION: none
}
a:hover {
TEXT-DECORATION: underline;
}
.zonelist {
text-align: center;
}
h1, h2, h3, h4, h5 {
color: #CC9900;
margin: 0px;
padding: 0px;
}
table {
border-collapse:collapse;
}
th {
margin:2px;
padding: 2px;
border:1px solid #2b6874;
background-color:#2b6874;
color:#dddddd;
font-weight:bold;
}
td {
margin:2px;
padding: 2px;
border:1px solid #2b6874;
background-color:#12282F;
color:#aaaaaa;
}
.headtbl {
border: 0px;
margin: 0px;
padding: 0px;
background-color: #091315;
}
/*
a.menus {
cursor: default;
color: #555599; //#6C819E;
}
a.menus:hover {
cursor: default;
color: #555599;
text-decoration: underline;
}
a.default {
display: none;
text-decoration: none;
}
a.highres {
cursor: default;
color: #AAAAAA;
text-decoration: underline;
}
a.highres:hover {
cursor: default;
color: #AAAAAA;
text-decoration: none;
}
a.copywrite {
cursor: pointer;
color: #999999;
}
a.copywrite:hover {
cursor: pointer;
color: #999999;
text-decoration: none;
}
a.misctext {
cursor: pointer;
color: #999999;
}
a.misctext:hover {
cursor: pointer;
color: #999999;
text-decoration: none;
}
.logo {
position: absolute;
left: 0px;
top: 0px;
width: 531px;
height: 86px;
}
.logohighres {
display: none;
}
div.menus {
float: left;
font-size: 11px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
.menu {
text-align: left;
width: 140px;
color: white;
padding-bottom: 2px;
margin-bottom: 3px;
cursor: default;
}
div.styleswitcher {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #999999;
background-color: #333333;
width: 10px;
padding-bottom: 2px;
cursor: default;
margin-right: 1px;
}
.content {
color: #8EAEB0;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
margin-bottom: 3px;
}
.news {
margin-bottom: 5px;
}
.newstitle {
font-weight: bold;
margin-right: 1px;
}
.newsdate {
font-size: 10px;
color: #DDDDDD;
}
table {
font-size: 10px;
}
.newstext {
font-size: 10px;
}
.title {
font-weight: bold;
font-size: 14px;
}
div.copywrite {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #666666;
cursor: default;
margin-left: 5%;
}
.misctext {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #666666;
margin-top: 90px;
}
.tdhilite {
background-color: #12282D
}
.page {
color: #8EAEB0;
font-size: 13px;
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif;
background-color: #091315;
padding: 15px;
border: 1px inset;
border-bottom: none;
height: 100%;
}
*/

View File

@ -1,52 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<base target="main">
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script src="TreeMenu.js" language="JavaScript" type="text/javascript"></script>
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
<link rel="stylesheet" title="Default" href="TreeMenu.css" type="text/css" />
</head>
<body class="edgebody">
<table class="menu" border="0" bgcolor="#12282D" cellspacing="0" cellpadding="0" width="100%" height="100%">
<tr>
<td class="menu" valign="top" align="left" width="100%">
<script language="javascript" type="text/javascript">
EQLMenu = new TreeMenu("TMimages", "EQLMenu", "_self", "auto", true);
EQLMenu.linkTarget = "main";
EQLMenu.SetImageSize(20, 20);
statusmenu = EQLMenu.addItem(new TreeNode('Status', null, 'status.html', true, false, 'tmenu0text'));
statusmenu.addItem(new TreeNode('Players', null, 'players.html', true, false, 'tmenu1text'));
statusmenu.addItem(new TreeNode('Petitions', null, 'petitions.html', true, false, 'tmenu1text'));
statusmenu.addItem(new TreeNode('Bugs', null, 'bugs.html', true, false, 'tmenu1text'));
worldmenu = EQLMenu.addItem(new TreeNode('World', null, 'world.html', true, false, 'tmenu0text'));
worldmenu.addItem(new TreeNode('Launchers', null, 'launchers.html', true, false, 'tmenu1text'));
worldmenu.addItem(new TreeNode('Chat', null, 'chat.html', true, false, 'tmenu1text'));
zonesmenu = EQLMenu.addItem(new TreeNode('Zones', null, 'zones.html', true, false, 'tmenu0text'));
guildmenu = EQLMenu.addItem(new TreeNode('Guilds', null, 'guilds.html', true, false, 'tmenu0text'));
guildmenu.addItem(new TreeNode('Search', null, 'guildsearch.html', true, false, 'tmenu1text'));
guildmenu.addItem(new TreeNode('Create', null, 'guildcreate.html', true, false, 'tmenu1text'));
dbmenu = EQLMenu.addItem(new TreeNode('Database', null, 'database.html', true, false, 'tmenu0text'));
dbmenu.addItem(new TreeNode('Accounts', null, 'accounts.html', true, false, 'tmenu1text'));
dbmenu.addItem(new TreeNode('Variables', null, 'variables.html', true, false, 'tmenu1text'));
dbmenu.addItem(new TreeNode('Minilogin', null, 'minilogin.html', true, false, 'tmenu1text'));
dbmenu.addItem(new TreeNode('Bans/Filters', null, 'filters.html', true, false, 'tmenu1text'));
dbmenu.addItem(new TreeNode('Commands', null, 'commands.html', true, false, 'tmenu1text'));
configmenu = EQLMenu.addItem(new TreeNode('Config', null, 'config.html', true, false, 'tmenu0text'));
configmenu.addItem(new TreeNode('Rules', null, 'rule.html', true, false, 'tmenu1text'));
EQLMenu.drawMenu();
EQLMenu.resetBranches();
</script>
<br/>
</td>
<td class="menuborder" width="1"><img src="spacer.gif"></td>
</tr>
<tr><td colspan="2" class="menuborder" height="1" width="100%"><img src="spacer.gif"></td></tr>
</table>
</body>
</html>

View File

@ -1,20 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Mini-Login Management</h2>
<hr/>
<form action="action.html" method="get">
<b>Minilogin:</b>
<input name="minilogin" type="radio" value="1"> Enabled
<input name="minilogin" type="radio" value="0" checked> Disabled
</form>
... change IP addrs and stuff ...
</body>
</html>

View File

@ -1,39 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Petition Management</h2>
<hr/>
<?
$q = "SELECT accountname, charname, petitiontext, FROM_UNIXTIME(senttime, '%Y-%m-%d %h:%m %p') AS senttime FROM petitions";
my $res = $EQDB->query($q);
if ($res) {
print "<table width=\"100%\" border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\">\n";
print "\t<tr>\n";
print "\t\t<th width=1 nowrap>Account</th>\n";
print "\t\t<th width=1 nowrap>Character</th>\n";
print "\t\t<th>Text</th>\n";
print "\t\t<th width=1 nowrap>Date/Time</th>\n";
print "\t</tr>\n";
while (my $row=$res->fetch_row_hash) {
print "\t<tr>\n";
print "\t\t<td><a href=\"account.html?name=$row->{accountname}\">$row->{accountname}</a></td>\n";
print "\t\t<td>$row->{charname}</td>\n";
print "\t\t<td align=\"left\">$row->{petitiontext}</td>\n";
print "\t\t<td>$row->{senttime}</td>\n";
print "\t</tr>\n";
}
print "</table>\n";
} else {
print "No petitions"
}
?>
Delete petitions
</body>
</html>

View File

@ -1,72 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<?
$zone = $request->get("zone", "");
@chars = $EQW->ListPlayers($zone);
#(
# { character => "Joe", account => "yay", location_short => "arena", location_long => "Arena" },
# { character => "Bob", account => "yay", location_short => "freportw", location_long => "West Freeport" },
# { character => "Monkey", account => "notyay", location_short => "freportn", location_long => "North Freeport" }
# );
?>
<body>
<h2 align="center">Online Player List</h2>
<hr/>
<?
if($zone eq "") {
print "There are ".($#chars+1)." players logged in.";
} else {
print "There are ".($#chars+1)." players in $zone.";
}
?>
<hr/>
<table width="100%" border="1" cellspacing="2" cellpadding="3" class="zonelist">
<tr>
<th scope="col">Character</th>
<th scope="col">Account Name</th>
<th scope="col">Location</th>
<th scope="col">Actions</th>
</tr>
<?
foreach my $charname (@chars) {
my $char = $EQW->GetPlayerDetails($charname);
if(!$char) {
$char->{character} = "ERROR: no char";
} elsif($char->{error}) {
$char->{character} = "ERROR: ".$char->{error};
}
print "<tr>";
if($char->{character} eq "") {
print "<td>Not Selected</td>";
} else {
print "<td>$char->{character}";
if(defined($char->{guild_id}) && $char->{guild_id} > 0) {
print " &lt;<a href='guild.html?id=$char->{guild_id}'>guild #$char->{guild_id}</a>&gt;";
}
print "<br>";
print "$char->{level} $char->{race} $char->{class}";
print "</td>";
}
print "<td><a href='account.html?name=$char->{account}'>$char->{account}</a>";
if($char->{status} > 0) {
print " (status $char->{status})";
}
print "<br>";
print " $char->{ip}</td>";
print "<td>$char->{location_long} ($char->{location_short})</td>";
print "<td>";
print "<a href='char.html?name=$char->{character}&action=kick'>Kick</a>";
print "</td>";
print "</tr>";
}
?>
</table>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,44 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Rules Management</h2>
<hr/>
<?
my $q = "SELECT DISTINCT(rv.ruleset_id), rs.name FROM rule_sets rs RIGHT JOIN rule_values rv ON (rv.ruleset_id = rs.ruleset_id) ORDER BY rv.ruleset_id ASC";
my $res = $EQDB->query($q);
if ($res) {
print "<table align=\"center\" border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\">\n";
print "\t<tr>\n";
print "\t\t<th width=1 nowrap>Name</th>\n";
print "\t\t<th width=1 nowrap>ID</th>\n";
print "\t\t<th width=1 nowrap>Rules</th>\n";
#print "\t\t<th width=1 nowrap></th>\n"; #delete column
print "\t</tr>\n";
while (my $row = $res->fetch_row_hash) {
print "\t<tr>\n";
print "\t\t<td><a href=\"rules.html?ruleset_id=$row->{ruleset_id}\">$row->{name}</a></td>\n";
print "\t\t<td><a href=\"rules.html?ruleset_id=$row->{ruleset_id}\">$row->{ruleset_id}</a></td>\n";
my $q2 = "SELECT COUNT(ruleset_id) AS num_rules FROM rule_values WHERE ruleset_id = '$row->{ruleset_id}'";
my $res2 = $EQDB->query($q2);
my $row2 = $res2->fetch_row_hash;
print "\t\t<td>$row2->{num_rules}</td>\n";
#print "\t\t<td><input type=\"image\" src=\"delete.gif\" alt=\"Delete\"></td>\n";
print "\t</tr>\n";
}
} else {
print "No rule sets";
}
?>
Todo: show active rule set, change active rule set
</body>
</html>

View File

@ -1,103 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Rules Management</h2>
<hr/>
<center>Note: changes won't go into effect until you restart the server.</center>
<?
#before we do anything, we need to submit any changes that were passed via POST (or GET since we don't really check in $request)
my $rule_name = $request->get("rule_name");
if ($rule_name =~ m/\w+:\w+/i) { #if we have a value matching the pattern "Type:Name", we can assume we want to make the change
my $rule_value = $request->get("rule_value"); #not safe from injection, should be able to just escape quotes
my $q3 = "UPDATE rule_values SET rule_value = '$rule_value' WHERE rule_name = '$rule_name'";
my $res3 = $EQDB->query($q3);
print "<center>\n\t";
if ($res3) { # && ($EQDB->affected_rows > 0)
print "<font color=\"green\">$rule_name successfully changed to '$rule_value'</font><br>\n";
} else {
my $errno3 = $EQDB->get_errno;
my $err3 = $EQDB->error;
print "<font color=\"red\">Update of $rule_name to '$rule_value' failed! (Error $errno3: $err3)</font><br>\n";
}
print "</center>\n";
}
#for some reason, when we submit a change, we go back to the default view
my $ruleset_id = $request->get("ruleset_id", 1); #if we don't put a value, this gets defaulted to 0 no matter what we put for the default value using getInt, so we'll just do our own check
if ($ruleset_id !~ m/^[0-9]+$/) {$ruleset_id = 1;} #this should default any non-numeric values (particularly blank ones), also making it free from injections
my $rule_type = $request->get("rule_type", "All"); #not safe from injection as-is
if ($rule_type !~ m/^\w+$/i) {$rule_type = "All";} #this should make it safe from injection, but may cause issues if we start using non-alphanumeric characters in the first part of the rule_name
#now, we'll put together a list of the rule categories that we can filter by
print "<center>\n\t";
if ($rule_type eq "All") {print "<b>";}
print "<a href=\"rules.html?ruleset_id=$ruleset_id&rule_type=All\">All</a>";
if ($rule_type eq "All") {print "</b>";}
my $q = "SELECT DISTINCT(SUBSTRING(rule_name, 1, LOCATE(':', rule_name) - 1)) AS rule_type FROM rule_values WHERE ruleset_id = '$ruleset_id' ORDER BY rule_type ASC";
my $res = $EQDB->query($q);
if ($res) {
while (my $row = $res->fetch_row_hash) {
print " | \n\t";
if ($rule_type eq $row->{rule_type}) {print "<b>";}
print "<a href=\"rules.html?ruleset_id=$ruleset_id&rule_type=$row->{rule_type}\">$row->{rule_type}</a>";
if ($rule_type eq $row->{rule_type}) {print "</b>";}
}
}
print "\n</center>\n";
#next, we create the table, including the first line which will let us put in a new rule from scratch (eventually)
print "<table align=\"center\" border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\">\n";
print "\t<tr>\n";
print "\t\t<th width=1 nowrap>Type</th>\n";
print "\t\t<th width=1 nowrap>Name</th>\n";
print "\t\t<th width=1 nowrap>Value</th>\n";
print "\t\t<th width=1 nowrap>Notes</th>\n";
print "\t\t<th width=1 nowrap></th>\n";
#print "\t\t<th width=1 nowrap></th>\n";
print "\t</tr>\n";
#print "\t<tr>\n";
#print "\t\t<td></td>\n";
#print "\t\t<td></td>\n";
#print "\t\t<td></td>\n";
#print "\t\t<td></td>\n";
#print "\t\t<td colspan=\"2\"><button>Add</button></td>\n";
#print "\t<tr>\n";
#lastly, output any matching rules
my $w2 = "WHERE ruleset_id = '$ruleset_id'";
if ($rule_type ne "All") {
$w2 .= " AND rule_name LIKE '$rule_type:%'";
}
my $q2 = "SELECT ruleset_id, SUBSTRING(rule_name, 1, LOCATE(':', rule_name) - 1) AS rule_type, SUBSTRING(rule_name, LOCATE(':', rule_name) + 1) AS rule_name_short, rule_name, rule_value, notes FROM rule_values $w2 ORDER BY rule_name ASC";
my $res2 = $EQDB->query($q2);
if ($res) {
while (my $row2 = $res2->fetch_row_hash) {
print "\t<tr>\n";
print "\t\t<form method=\"POST\" action=\"rules.html?ruleset_id=$ruleset_id&rule_type=$rule_type\">\n";
print "\t\t<input type=\"hidden\" name=\"ruleset_id\" value=\"$ruleset_id\">\n"; #if we don't pass this in POST, for some reason we don't pick them up from the GET info from the form action
print "\t\t<input type=\"hidden\" name=\"rule_type\" value=\"$rule_type\">\n"; #ditto
print "\t\t<td align=\"right\"><a href=\"rules.html?ruleset_id=$ruleset_id&rule_type=$row2->{rule_type}\">$row2->{rule_type}</a></td>\n";
print "\t\t<td align=\"left\">$row2->{rule_name_short}</td>\n";
print "\t\t<input type=\"hidden\" name=\"rule_name\" value=\"$row2->{rule_name}\">\n";
print "\t\t<td><input type=\"text\" name=\"rule_value\" size=\"8\" style=\"text-align: right\" value=\"$row2->{rule_value}\" /></td>\n";
print "\t\t<td>$row2->{notes}</td>\n";
print "\t\t<td><input type=\"image\" src=\"update.png\" alt=\"Update\"></td>\n";
#print "\t\t<td><input type=\"image\" src=\"delete.gif\" alt=\"Delete\"></td>\n";
print "\t\t</form>\n";
print "\t<tr>\n";
}
}
?>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 B

View File

@ -1,17 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Status Overview</h2>
<hr/>
<?do("templates/worldstatus.html");?>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,22 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>EQEmulator Management</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body class="edgebody">
<table width="862" height="100" border="0" cellpadding="0" cellspacing="0" class="headtbl">
<tr class="headtbl">
<td width="159" height="100" valign="top" class="headtbl">
<img src="head_01_nb.jpg" width="159" height="100"></td>
<td class="headtbl"><img src="head_02_nb.jpg" width="480" height="100"></td>
<td width="178" class="headtbl"><img src="head_03_nb.jpg" width="178" height="100"></td>
<td width="113" class="headtbl"><img src="head_04_nb.jpg" width="113" height="100"></td>
<td width="100%" class="headtbl">&nbsp;</td>
</tr>
</table>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,110 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Variable Settings</h2>
<hr/>
<?
my $gets = $request->get_all;
my $error=0;
if (defined($gets->{"update.x"})) {
$EQDB->query("delete from variables");
my $max=$gets->{maxid};
for(my $i=0;$i<$max;++$i) {
my ($varname,$info,$value) = ($gets->{"variable$i"},$gets->{"info$i"},$gets->{"value$i"});
next if (!$varname);
$q=sprintf("replace into variables (varname,information,value) values('%s','%s','%s')",$EQDB->escape_string($varname),$EQDB->escape_string($info),$EQDB->escape_string($value));
$EQDB->query($q);
if ($EQDB->get_errno) {
$error=1;
printf("Error adding variable %s: %s<br>\n",$varname,$EQDB->error);
}
}
if ($error==0) {
printf("<h3>Variable settings updated, will take affect on server restart.</h3><br>\n");
}
}
?>
<form method="get" action="variables.html">
<?
my $i=0;
$q="select * from variables order by varname";
my $res=$EQDB->query($q);
if ($res) {
print "<table id=\"var_tab\" border=\"1\" cellspacing=\"2\" cellpadding=\"3\" class=\"zonelist\"><tr>\n";
printf "\t\t<th scope=\"col\" width=\"150\">Variable</th>\n";
printf "\t\t<th scope=\"col\" width=\"250\">Description</th>\n";
printf "\t\t<th scope=\"col\" width=\"260\">Value</th>\n";
printf "\t</tr>\n";
while(my $row=$res->fetch_row_hash) {
printf "\t\t<tr><td>%s<input id=\"var%d\" type=\"hidden\" name=\"variable%d\" value=\"%s\"></td>\n",$row->{varname},$i,$i,$row->{varname};
printf "\t\t<td>%s<input type=\"hidden\" name=\"info%d\" value=\"%s\"></td>\n",$row->{information},$i,$row->{information};
printf "\t\t<td><textarea cols=\"30\" rows=\"2\" name=\"value%d\">%s</textarea>&nbsp;<img src=\"delete.gif\" alt=\"delete\" onClick=\"del_row(%d)\"></td>\n",$i,$row->{value},$i;
print "\t</tr>\n";
++$i;
}
}
printf("<tr><td colspan=\"3\" align=\"center\"><input value=\"Add New Variable\" type=button onClick=\"add_row()\"/></td></tr>\n");
printf("</table><script language=\"javascript\">var next_field=%d;</script>\n",$i);
printf("<input type=\"hidden\" id=\"maxid\" value=\"%d\" name=\"maxid\">\n",$i-1);
?>
<script language="javascript">
function add_row() {
var tab=document.getElementById('var_tab');
var row=tab.insertRow(tab.rows.length-1);
var cell=row.insertCell(0);
var el=document.createElement('input');
el.type='text';
el.name='variable'+next_field;
el.value='NewVariable';
el.id='var'+next_field;
el.size=20;
cell.appendChild(el);
cell=row.insertCell(1);
el=document.createElement('textarea');
el.rows='2';
el.cols='30';
el.name='info'+next_field;
el.text='NewInfo';
cell.appendChild(el);
cell=row.insertCell(2);
el=document.createElement('textarea');
el.rows='2';
el.cols='30';
el.name='value'+next_field;
el.text='NewValue';
cell.appendChild(el);
el=document.createElement('img');
el.src='delete.gif';
el.onclick=new Function('del_row('+next_field+')');
cell.appendChild(el);
++next_field;
var inp=document.getElementById('maxid');
inp.value=next_field;
}
function del_row(i) {
var row=document.getElementById('var'+i);
row.parentNode.parentNode.parentNode.removeChild(row.parentNode.parentNode);
}
</script>
<p>
<input type="image" src="update.png" name="update"/>
<input type="image" src="reset.png" name="reset"/>
</form>
</body>
</html>

View File

@ -1,32 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">World Management</h2>
<hr/>
<div align="center">
<a href="action.html?action=rebootworld">Reboot World</a> -
<a href="action.html?action=killworld">Kill World</a>
</div>
<?
my $act = $request->get("action", "none");
if($act eq "unlock") {
$EQW->UnlockWorld();
} elsif($act eq "lock") {
$EQW->LockWorld();
} elsif($act eq "lsreconnect") {
$EQW->LSReconnect();
}
?>
<br><br>
<?do("templates/worldstatus.html");?>
... some world info or something....
</body>
</html>

View File

@ -1,23 +0,0 @@
if($EQW->LSConnected()) {
my $ls = $EQW->GetConfig("LoginHost");
my $lsp = $EQW->GetConfig("LoginPort");
print "World is connected to login server $ls:$lsp.<br>";
} else {
my $ls = $EQW->GetConfig("LoginHost");
my $lsp = $EQW->GetConfig("LoginPort");
print "World <b>NOT</b> connected to login server $ls:$lsp. <a href='world.html?action=lsreconnect'>Restart Auto Reconnect</a>.<br>";
}
if($EQW->GetConfig("Locked") eq "true") {
print "World is locked. <a href='world.html?action=unlock'>Unlock World</a>.<br>";
} else {
print "World is NOT locked. <a href='world.html?action=lock'>Lock World</a>.<br>";
}
print "<br>\n";
my $zcount = $EQW->CountZones();
my $lcount = $EQW->CountLaunchers(1);
my $pcount = $EQW->CountPlayers();
print "There are <a href='zones.html'>$zcount zones booted</a>, <a href='launchers.html'>$lcount launchers connected</a>, and <a href='players.html'>$pcount players online.</a><br>";

View File

@ -1,17 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<body>
<h2 align="center">Zone Server Details</h2>
<hr/>
zone's IP, build date and version, what launcher is it under,
how many players are in the zone, link to player list,
does this zone have its map loaded, is perl enabled...
</body>
</html>

View File

@ -1,75 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" title="Default" href="main.css" type="text/css" />
</head>
<?
@zones = $EQW->ListBootedZones();
# @zones = (
# { type => "dynamic", short_name => "arena", long_name => "Arena", port => 8001 },
# { type => "static", short_name => "freportw", long_name => "West Freeport", port => 8002 },
# { type => "static", short_name => "freportn", long_name => "North Freeport", port => 8003 }
# );
?>
<body>
<h2 align="center">Zone List</h2>
<hr/>
<div align="center">
<a href="action.html?action=rebootall">Reboot All Zones</a> -
<a href="action.html?action=killall">Kill All Zones</a>
</div>
<hr/>
<?
print "You have ".($#zones+1)." zones running.";
?>
<hr/>
<table width="100%" border="1" cellspacing="2" cellpadding="3" class="zonelist">
<tr>
<th scope="col">Zone Name </th>
<th scope="col">Port</th>
<th scope="col">Players</th>
<th scope="col">Log File </th>
<th scope="col">Actions</th>
</tr>
<?
for my $zonekey (sort @zones) {
my $zone = $EQW->GetZoneDetails($zonekey);
if(!$zone) {
$zone->{long_name} = "ERROR: no zone";
} elsif($zone->{error}) {
$zone->{long_name} = "ERROR: $zone->{error}";
}
print "<tr>\n";
if($zone->{type} eq "dynamic") {
if($zone->{zone_id} == 0) {
print "\t<td><b>$zone->{launched_name}:</b> <a href='zone.html?zone=$zone->{short_name}'>Idle</a></td>";
} else {
print "\t<td><b>$zone->{launched_name}:</b> <a href='zone.html?zone=$zone->{short_name}'>$zone->{long_name}</a> ($zone->{short_name})</td>";
}
} else {
print "<td><a href='zone.html?zone=$zone->{short_name}'>$zone->{long_name}</a> ($zone->{short_name})</td>";
}
print "<td>$zone->{port}</td>";
print "<td><a href='players.html?zone=$zone->{short_name}'>Players</a></td>";
print "<td><a href='log.html?zone=$zone->{short_name}'>View Log</a></td>";
print "<td>";
print "<a href='action.html?zone=$zone->{short_name}&action=restart'>Restart</a> - ";
print "<a href='action.html?zone=$zone->{short_name}&action=kill'>Kill</a>";
print "</td>\n";
print "</tr>\n";
}
?>
</table>
</body>
</html>

View File

@ -1,8 +0,0 @@
bugview.html 0
playerview.html 0
zoneview.html 0
scripts/jquery.js 0
style/style.css 0
data/bug_data.html 0
data/player_data.html 0
data/zone_data.html 0

View File

@ -1,25 +0,0 @@
<?
my $action = $request->get("action", "none");
my $bug_id = $request->get("bug_id", "-1");
if($action eq "resolve") {
if($bug_id != -1) {
$EQW->ResolveBug($bug_id);
print "{";
print "\"status\": 1,";
print "\"message\": \"\"";
print "}";
} else {
print "{";
print "\"status\": 0,";
print "\"message\": \"Invalid bug id.\"";
print "}";
}
} else {
print "{";
print "\"status\": 0,";
print "\"message\": \"Invalid action.\"";
print "}";
}
?>

View File

@ -1,25 +0,0 @@
<?
my $action = $request->get("action", "none");
my $text = $request->get("text", "");
if($action eq "input") {
my $rep = $EQW->SendConsoleMessage($text);
if($rep ne "") {
print "{";
print "\"status\" : 0,";
print "\"message\" : \"$rep\"";
print "}";
return;
}
} else {
print "{";
print "\"status\" : 0,";
print "\"message\" : \"Unknown action sent to console.\"";
print "}";
return;
}
print "{";
print "\"status\" : 1,";
print "\"message\" : \"\"";
print "}";
?>

View File

@ -1,129 +0,0 @@
<?
my $action = $request->get("action", "none");
my $launcher_name = $request->get("launcher_name", "none");
if($launcher_name eq "" || $launcher_name eq "none") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Missing launcher name in Remove action\"";
print "}";
return;
}
if($action eq "add") {
my $dynamic_count = $request->get("dynamic_count", "0");
if($dynamic_count < 0 || $dynamic_count > 254) {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Invalid dynamics count in Add action\"";
print "}";
return;
} else {
$EQW->CreateLauncher($launcher_name, $dynamic_count);
}
} elsif($action eq "remove") {
my $l = $EQW->GetLauncher($launcher_name);
if(!$l) {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Launcher not found during Remove action\"";
print "}";
return;
}
$l->DeleteLauncher();
} elsif($action eq "boot") {
my $zone = $request->get("zone", "none");
my $port = $request->get("port", "0");
if($zone eq "none" || $zone eq "") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Missing zone name in Boot action\"";
print "}";
return;
}
if($port < 0 || $port > 65535) {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Port out of range in Boot action\"";
print "}";
return;
}
if(!$config->BootStaticZone($zone, $port)) {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Failed to boot '$zone' on launcher $launcher_name with port $port. Invalid zone?\"";
print "}";
return;
}
} elsif($action eq "change_dynamic_count") {
my $dynamic_count = $request->get("dynamic_count", "0");
$config->SetDynamicCount($dynamic_count);
} elsif($action eq "remove_zone") {
my $zone = $request->get("zone", "none");
if($zone eq "none" || $zone eq "") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Invalid zone name in Remove Zone action.\"";
print "}";
return;
} else {
if(!$config->DeleteStaticZone($zone)) {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Failed to remove '$zone' on launcher $launcher_name. Invalid zone?\"";
print "}";
return;
}
}
} elsif($action eq "reboot_all") {
foreach my $z($config->ListZones()) {
$config->RestartZone($z);
}
} elsif($action eq "stop_all") {
foreach my $z($config->ListZones()) {
$config->StopZone($z);
}
} elsif($action eq "start_all") {
foreach my $z($config->ListZones()) {
$config->StartZone($z);
}
} elsif($action eq "restart_zone") {
my $zone = $request->get("zone", "none");
if($zone eq "none" || $zone eq "") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Invalid zone name in Restart Zone action.\"";
print "}";
return;
} else {
$config->RestartZone($zone);
}
} elsif($action eq "start_zone") {
my $zone = $request->get("zone", "none");
if($zone eq "none" || $zone eq "") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Invalid zone name in Start Zone action.\"";
print "}";
return;
} else {
$config->StartZone($zone);
}
} elsif($action eq "stop_zone") {
my $zone = $request->get("zone", "none");
if($zone eq "none" || $zone eq "") {
print "{";
print "\"status\" : 0, ";
print "\"message\" : \"Invalid zone name in Stop Zone action.\"";
print "}";
return;
} else {
$config->StopZone($zone);
}
}
print "{";
print "\"status\" : 1";
print "}";
?>

View File

@ -1,23 +0,0 @@
<?
my $act = $request->get("action", "none");
if($act eq "unlock") {
$EQW->UnlockWorld();
} elsif($act eq "lock") {
$EQW->LockWorld();
} elsif($act eq "lsreconnect") {
$EQW->LSReconnect();
}
print "{";
if($EQW->LSConnected()) {
print "\"connected\" : \"1\",";
} else {
print "\"connected\" : \"0\",";
}
if($EQW->GetConfig("Locked") eq "true") {
print "\"locked\" : \"1\"";
} else {
print "\"locked\" : \"0\"";
}
print "}";
?>

View File

@ -1,16 +0,0 @@
<?
my $act = $request->get("action", "none");
if($act eq "kill") {
my $short_name = $request->get("short_name", "none");
my $instance_id = $request->get("instance_id", "none");
} elsif($act eq "restart") {
my $short_name = $request->get("short_name", "none");
my $instance_id = $request->get("instance_id", "none");
} elsif($act eq "killall") {
} elsif($act eq "restartall") {
}
print "{";
print "\"status\" : 1";
print "}";
?>

View File

@ -1,22 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
-->
</script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,157 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
var offset = 0;
function StatusTic() {
$.getJSON("data/bug_data.html?offset="+offset+"&idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById("open_bugs_count");
var cur_offset = offset / 50;
var sep = (data.total_bug_count / 50);
var app = "";
for(var i = 0; i < sep; ++i) {
var cur = 50 * i;
var name = i + 1;
if(i == cur_offset) {
app += "<b>"+name+"</b> ";
}
else {
app += "<a href='javascript:void(0)' onclick='OpenBugs(\""+cur+"\")'>"+name+"</a> ";
}
}
elm.innerHTML = app;
$("#bug_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Actions</th>";
app_html += "<th scope=\"col\">Reporter</th>";
app_html += "<th scope=\"col\">Where</th>";
app_html += "<th scope=\"col\">Target</th>";
app_html += "<th scope=\"col\">Descripton</th>";
app_html += "</tr>";
$("#bug_table").append(app_html);
for(var i = 0; i < data.bug_count; i++) {
app_html = "";
var mod = i % 2;
if(mod == 1) {
app_html += "<tr class=\"odd\">";
} else {
app_html += "<tr>";
}
var bug_text = data.bugs[i].bug;
bug_text = bug_text.replace("\r", "");
bug_text = bug_text.replace("\n", "</br>");
app_html += "<td><a href='javascript:void(0)' onclick='ResolveBug(\""+data.bugs[i].id+"\")'>Resolve</a></td>";
app_html += "<td>"+data.bugs[i].name+"</td>";
app_html += "<td>"+data.bugs[i].zone+": ("+data.bugs[i].x+", "+data.bugs[i].y+", "+data.bugs[i].z+")</td>";
app_html += "<td>"+data.bugs[i].target+"</td>";
app_html += "<td style=\"text-align:left;\">"+bug_text+"</td>";
app_html += "</tr>";
$("#bug_table").append(app_html);
}
});
}
function OpenBugs(off) {
offset = off;
StatusTic();
}
function ResolveBug(id) {
$.getJSON("actions/bug_action.html?action=resolve&bug_id="+id+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
return;
}
StatusTic();
});
}
$(document).ready(function() {
setInterval("StatusTic()", 15000);
});
-->
</script>
</head>
<?
@bugs = $EQW->ListBugs(0);
$bug_count = $EQW->CountBugs();
?>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<div align="center"><h2>Bugs</h2></div>
<div id="open_bugs_count" align="center">
<?
$cur_offset = 0;
my $sep = ($bug_count / 50);
for(my $i = 0; $i < $sep; ++$i) {
my $cur = 50 * $i;
my $name = $i + 1;
if($i == $cur_offset) {
print "<b>$name</b> ";
}
else {
print "<a href='javascript:void(0)' onclick='OpenBugs(\"$cur\")'>$name</a> ";
}
}
?>
</div>
<table id="bug_table" width="100%" cellspacing="0" cellpadding="0" class="styled_table">
<tr>
<th scope="col">Actions</th>
<th scope="col">Reporter</th>
<th scope="col">Where</th>
<th scope="col">Target</th>
<th scope="col">Descripton</th>
</tr>
<?
$i = 0;
for my $bugkey (@bugs) {
my $bug = $EQW->GetBugDetails($bugkey);
if(!$bug) {
next;
}
if($i % 2 == 1) {
print "<tr class=\"odd\">";
} else {
print "<tr>";
}
my $bug_val = $bug->{bug};
$bug_val =~ s/\r//g;
$bug_val =~ s/\n/<br>/g;
print "<td><a href='javascript:void(0)' onclick='ResolveBug(\"$bug->{id}\")'>Resolve</a></td>";
print "<td>$bug->{name}</td>";
print "<td>$bug->{zone}: ($bug->{x}, $bug->{y}, $bug->{z})</td>";
print "<td>$bug->{target}</td>";
print "<td style=\"text-align:left;\">$bug_val</td>";
print "</tr>";
$i++;
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,141 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
var offset = 0;
function StatusTic() {
$.getJSON("data/bug_data.html?offset="+offset+"&idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById("open_bugs_count");
var cur_offset = offset / 50;
var sep = (data.total_bug_count / 50);
var app = "";
for(var i = 0; i < sep; ++i) {
var cur = 50 * i;
var name = i + 1;
if(i == cur_offset) {
app += "<b>"+name+"</b> ";
}
else {
app += "<a href='javascript:void(0)' onclick='OpenBugs(\""+cur+"\")'>"+name+"</a> ";
}
}
elm.innerHTML = app;
$("#bug_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Reporter</th>";
app_html += "<th scope=\"col\">Where</th>";
app_html += "<th scope=\"col\">Target</th>";
app_html += "<th scope=\"col\">Descripton</th>";
app_html += "</tr>";
$("#bug_table").append(app_html);
for(var i = 0; i < data.bug_count; i++) {
app_html = "";
var mod = i % 2;
if(mod == 1) {
app_html += "<tr class=\"odd\">";
} else {
app_html += "<tr>";
}
var bug_text = data.bugs[i].bug;
bug_text = bug_text.replace("\r", "");
bug_text = bug_text.replace("\n", "</br>");
app_html += "<td>"+data.bugs[i].name+"</td>";
app_html += "<td>"+data.bugs[i].zone+": ("+data.bugs[i].x+", "+data.bugs[i].y+", "+data.bugs[i].z+")</td>";
app_html += "<td>"+data.bugs[i].target+"</td>";
app_html += "<td style=\"text-align:left;\">"+bug_text+"</td>";
app_html += "</tr>";
$("#bug_table").append(app_html);
}
});
}
function OpenBugs(off) {
offset = off;
StatusTic();
}
$(document).ready(function() {
setInterval("StatusTic()", 6000);
});
-->
</script>
</head>
<?
@bugs = $EQW->ListBugs(0);
$bug_count = $EQW->CountBugs();
?>
<body>
<div class="container">
<?do("templates/scripts/menu_noaccess.pl");?>
<div id="main_content" class="main">
<div align="center"><h2>Bugs</h2></div>
<div id="open_bugs_count" align="center">
<?
$cur_offset = 0;
my $sep = ($bug_count / 50);
for(my $i = 0; $i < $sep; ++$i) {
my $cur = 50 * $i;
my $name = $i + 1;
if($i == $cur_offset) {
print "<b>$name</b> ";
}
else {
print "<a href='javascript:void(0)' onclick='OpenBugs(\"$cur\")'>$name</a> ";
}
}
?>
</div>
<table id="bug_table" width="100%" cellspacing="0" cellpadding="0" class="styled_table">
<tr>
<th scope="col">Reporter</th>
<th scope="col">Where</th>
<th scope="col">Target</th>
<th scope="col">Descripton</th>
</tr>
<?
$i = 0;
for my $bugkey (@bugs) {
my $bug = $EQW->GetBugDetails($bugkey);
if(!$bug) {
next;
}
if($i % 2 == 1) {
print "<tr class=\"odd\">";
} else {
print "<tr>";
}
my $bug_val = $bug->{bug};
$bug_val =~ s/\r//g;
$bug_val =~ s/\n/<br>/g;
print "<td>$bug->{name}</td>";
print "<td>$bug->{zone}: ($bug->{x}, $bug->{y}, $bug->{z})</td>";
print "<td>$bug->{target}</td>";
print "<td style=\"text-align:left;\">$bug_val</td>";
print "</tr>";
$i++;
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,138 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var hidden_text = true;
var timeout = null;
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/console_data.html?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById("console_output");
var message = "";
var cout = $('#console_output');
for(var i = 0; i < data.message_count; i++) {
message += data.messages[i].message;
message += "\n";
}
var cur_value = elm.value;
if(cur_value != message) {
elm.value = message;
cout.scrollTop(99999);
}
});
}
function ConsoleKey(event) {
if(hidden_text == true) {
return;
}
var keycode = ('which' in event) ? event.which : event.keyCode;
if(keycode == 13) {
var cinp = document.getElementById("console_input");
var cinp_value = cinp.value;
cinp_value = cinp_value.replace(/"/g, "\\\"");
cinp.disabled = true;
HideError();
timeout = setTimeout("CommandTimeout()", 10000);
$.getJSON("actions/console_action.html?action=input&text="+cinp_value+"&idx="+GetStatusIdx(),
function(data) {
cinp.value = "";
cinp.disabled = false;
clearInterval(timeout);
if(data.status == 0) {
ShowError(data.message);
}
StatusTic();
});
}
}
function BodyKey(event) {
var keycode = ('which' in event) ? event.which : event.keyCode;
if (keycode == 27 && hidden_text == false) {
HideInput();
} else if(hidden_text == false) {
return;
}
if(keycode == 13) {
ShowInput();
}
}
function ShowInput() {
hidden_text = false;
document.getElementById("console_input").value="";
$("#console_input").fadeIn("slow");
document.getElementById('console_input').focus();
}
function HideInput() {
hidden_text = true;
document.getElementById("console_input").value="";
$("#console_input").fadeOut("slow");
HideError();
}
function ShowError(msg) {
$("#console_error").html("Error: " + msg);
$("#console_error").show();
$("#console_error").css("display", "block");
}
function HideError() {
$("#console_error").html("");
$("#console_error").hide();
}
function CommandTimeout() {
var cinp = document.getElementById("console_input");
cinp.disabled = false;
alert("Timed out sending command to server.");
}
$(document).ready(function() {
StatusTic();
setInterval("StatusTic()", 5000);
var elm = document.getElementById("console_output");
elm.value = "";
elm = document.getElementById("console_input");
elm.value = "";
elm.disabled = false;
$('#console_output').scrollTop(99999);
});
-->
</script>
</head>
<body onkeyup="BodyKey(event)">
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<div align="center">
<textarea id="console_output" class="console_out" cols="110" rows="40" readonly style="resize:none;"></textarea>
<span id="console_error" class="error" style="display: none;"></span>
<input id="console_input" class="console_in" type="text" style="display: none; width: 67.6em;" onkeyup="ConsoleKey(event)">
</div>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,44 +0,0 @@
<?
$offset = $request->get("offset", "0");
my @bugs = $EQW->ListBugs($offset);
my $bug_count = @bugs;
my $total_bug_count = $EQW->CountBugs();
print "{";
print "\"total_bug_count\" : $total_bug_count,";
print "\"bug_count\" : $bug_count,";
print "\"bugs\" : ";
print "[";
my $i = 0;
for my $bugkey (@bugs) {
my $bug = $EQW->GetBugDetails($bugkey);
my $bug_val = $bug->{bug};
$bug_val =~ s/\\/\\\\/g;
$bug_val =~ s/\//\\\//g;
$bug_val =~ s/\"/\\\"/g;
$bug_val =~ s/\n/<br>/g;
$bug_val =~ s/\r/\\r/g;
$bug_val =~ s/\t/\\t/g;
$bug_val =~ s/\x08/\\f/g;
$bug_val =~ s/\x0C/\\b/g;
$bug_val =~ s/[\x00-\x1F]/\./g;
$bug_val =~ s/[\x7F-\xFF]/\./g;
print "{";
print "\"id\" : \"$bug->{id}\",";
print "\"name\" : \"$bug->{name}\",";
print "\"zone\" : \"$bug->{zone}\",";
print "\"target\" : \"$bug->{target}\",";
print "\"bug\" : \"$bug_val\",";
print "\"x\" : \"$bug->{x}\",";
print "\"y\" : \"$bug->{y}\",";
print "\"z\" : \"$bug->{z}\"";
print "}";
if($i != $bug_count - 1) {
print ",";
}
$i++;
}
print "]";
print "}";
?>

View File

@ -1,31 +0,0 @@
<?
my $message_count = $EQW->CountConsoleMessages();
print "{";
print "\"message_count\" : $message_count,";
print "\"messages\" : ";
print "[";
for(my $i = 0; $i < $message_count; $i++)
{
print "{";
my $msg = $EQW->GetConsoleMessage($i);
$message = $msg->{message};
$message =~ s/\\/\\\\/g;
$message =~ s/\//\\\//g;
$message =~ s/\"/\\\"/g;
$message =~ s/\n/\\n/g;
$message =~ s/\r/\\r/g;
$message =~ s/\t/\\t/g;
$message =~ s/\x08/\\f/g;
$message =~ s/\x0C/\\b/g;
$message =~ s/[\x00-\x1F]/\./g;
$message =~ s/[\x7F-\xFF]/\./g;
print "\"message\" : \"$message\"";
print "}";
if($i != $message_count - 1) {
print ",";
}
}
print "]";
print "}";
?>

View File

@ -1,6 +0,0 @@
<?
my $launcher_count = $EQW->CountLaunchers(1);
print "{";
print "\"launcher_count\" : " . $launcher_count;
print "}";
?>

View File

@ -1,69 +0,0 @@
<?
$launcher_name = $request->get("launcher", "none");
if($launcher_name eq "none") {
@launchers = sort $EQW->ListLaunchers();
my $launcher_count = @launchers;
print "{";
print "\"launcher_count\" : $launcher_count,";
print "\"launchers\" : ";
print "[";
my $i = 0;
for my $lk (@launchers) {
my $l = $EQW->GetLauncher($lk);
print "{";
print "\"name\" : \"". $l->GetName() ."\",";
print "\"static_count\" : ". $l->GetStaticCount() .",";
print "\"dynamic_count\" : ". $l->GetDynamicCount() .",";
$conn = 0;
if($l->IsConnected()) {
$conn = 1;
}
print "\"connected\" : ". $conn;
print "}";
if($i != $launcher_count - 1) {
print ",";
}
$i++;
}
print "]";
print "}";
} else {
my $l = $EQW->GetLauncher($lname);
print "{";
print "\"name\" : \"". $l->GetName() ."\",";
print "\"static_count\" : ". $l->GetStaticCount() .",";
print "\"dynamic_count\" : ". $l->GetDynamicCount() .",";
$conn = 0;
if($l->IsConnected()) {
$conn = 1;
}
print "\"connected\" : ". $conn . ",";
my @zones = $l->ListZones();
my $zone_count = @zones;
print "\"zone_count\" : ". $zone_count . ",";
print "\"zones\" : ";
print "[";
my $i = 0;
for my $zone (@zones) {
my $z = $config->GetZoneDetails($zone);
print "{";
print "\"name\" : \"$z->{name}\",";
print "\"up\" : $z->{up},";
print "\"starts\" : $z->{starts},";
print "\"port\" : $z->{port}";
print "}";
if($i != $zone_count - 1) {
print ", ";
}
$i++;
}
print "]";
print "}";
}
?>

View File

@ -1,6 +0,0 @@
<?
my $player_count = $EQW->CountPlayers();
print "{";
print "\"player_count\" : " . $player_count;
print "}";
?>

View File

@ -1,42 +0,0 @@
<?
$zone = $request->get("zone", "");
$instance_id = $request->get("instance_id", "0");
my @players = $EQW->ListPlayers($zone, $instance_id);
my $player_count = @players;
print "{";
print "\"player_count\" : $player_count,";
print "\"players\" : ";
print "[";
my $i = 0;
for my $player (@players) {
my $pd = $EQW->GetPlayerDetails($player);
print "{";
print "\"character\" : \"$pd->{character}\",";
print "\"account\" : \"$pd->{account}\",";
print "\"account_id\" : \"$pd->{account_id}\",";
print "\"location_short\" : \"$pd->{location_short}\",";
print "\"location_long\" : \"$pd->{location_long}\",";
print "\"ip\" : \"$pd->{ip}\",";
print "\"level\" : \"$pd->{level}\",";
print "\"race\" : \"$pd->{race}\",";
print "\"race_id\" : \"$pd->{race_id}\",";
print "\"class\" : \"$pd->{class}\",";
print "\"class_id\" : \"$pd->{class_id}\",";
print "\"guild_id\" : \"$pd->{guild_id}\",";
print "\"guild\" : \"$pd->{guild}\",";
print "\"status\" : \"$pd->{status}\",";
print "\"client_version\" : \"$pd->{client_version}\"";
print "}";
if($i != $player_count - 1) {
print ",";
}
$i++;
}
print "]";
print "}";
?>

View File

@ -1,14 +0,0 @@
<?
print "{";
if($EQW->LSConnected()) {
print "\"connected\" : \"1\",";
} else {
print "\"connected\" : \"0\",";
}
if($EQW->GetConfig("Locked") eq "true") {
print "\"locked\" : \"1\"";
} else {
print "\"locked\" : \"0\"";
}
print "}";
?>

View File

@ -1,6 +0,0 @@
<?
my $zone_count = $EQW->CountZones();
print "{";
print "\"zone_count\" : " . $zone_count;
print "}";
?>

View File

@ -1,33 +0,0 @@
<?
@zones = $EQW->ListBootedZones();
@zones = sort @zones;
$zone_count = @zones;
print "{";
print "\"zone_count\" : $zone_count,";
print "\"zones\" : ";
print "[";
for(my $i = 0; $i < $zone_count; $i++) {
my $zone = $EQW->GetZoneDetails($zones[$i]);
print "{";
print "\"type\" : \"$zone->{type}\",";
print "\"zone_id\" : $zone->{zone_id},";
print "\"launch_name\" : \"$zone->{launch_name}\",";
print "\"short_name\" : \"$zone->{short_name}\",";
print "\"long_name\" : \"$zone->{long_name}\",";
print "\"port\" : $zone->{port},";
print "\"player_count\" : $zone->{player_count},";
print "\"instance_id\" : $zone->{instance_id}";
print "}";
if($i != $zone_count - 1) {
print ",";
}
}
print "]";
print "}";
?>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 665 B

View File

@ -1,191 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var locked = 0;
var connected = 0;
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/player_count.html"+"?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('pcount');
elm.innerHTML = data.player_count;
});
$.getJSON("data/zone_count.html"+"?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('zcount');
elm.innerHTML = data.zone_count;
});
$.getJSON("data/launcher_count.html"+"?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('lcount');
elm.innerHTML = data.launcher_count;
});
$.getJSON("data/world_status.html"+"?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('lock_status');
if(data.locked == 1) {
elm.innerHTML = "locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Unlock World";
} else {
elm.innerHTML = "<b>NOT</b> locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Lock World";
}
elm = document.getElementById('conn_status');
if(data.connected == 1) {
elm.innerHTML = "connected";
elm = document.getElementById('restart_id');
elm.style.display = 'none';
} else {
elm.innerHTML = "<b>NOT</b> connected";
elm = document.getElementById('restart_id');
elm.style.display = 'inline';
}
locked = data.locked;
connected = data.connected;
});
}
function ToggleLock() {
var action = "lock";
if(locked == 1) {
action = "unlock";
}
$.getJSON("actions/world_action.html?action=" + action+"&idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('lock_status');
if(data.locked == 1) {
elm.innerHTML = "locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Unlock World";
} else {
elm.innerHTML = "<b>NOT</b> locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Lock World";
}
elm = document.getElementById('conn_status');
if(data.connected == 1) {
elm.innerHTML = "connected";
elm = document.getElementById('restart_id');
elm.style.display = 'none';
} else {
elm.innerHTML = "<b>NOT</b> connected";
elm = document.getElementById('restart_id');
elm.style.display = 'inline';
}
locked = data.locked;
connected = data.connected;
});
}
function Reconnect() {
$.getJSON("actions/world_action.html?action=lsreconnect"+"&idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('lock_status');
if(data.locked == 1) {
elm.innerHTML = "locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Unlock World";
} else {
elm.innerHTML = "<b>NOT</b> locked";
elm = document.getElementById('lock_link');
elm.innerHTML = "Lock World";
}
elm = document.getElementById('conn_status');
if(data.connected == 1) {
elm.innerHTML = "connected";
elm = document.getElementById('restart_id');
elm.style.display = 'none';
} else {
elm.innerHTML = "<b>NOT</b> connected";
elm = document.getElementById('restart_id');
elm.style.display = 'inline';
}
locked = data.locked;
connected = data.connected;
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
});
-->
</script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<?
my $zcount = $EQW->CountZones();
my $lcount = $EQW->CountLaunchers(1);
my $pcount = $EQW->CountPlayers();
print "<table width='38%' class='styled_table' cellpadding='0' cellspacing='0' align='center'>";
print "<tr>";
print "<th>Zones Booted<th>";
print "<th>Launchers Connected<th>";
print "<th>Players Online<th>";
print "</tr>";
print "<tr>";
print "<td><a href='zones.html' id='zcount'>$zcount</a><td>";
print "<td><a href='launchers.html' id='lcount'>$lcount</a><td>";
print "<td><a href='players.html' id='pcount'>$pcount</a><td>";
print "</tr>";
print "</table></br>";
if($EQW->LSConnected()) {
my $ls = $EQW->GetConfig("LoginHost");
my $lsp = $EQW->GetConfig("LoginPort");
$ls_str = "World is <span id='conn_status'>connected</span> to login server $ls:$lsp.</br><a style='display:none;' id='restart_id' href='javascript:void(0)' onclick='Reconnect()'>Restart Auto Reconnect</a></br>";
print "<script><!--connected = 1;--></script>";
} else {
my $ls = $EQW->GetConfig("LoginHost");
my $lsp = $EQW->GetConfig("LoginPort");
$ls_str = "World is <span id='conn_status'><b>NOT</b> connected</span> to login server $ls:$lsp. </br><a id='restart_id' href='javascript:void(0)' onclick='Reconnect()'>Restart Auto Reconnect</a></br>";
}
print "<div width='38%' align='center'>";
print "$ls_str";
print "</div></br>";
if($EQW->GetConfig("Locked") eq "true") {
$locked_str = "World is <span id='lock_status'>locked</span>. <a href='javascript:void(0)' id='lock_link' onclick='ToggleLock()'>Unlock World</a>.<br>";
print "<script><!--locked = 1;--></script>";
} else {
$locked_str = "World is <span id='lock_status'><b>NOT</b> locked</span>. <a href='javascript:void(0)' id='lock_link' onclick='ToggleLock()'>Lock World</a>.<br>";
}
print "<div width='38%' align='center'>";
print "$locked_str";
print "</div>";
?>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,317 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<?
$lname = $request->get("name", "ERROR");
?>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/launcher_data.html?launcher="+<?print "\"$lname\"";?>+"&idx="+GetStatusIdx(),
function(data) {
$("#launcher_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Zone Name</th>";
app_html += "<th scope=\"col\">State</th>";
app_html += "<th scope=\"col\">Port</th>";
app_html += "<th scope=\"col\">Start Count</th>";
app_html += "<th scope=\"col\">Actions</th>";
app_html += "</tr>";
$("#launcher_table").append(app_html);
for(var i = 0; i < data.zone_count; i++) {
app_html = "<tr>";
app_html += "<td><a href='zone.html?zone="+data.zones[i].name+"'>"+data.zones[i].name+"</a></td>";
if(data.zones[i].up) {
app_html += "<td><font color='#009900'><b>UP</b></font></td>";
} else {
app_html += "<td><font color='#CC0000'><b>DOWN</b></font></td>";
}
if(data.zones[i].port == 0) {
app_html += "<td>Dynamic</td>";
} else {
app_html += "<td>"+data.zones[i].port+"</td>";
}
app_html += "<td>"+data.zones[i].starts+"</td>";
app_html += "<td>";
if(data.connected) {
app_html += "<a href='javascript:void(0)' onclick='RestartZone(\""+data.zones[i].name+"\")'>Restart</a> - ";
if(data.zones[i].up) {
app_html += "<a href='javascript:void(0)' onclick='StopZone(\""+data.zones[i].name+"\")'>Stop</a>";
} else {
app_html += "<a href='javascript:void(0)' onclick='StartZone(\""+data.zones[i].name+"\")'>Start</a>";
}
if(!data.zones[i].name.match(/dynamic/)) {
app_html += " - ";
}
}
if(!data.zones[i].name.match(/dynamic/)) {
app_html += "<a href='javascript:void(0)' onclick='RemoveZone(\""+data.zones[i].name+"\")'>Remove</a>";
}
app_html += "</td>";
app_html += "</tr>";
$("#launcher_table").append(app_html);
}
});
}
function ShowAddLauncher() {
$("#add_launcher_link").hide();
$("#min_add_launcher_link").show();
$("#add_launcher_table").fadeIn("slow");
}
function HideAddLauncher() {
$("#add_launcher_link").show();
$("#min_add_launcher_link").hide();
$("#add_launcher_table").fadeOut("slow");
}
function BootZone() {
var elm = document.getElementById("short_name_field");
var bzone = elm.value;
elm.value = "";
elm = document.getElementById("port_field");
var bport = elm.value;
elm.value = "0";
elm = document.getElementById("boot_button_img");
elm.style.display = "inline";
elm = document.getElementById("boot_button");
elm.className = "styled_button_disabled";
$('#boot_button').unbind('click');
$.getJSON("actions/launcher_action.html?action=boot&launcher_name="+<?print "\"$lname\"";?>+"&zone="+bzone+"&port="+bport+"&idx="+GetStatusIdx(),
function(data) {
$('#boot_button').bind('click', BootZone);
elm = document.getElementById("boot_button");
elm.className = "styled_button";
elm = document.getElementById("boot_button_img");
elm.style.display = "none";
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function ChangeDynamicCount() {
var elm = document.getElementById("dynamic_count_field");
var dcount = elm.value;
elm = document.getElementById("dynamic_count_button_img");
elm.style.display = "inline";
elm = document.getElementById("dynamic_count_button");
elm.className = "styled_button_disabled";
$('#dynamic_count_button').unbind('click');
$.getJSON("actions/launcher_action.html?action=change_dynamic_count&launcher_name="+<?print "\"$lname\"";?>+"&dynamic_count="+dcount+"&idx="+GetStatusIdx(),
function(data) {
$('#dynamic_count_button').bind('click', ChangeDynamicCount);
elm = document.getElementById("dynamic_count_button");
elm.className = "styled_button";
elm = document.getElementById("dynamic_count_button_img");
elm.style.display = "none";
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function RemoveZone(zone_name) {
$.getJSON("actions/launcher_action.html?action=remove_zone&launcher_name="+<?print "\"$lname\"";?>+"&zone="+zone_name+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function RebootAll() {
$.getJSON("actions/launcher_action.html?action=reboot_all&launcher_name="+<?print "\"$lname\"";?>+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function StopAll() {
$.getJSON("actions/launcher_action.html?action=stop_all&launcher_name="+<?print "\"$lname\"";?>+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function StartAll() {
$.getJSON("actions/launcher_action.html?action=start_all&launcher_name="+<?print "\"$lname\"";?>+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function RestartZone(zone) {
$.getJSON("actions/launcher_action.html?action=restart_zone&launcher_name="+<?print "\"$lname\"";?>+"&zone="+zone+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function StartZone(zone) {
$.getJSON("actions/launcher_action.html?action=start_zone&launcher_name="+<?print "\"$lname\"";?>+"&zone="+zone+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function StopZone(zone) {
$.getJSON("actions/launcher_action.html?action=stop_zone&launcher_name="+<?print "\"$lname\"";?>+"&zone="+zone+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
$('#boot_button').bind('click', BootZone);
$('#dynamic_count_button').bind('click', ChangeDynamicCount);
});
-->
</script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<?
$config = $EQW->GetLauncher($lname);
if(!$config) {
print "<h2>Unable to find launcher $lname</h2>";
}
?>
<div align="center">
<a href="#" onclick='RebootAll()'>Reboot All Zones</a> -
<a href="#" onclick='StopAll()'>Stop All Zones</a> -
<a href="#" onclick='StartAll()'>Start All Zones</a>
</div>
</br>
<div align="center">
<a id='add_launcher_link' href="#" onclick='ShowAddLauncher()'>Add Zone</a>
<a id='min_add_launcher_link' href="#" style="display: none;" onclick='HideAddLauncher()'>Minimize</a>
</div>
<table id='add_launcher_table' class='styled_table' width="70%" cellspacing="0" cellpadding="0" style="display: none">
<tr>
<td style="text-align: left">
Add:
Zone Short Name: <input type='text' id='short_name_field'>
Port: <input type='text' id='port_field' value='0' size='5'>
<button id="boot_button" class="styled_button"><img id="boot_button_img" src="images/loading.gif" height="16" width="16" style='display: none;'>Boot</button>
</td>
</tr>
<tr>
<td style="text-align: left">
Change Dynamic Count: <input type='text' id='dynamic_count_field' value='<? print $config->GetDynamicCount(); ?>' size='5'>
<button id="dynamic_count_button" class="styled_button"><img id="dynamic_count_button_img" src="images/loading.gif" height="16" width="16" style='display: none;'>Change</button>
</td>
</tr>
</table>
<table id='launcher_table' class='styled_table' width="70%" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">Zone Name</th>
<th scope="col">State</th>
<th scope="col">Port</th>
<th scope="col">Start Count</th>
<th scope="col">Actions</th>
</tr>
<?
my @zones = $config->ListZones();
for my $zone (sort @zones) {
my $z = $config->GetZoneDetails($zone);
if(!$z) {
$zone->{name} = "ERROR: no launcher";
} elsif($z->{error}) {
$zone->{name} = "ERROR: $z->{error}";
}
print "<tr>\n";
print "\t<td><a href='zone.html?zone=$z->{name}'>$z->{name}</a></td>";
if($z->{up}) {
print "<td><font color='#009900'><b>UP</b></font></td>";
} else {
print "<td><font color='#CC0000'><b>DOWN</b></font></td>";
}
if($z->{port} == 0) {
print "<td>Dynamic</td>";
} else {
print "<td>$z->{port}</td>";
}
print "<td>$z->{starts}</td>";
print "<td>";
if($config->IsConnected()) {
print "<a href='javascript:void(0)' onclick='RestartZone(\"$z->{name}\")'>Restart</a> - ";
if($z->{up}) {
print "<a href='javascript:void(0)' onclick='StopZone(\"$z->{name}\")'>Stop</a>";
} else {
print "<a href='javascript:void(0)' onclick='StartZone(\"$z->{name}\")'>Start</a>";
}
if($z->{name} !~ /dynamic/) {
print " - ";
}
}
if($z->{name} !~ /dynamic/) {
print "<a href='javascript:void(0)' onclick='RemoveZone(\"$z->{name}\")'>Remove</a>";
}
print "</td>\n";
print "</tr>\n";
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,166 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/launcher_data.html?idx="+GetStatusIdx(),
function(data) {
$("#launcher_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Launcher Name </th>";
app_html += "<th scope=\"col\">Zone Count</th>";
app_html += "<th scope=\"col\">Actions</th>";
app_html += "</tr>";
$("#launcher_table").append(app_html);
var i = 0;
for(var i = 0; i < data.launcher_count; i++) {
app_html = "<tr>";
if(data.launchers[i].connected) {
app_html += "<td><a href='launcher.html?name=" + data.launchers[i].name + "'>" + data.launchers[i].name + "</a></td>";
} else {
app_html += "<td><a href='launcher.html?name="+ data.launchers[i].name +"'>"+ data.launchers[i].name +"</a><br><b>Not Connected</b></td>";
}
app_html += "<td>"+ data.launchers[i].static_count +"s, "+ data.launchers[i].dynamic_count +"d</td>";
app_html += "<td>";
app_html += "<a href='launcher.html?name="+ data.launchers[i].name +"'>Details</a> - ";
app_html += "<a href='javascript:void(0)' onclick='RemoveLauncher(\"" + data.launchers[i].name + "\")'>Remove</a>";
app_html += "</td>\n";
app_html += "</tr>\n";
$("#launcher_table").append(app_html);
}
});
}
function RemoveLauncher(name) {
$.getJSON("actions/launcher_action.html?action=remove&launcher_name="+name+"&idx="+GetStatusIdx(),
function(data) {
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function AddLauncher() {
var elm = document.getElementById("al_add_button_img");
elm.style.display = "inline";
elm = document.getElementById("al_add_button");
elm.className = "styled_button_disabled";
$('#al_add_button').unbind('click');
elm = document.getElementById("al_name");
var launcher_name = elm.value;
elm.value = "";
elm = document.getElementById("al_count");
var dynamic_count = elm.value;
elm.value = "";
$.getJSON("actions/launcher_action.html?action=add&launcher_name="+launcher_name+"&dynamic_count="+dynamic_count+"&idx="+GetStatusIdx(),
function(data) {
$('#al_add_button').bind('click', AddLauncher);
elm = document.getElementById("al_add_button");
elm.className = "styled_button";
elm = document.getElementById("al_add_button_img");
elm.style.display = "none";
if(data.status == 0) {
alert(data.message);
} else {
StatusTic();
}
});
}
function ShowAddLauncher() {
$("#add_launcher_link").hide();
$("#min_add_launcher_link").show();
$("#add_launcher_table").fadeIn("slow");
}
function HideAddLauncher() {
$("#add_launcher_link").show();
$("#min_add_launcher_link").hide();
$("#add_launcher_table").fadeOut("slow");
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
$('#al_add_button').bind('click', AddLauncher);
});
-->
</script>
</head>
<?
@list = sort $EQW->ListLaunchers();
?>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<h2 align="center">Launchers</h2>
<table id='launcher_table' class='styled_table' width="70%" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">Launcher Name </th>
<th scope="col">Zone Count</th>
<th scope="col">Actions</th>
</tr>
<?
for my $lk (sort @list) {
my $l = $EQW->GetLauncher($lk);
if(!$l) {
next;
}
print "<tr>\n";
if($l->IsConnected()) {
print "\t<td><a href='launcher.html?name=".$l->GetName()."'>".$l->GetName()."</a></td>";
} else {
print "<td><a href='launcher.html?name=".$l->GetName()."'>".$l->GetName()."</a><br><b>Not Connected</b></td>";
}
print "<td>".$l->GetStaticCount()."s, ".$l->GetDynamicCount()."d</td>";
print "<td>";
print "<a href='launcher.html?name=".$l->GetName()."'>Details</a> - ";
print "<a href='javascript:void(0)' onclick='RemoveLauncher(\"" . $l->GetName() . "\")'>Remove</a>";
print "</td>\n";
print "</tr>\n";
}
?>
</table>
</br>
<div align="center">
<span id="add_launcher_link"><a href='javascript:void(0)' onclick='ShowAddLauncher()'>Add Launcher</a></span>
<span id="min_add_launcher_link" style="display:none;"><a href='javascript:void(0)' onclick='HideAddLauncher()'>Minimize</a></span>
</div>
<table id="add_launcher_table" class='styled_table' width="40%" cellspacing="0" cellpadding="0" style="display:none;">
<tr>
<td>
<h2>Add Launcher:</h2>
Name: <input type='text' name='name' id='al_name'>
Dynamic Count: <input type='text' name='dynamics' size="3" id='al_count'>
<button id='al_add_button' class='styled_button'><img id="al_add_button_img" src="images/loading.gif" height="16" width="16" style='display: none;'>Add</button>
</td>
</tr>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,43 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<h2 align="center">Petition Management</h2>
<?
$q = "SELECT accountname, charname, petitiontext, FROM_UNIXTIME(senttime, '%Y-%m-%d %h:%m %p') AS senttime FROM petitions";
my $res = $EQDB->query($q);
if ($res) {
print "<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\" class=\"styled_table\">\n";
print "\t<tr>\n";
print "\t\t<th width=1 nowrap>Account</th>\n";
print "\t\t<th width=1 nowrap>Character</th>\n";
print "\t\t<th>Text</th>\n";
print "\t\t<th width=1 nowrap>Date/Time</th>\n";
print "\t</tr>\n";
while (my $row=$res->fetch_row_hash) {
print "\t<tr>\n";
print "\t\t<td><a href=\"account.html?name=$row->{accountname}\">$row->{accountname}</a></td>\n";
print "\t\t<td>$row->{charname}</td>\n";
print "\t\t<td align=\"left\">$row->{petitiontext}</td>\n";
print "\t\t<td>$row->{senttime}</td>\n";
print "\t</tr>\n";
}
print "</table>\n";
} else {
print "No petitions"
}
?>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,142 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?
$zone = $request->get("zone", "");
$instance_id = $request->get("instance_id", "0");
@chars = $EQW->ListPlayers($zone, $instance_id);
#(
# { character => "Joe", account => "yay", location_short => "arena", location_long => "Arena" },
# { character => "Bob", account => "yay", location_short => "freportw", location_long => "West Freeport" },
# { character => "Monkey", account => "notyay", location_short => "freportn", location_long => "North Freeport" }
# );
?>
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var zone = <?print "\"$zone\"";?>;
var instance_id = <?print "\"$instance_id\"";?>;
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/player_data.html?zone="+zone+"&instance_id="+instance_id+"&idx="+GetStatusIdx(),
function(data) {
$("#player_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Character</th>";
app_html += "<th scope=\"col\">Account Name</th>";
app_html += "<th scope=\"col\">Location</th>";
app_html += "</tr>";
var elm = document.getElementById("player_count");
elm.innerHTML = data.player_count;
$("#player_table").append(app_html);
for(var i = 0; i < data.player_count; i++) {
app_html = "<tr>";
app_html += "<tr id=\"row_$char->{character}\">";
if(data.players[i].character == "") {
app_html += "<td>Not Selected</td>";
} else {
app_html += "<td>"+data.players[i].character;
if(data.players[i].guild_id > 0) {
app_html += " &lt;<a href='guild.html?id="+data.players[i].guild_id+"'>"+data.players[i].guild+"</a>&gt;";
}
app_html += "<br>";
app_html += data.players[i].level + " " + data.players[i].race + " " + data.players[i].class;
app_html += "</td>";
}
app_html += "<td><a href='account.html?name="+data.players[i].account+"'>"+data.players[i].account+"</a>";
if(data.players[i].status > 0) {
app_html += " (status "+data.players[i].status+")";
}
app_html += "<br>";
app_html += " "+data.players[i].ip+"</td>";
app_html += "<td>"+data.players[i].location_long+" ("+data.players[i].location_short+")</td>";
app_html += "</tr>";
$("#player_table").append(app_html);
}
});
}
function Kick(char_name) {
$.getJSON("actions/kick_players.html?player=" + char_name+"&idx="+GetStatusIdx(),
function(data) {
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
});
-->
</script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<h2 align="center">Online Player List</h2>
<div align="center">
<?
if($zone eq "") {
print "There are <span id=\"player_count\">".($#chars+1)."</span> players logged in.";
} else {
print "There are <span id=\"player_count\">".($#chars+1)."</span> players in $zone.";
}
?>
</div>
</br>
<table id="player_table" width="70%" cellspacing="0" cellpadding="0" class="styled_table">
<tr>
<th scope="col">Character</th>
<th scope="col">Account Name</th>
<th scope="col">Location</th>
</tr>
<?
foreach my $charname (@chars) {
my $char = $EQW->GetPlayerDetails($charname);
if(!$char) {
$char->{character} = "ERROR: no char";
} elsif($char->{error}) {
$char->{character} = "ERROR: ".$char->{error};
}
print "<tr id=\"row_$char->{character}\">";
if($char->{character} eq "") {
print "<td>Not Selected</td>";
} else {
print "<td>$char->{character}";
if(defined($char->{guild_id}) && $char->{guild_id} > 0) {
print " &lt;<a href='guild.html?id=$char->{guild_id}'>$char->{guild}</a>&gt;";
}
print "<br>";
print "$char->{level} $char->{race} $char->{class}";
print "</td>";
}
print "<td><a href='account.html?name=$char->{account}'>$char->{account}</a>";
if($char->{status} > 0) {
print " (status $char->{status})";
}
print "<br>";
print " $char->{ip}</td>";
print "<td>$char->{location_long} ($char->{location_short})</td>";
print "</tr>";
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,121 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<?
$zone = $request->get("zone", "");
$instance_id = $request->get("instance_id", "0");
@chars = $EQW->ListPlayers($zone, $instance_id);
#(
# { character => "Joe", account => "yay", location_short => "arena", location_long => "Arena" },
# { character => "Bob", account => "yay", location_short => "freportw", location_long => "West Freeport" },
# { character => "Monkey", account => "notyay", location_short => "freportn", location_long => "North Freeport" }
# );
?>
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var zone = <?print "\"$zone\"";?>;
var instance_id = <?print "\"$instance_id\"";?>;
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/player_data.html?zone="+zone+"&instance_id="+instance_id+"&idx="+GetStatusIdx(),
function(data) {
$("#player_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Character</th>";
app_html += "<th scope=\"col\">Location</th>";
app_html += "</tr>";
var elm = document.getElementById("player_count");
elm.innerHTML = data.player_count;
$("#player_table").append(app_html);
for(var i = 0; i < data.player_count; i++) {
app_html = "<tr>";
app_html += "<tr id=\"row_$char->{character}\">";
if(data.players[i].character == "") {
app_html += "<td>Not Selected</td>";
} else {
app_html += "<td>"+data.players[i].character;
if(data.players[i].guild_id > 0) {
app_html += " &lt;"+data.players[i].guild+"&gt;";
}
app_html += "<br>";
app_html += data.players[i].level + " " + data.players[i].race + " " + data.players[i].class;
app_html += "</td>";
}
app_html += "<td>"+data.players[i].location_long+" ("+data.players[i].location_short+")</td>";
app_html += "</tr>";
$("#player_table").append(app_html);
}
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
});
-->
</script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu_noaccess.pl");?>
<div id="main_content" class="main">
<h2 align="center">Online Player List</h2>
<div align="center">
<?
if($zone eq "") {
print "There are <span id=\"player_count\">".($#chars+1)."</span> players logged in.";
} else {
print "There are <span id=\"player_count\">".($#chars+1)."</span> players in $zone.";
}
?>
</div>
</br>
<table id="player_table" width="70%" cellspacing="0" cellpadding="0" class="styled_table">
<tr>
<th scope="col">Character</th>
<th scope="col">Location</th>
</tr>
<?
foreach my $charname (@chars) {
my $char = $EQW->GetPlayerDetails($charname);
if(!$char) {
$char->{character} = "ERROR: no char";
} elsif($char->{error}) {
$char->{character} = "ERROR: ".$char->{error};
}
print "<tr id=\"row_$char->{character}\">";
if($char->{character} eq "") {
print "<td>Not Selected</td>";
} else {
print "<td>$char->{character}";
if(defined($char->{guild_id}) && $char->{guild_id} > 0) {
print " &lt;$char->{guild}&gt;";
}
print "<br>";
print "$char->{level} $char->{race} $char->{class}";
print "</td>";
}
print "<td>$char->{location_long} ($char->{location_short})</td>";
print "</tr>";
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,18 +0,0 @@
print(" <div class=\"nav\">");
print(" <ul class=\"navmenu\">");
print(" <li>");
print(" <a href='index.html'>World</a>");
print(" <ul>");
print(" <li><a href='launchers.html'>Launchers</a></li>");
print(" <li><a href='players.html'>Players</a></li>");
print(" <li><a href='zones.html'>Zones</a></li>");
print(" </ul>");
print(" </li>");
print(" <li>");
print(" <a href='console.html'>Console</a>");
print(" </li>");
print(" <li>");
print(" <a href='bugs.html'>Bugs</a>");
print(" </li>");
print(" </ul>");
print(" </div>");

View File

@ -1,13 +0,0 @@
print(" <div class=\"nav\">");
print(" <ul class=\"navmenu\">");
print(" <li>");
print(" <a href='zoneview.html'>Zones</a>");
print(" </li>");
print(" <li>");
print(" <a href='playerview.html'>Players</a>");
print(" </li>");
print(" <li>");
print(" <a href='bugview.html'>Bugs</a>");
print(" </li>");
print(" </ul>");
print(" </div>");

View File

@ -1,268 +0,0 @@
body, html {
background-color: rgba(206, 227, 248, 1.0);
font-size:12px;
font-family: Arial, sans-serif;
padding: 0;
margin: 0;
}
div.container {
width: 90%;
min-width: 800px;
min-height: 900px;
display: block;
background-color: #FFFFFF;
margin-left: auto;
margin-right: auto;
margin-top: 0;
border-radius: 0px 0px 15px 15px;
box-shadow: 0px 0px 20px rgba(0,0,0,0.18);
border-left: 1px solid rgba(95, 153, 207, 1.0);
border-bottom: 1px solid rgba(95, 153, 207, 1.0);
border-right: 1px solid rgba(95, 153, 207, 1.0);
}
div.header {
text-align: center;
font-size: 20px;
}
div.nav {
height: 2.25em;
background-color: rgba(80, 80, 80, 1.0);
background: -moz-linear-gradient(top, rgba(120,120,120,1.0), rgba(65,65,65,1.0));
background: -webkit-gradient(linear, left top, left bottom, from(rgba(120,120,120,1.0)), to(rgba(65,65,65,1.0)));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#787878', endColorstr='#414141');
border-top: 0;
padding-left: 1.0em;
padding-right: 1.0em;
text-align: left;
color: #333;
border-top: 1px solid rgba(141, 141, 141, 1.0);
}
div.user_status {
font-size: 10px;
text-align: right;
padding: 0.5em;
padding-left: 1.0em;
background: rgba(239, 247, 255, 1.0);
display: block;
float: right;
border-radius: 0px 0px 0px 6px;
}
div.user_status a {
color: rgba(51, 102, 153, 1.0);
text-decoration: none;
font-weight: bold;
}
div.user_status a:visited {
color: rgba(51, 102, 153, 1.0);
text-decoration: none;
font-weight: bold;
}
div.user_status a:hover {
color: rgba(51, 102, 153, 1.0);
text-decoration: none;
font-weight: bold;
text-decoration: underline;
}
div.main {
display: block;
min-height: 600px;
padding: 0.5em;
}
div.footer {
height: 2em;
font-size:9px;
width: 90%;
margin-top: 0.5em;
margin-left: auto;
margin-right: auto;
text-align: right;
}
.navmenu {
margin: 0;
padding: 0;
}
.navmenu li {
list-style: none;
float: left;
}
.navmenu li a {
display: block;
padding-left: 1.0em;
padding-right: 1.0em;
padding-top: 0.5em;
padding-bottom: 0.5em;
background-color: rgba(80, 80, 80, 1.0);
background: -moz-linear-gradient(top, rgba(120,120,120,1.0), rgba(65,65,65,1.0));
background: -webkit-gradient(linear, left top, left bottom, from(rgba(120,120,120,1.0)), to(rgba(65,65,65,1.0)));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#787878', endColorstr='#414141');
color: #fff;
text-decoration: none;
font-weight: bold;
}
.navmenu ul li a {
display: block;
padding-left: 1.0em;
padding-right: 1.0em;
padding-top: 0.5em;
padding-bottom: 0.5em;
background: 0;
filter: 0;
background-color: rgba(221,221,221, 1.0);
color: #000;
text-decoration: none;
font-weight: bold;
border: 0;
}
.navmenu ul li a:hover {
color: #07B;
}
.navmenu .current a, .navmenu li:hover > a {
background: 0;
filter: 0;
background-color: rgba(221,221,221, 1.0);
color: #07B;
}
.navmenu li ul {
display: none;
border: 1px solid rgba(103, 103, 103, 1.0);
border-top: 0;
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);
}
.navmenu li:hover ul, .navmenu li.hover ul {
display: block;
position: absolute;
margin: 0;
padding: 0;
}
.navmenu li:hover li, .navmenu li.hover li {
float: none;
}
.lt_left {
text-align: left;
}
.lt_right {
text-align: right;
}
.styled_button {
padding:2px 4px 2px 4px;
margin:3px 3px 0 0;
background-color:#f5f5f5;
border:1px solid #bcbcbc;
border-top:1px solid #ccc;
border-left:1px solid #ccc;
border-radius: 4px;
color:#336699;
text-decoration:none;
line-height:130%;
cursor:pointer;
width:auto;
overflow:visible;
font-weight:bold;
box-shadow: 0 0 4px rgba(128, 128, 128, 0.2);
}
.styled_button:hover {
background-color:#dff4ff;
border:1px solid #c2e1ef;
color:#336699;
}
.styled_button:active {
background-color:#6299c5;
border:1px solid #6299c5;
color:#fff;
}
.styled_button img {
margin:0 3px -3px 0 !important;
}
.styled_button_disabled {
padding:2px 4px 2px 4px;
margin:3px 3px 0 0;
background-color:#dddddd;
border:1px solid #9a9a9a;
border-top:1px solid #aaa;
border-left:1px solid #aaa;
border-radius: 4px;
color: Gray;
text-decoration:none;
line-height:130%;
cursor:default;
width:auto;
overflow:visible;
font-weight:bold;
box-shadow: 0 0 4px rgba(128, 128, 128, 0.2);
}
.styled_button_disabled img {
margin:0 3px -3px 0 !important;
}
.styled_table {
border: 1px solid #000;
text-align: left;
background-color: #f5f5f5;
margin-right:auto;
margin-left:auto;
box-shadow: 0 0 5px rgba(128, 128, 128, 0.4);
}
.styled_table th {
padding-left: 1.0em;
padding-right: 1.0em;
padding-top: 0.5em;
padding-bottom: 0.5em;
background-color: rgba(80, 80, 80, 1.0);
background: -moz-linear-gradient(top, rgba(120,120,120,1.0), rgba(65,65,65,1.0));
background: -webkit-gradient(linear, left top, left bottom, from(rgba(120,120,120,1.0)), to(rgba(65,65,65,1.0)));
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#787878', endColorstr='#414141');
color: #fff;
text-decoration: none;
font-weight: bold;
}
.styled_table td, .styled_table th {
padding: 4px 5px;
text-align: center;
}
.odd {
background-color: #f0f0f0;
}
.styled_table tr td img {
margin:0 3px -3px 0 !important;
}
.error {
color:red;
width: 75.5em;
text-align: left;
}
.console_out {
box-shadow: 0 0 5px rgba(128, 128, 128, 0.4);
}

View File

@ -1,18 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
</head>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,130 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/zone_data.html?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('zone_count');
elm.innerHTML = data.zone_count;
$("#zone_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Zone Name </th>";
app_html += "<th scope=\"col\">Port</th>";
app_html += "<th scope=\"col\">Instance Id</th>";
app_html += "<th scope=\"col\">Players</th>";
app_html += "<th scope=\"col\">Actions</th>";
app_html += "</tr>";
$("#zone_table").append(app_html);
var i = 0;
for(var i = 0; i < data.zone_count; i++) {
app_html = "<tr>";
if(data.zones[i].type == "dynamic") {
if(data.zones[i].zone_id == 0) {
app_html += "<td><b>"+data.zones[i].launch_name+":</b> <a href='zone.html?zone="+data.zones[i].short_name+"&instance="+data.zones[i].instance_id+"'>Idle</a></td>";
} else {
app_html += "<td><b>"+data.zones[i].launch_name+":</b> <a href='zone.html?zone="+data.zones[i].short_name+"&instance="+data.zones[i].instance_id+"'>"+data.zones[i].long_name+"("+data.zones[i].short_name+")"+"</a></td>";
}
} else {
app_html += "<td><a href='zone.html?zone=" + data.zones[i].short_name + "&instance=" + data.zones[i].instance_id + "'>" + data.zones[i].long_name + "</a> (" + data.zones[i].short_name + ")</td>";
}
app_html += "<td>" + data.zones[i].port + "</td>";
app_html += "<td>" + data.zones[i].instance_id + "</td>";
app_html += "<td><a href='players.html?zone=" + data.zones[i].short_name + "&instance=" + data.zones[i].instance_id + "'>Players</a></td>";
app_html += "<td>";
app_html += "<a href='javascript:void(0)' onclick='Kill(" + data.zones[i].short_name + ", " + data.zones[i].instance_id +")'>Kill</a>";
app_html += "</td>";
app_html += "</tr>";
$("#zone_table").append(app_html);
}
});
}
function Kill(short_name, instance_id) {
$.getJSON("actions/zone_action.html?action=kill&short_name="+short_name+"&instance_id="+instance_id+"&idx="+GetStatusIdx(),
function(data) {
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
});
-->
</script>
</head>
<?
@zones = $EQW->ListBootedZones();
# @zones = (
# { type => "dynamic", short_name => "arena", long_name => "Arena", port => 8001 },
# { type => "static", short_name => "freportw", long_name => "West Freeport", port => 8002 },
# { type => "static", short_name => "freportn", long_name => "North Freeport", port => 8003 }
# );
?>
<body>
<div class="container">
<?do("templates/scripts/menu.pl");?>
<div id="main_content" class="main">
<h2 align="center">Zone List</h2>
<?
print "You have <span id='zone_count'>".($#zones+1)."</span> zones running.";
?>
<table id='zone_table' class='styled_table' width="100%" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">Zone Name </th>
<th scope="col">Port</th>
<th scope="col">Instance Id</th>
<th scope="col">Players</th>
<th scope="col">Actions</th>
</tr>
<?
for my $zonekey (sort @zones) {
my $zone = $EQW->GetZoneDetails($zonekey);
if(!$zone) {
$zone->{long_name} = "ERROR: no zone";
} elsif($zone->{error}) {
$zone->{long_name} = "ERROR: $zone->{error}";
}
print "<tr>\n";
if($zone->{type} eq "dynamic") {
if($zone->{zone_id} == 0) {
print "\t<td><b>$zone->{launch_name}:</b> <a href='zone.html?zone=$zone->{short_name}&instance=$zone->{instance_id}'>Idle</a></td>";
} else {
print "\t<td><b>$zone->{launch_name}:</b> <a href='zone.html?zone=$zone->{short_name}&instance=$zone->{instance_id}'>$zone->{long_name}</a> ($zone->{short_name})</td>";
}
} else {
print "<td><a href='zone.html?zone=$zone->{short_name}&instance=$zone->{instance_id}'>$zone->{long_name}</a> ($zone->{short_name})</td>";
}
print "<td>$zone->{port}</td>";
print "<td>$zone->{instance_id}</td>";
print "<td><a href='players.html?zone=$zone->{short_name}&instance=$zone->{instance_id}'>Players</a></td>";
print "<td>";
print "<a href='javascript:void(0)' onclick='Kill($zone->{short_name}, $zone->{instance_id})'>Kill</a>";
print "</td>\n";
print "</tr>\n";
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>

View File

@ -1,111 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>EQEmu</title>
<link rel="stylesheet" type="text/css" href="style/style.css"/>
<script src="scripts/jquery.js"></script>
<script>
<!--
var idx = Math.floor((Math.random()*100000000));
function GetStatusIdx() {
return idx++;
}
function StatusTic() {
$.getJSON("data/zone_data.html?idx="+GetStatusIdx(),
function(data) {
var elm = document.getElementById('zone_count');
elm.innerHTML = data.zone_count;
$("#zone_table").empty();
var app_html = "<tr>";
app_html += "<th scope=\"col\">Zone Name </th>";
app_html += "<th scope=\"col\">Instance Id</th>";
app_html += "<th scope=\"col\">Players</th>";
app_html += "</tr>";
$("#zone_table").append(app_html);
var i = 0;
for(var i = 0; i < data.zone_count; i++) {
app_html = "<tr>";
if(data.zones[i].type == "dynamic") {
if(data.zones[i].zone_id == 0) {
app_html += "<td><b>"+data.zones[i].launch_name+":</b> Idle</td>";
} else {
app_html += "<td><b>"+data.zones[i].launch_name+":</b> "+data.zones[i].long_name+"("+data.zones[i].short_name+")"+"</td>";
}
} else {
app_html += "<td>" + data.zones[i].long_name + " (" + data.zones[i].short_name + ")</td>";
}
app_html += "<td>" + data.zones[i].instance_id + "</td>";
app_html += "<td><a href='playerview.html?zone=" + data.zones[i].short_name + "&instance=" + data.zones[i].instance_id + "'>Players</a></td>";
app_html += "</tr>";
$("#zone_table").append(app_html);
}
});
}
$(document).ready(function() {
setInterval("StatusTic()", 4000);
});
-->
</script>
</head>
<?
@zones = $EQW->ListBootedZones();
# @zones = (
# { type => "dynamic", short_name => "arena", long_name => "Arena", port => 8001 },
# { type => "static", short_name => "freportw", long_name => "West Freeport", port => 8002 },
# { type => "static", short_name => "freportn", long_name => "North Freeport", port => 8003 }
# );
?>
<body>
<div class="container">
<?do("templates/scripts/menu_noaccess.pl");?>
<div id="main_content" class="main">
<h2 align="center">Zone List</h2>
<?
print "You have <span id='zone_count'>".($#zones+1)."</span> zones running.";
?>
<table id='zone_table' class='styled_table' width="100%" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">Zone Name </th>
<th scope="col">Instance Id</th>
<th scope="col">Players</th>
</tr>
<?
for my $zonekey (sort @zones) {
my $zone = $EQW->GetZoneDetails($zonekey);
if(!$zone) {
$zone->{long_name} = "ERROR: no zone";
} elsif($zone->{error}) {
$zone->{long_name} = "ERROR: $zone->{error}";
}
print "<tr>\n";
if($zone->{type} eq "dynamic") {
if($zone->{zone_id} == 0) {
print "\t<td><b>$zone->{launch_name}:</b> Idle</td>";
} else {
print "\t<td><b>$zone->{launch_name}:</b> $zone->{long_name} ($zone->{short_name})</td>";
}
} else {
print "<td>$zone->{long_name} ($zone->{short_name})</td>";
}
print "<td>$zone->{instance_id}</td>";
print "<td><a href='playerview.html?zone=$zone->{short_name}&instance=$zone->{instance_id}'>Players</a></td>";
print "</tr>\n";
}
?>
</table>
</div>
</div>
<div class="footer">
&copy 2012 EQEmu. All rights reserved.
</div>
</body>
</html>