2017-03-15 19:29:34 +00:00
{ include file = "page_header.tpl" }
{ literal }
<script language="Javascript" type="text/javascript">
<!--
function CheckAll()
{
for (var i=0; i<document.qlist.elements.length; i++)
{
var e = document.qlist.elements[i];
if (e.type == 'checkbox' && e.name != 'allbox')
e.checked = document.qlist.allbox.checked;
}
}
function CheckToggle(checkname)
{
checkname.checked = !checkname.checked;
}
var total_secs;
function TimerDown(secs)
{
total_secs = secs;
CountDown();
}
function TimerDisplay(secs)
{
timer_min = Math.floor(secs / 60);
timer_sec = secs % 60;
if (timer_min < 10) timer_min = '0'+ timer_min;
if (timer_sec < 10) timer_sec = '0'+ timer_sec;
return timer_min+':'+timer_sec;
}
function CountDown()
{
total_secs--;
if (total_secs >= 0)
{
document.fcounter.counter.value = TimerDisplay(total_secs);
down=setTimeout("CountDown()",1000);
}
}
function toggleBox(mybox1, mybox2)
{
if (document.all)
{
if (document.all.item(mybox1).style.display == "none")
{
document.all.item(mybox1).style.display = "";
document.all.item(mybox2).style.display = "none";
}
else
{
document.all.item(mybox2).style.display = "";
document.all.item(mybox1).style.display = "none";
}
}
else
{
if (document.getElementById(mybox1).style.display == "none")
{
document.getElementById(mybox1).style.display = "";
document.getElementById(mybox2).style.display = "none";
}
else
{
document.getElementById(mybox2).style.display = "";
document.getElementById(mybox1).style.display = "none";
}
}
}
function openWindow(w_uri, w_title)
{
window.open(w_uri, w_title, 'width=800,height=600,directories=no,location=no,menubar=no,resizable=yes,scrollbars=no,status=no,toolbar=no');
}
//-->
</script>
{ /literal }
<br>
<table width="100%" border="0" cellpadding="0" cellspacing="10">
<tr>
<td align="left" valign="top" width="150px">
{ if $tool_domain_selected & & $tool_shard_selected }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th colspan="10">Refresh</th>
</tr>
<form action="index.php?domain= { $tool_domain_selected } &shard= { $tool_shard_selected } " method="post" name="fcounter">
<tr>
<td>
<select name="services_refresh" style="width:100%;" onchange="this.form.submit();">
{ section name = refresh loop = $tool_refresh_list }
<option value=" { $tool_refresh_list [ refresh ] . secs } " { if $tool_refresh_rate = = $tool_refresh_list [ refresh ] . secs } selected { /if } > { $tool_refresh_list [ refresh ] . desc } </option>
{ /section }
</select>
</td>
</tr>
{ if $tool_refresh_rate > 0 }
<tr>
<td>
<input type="text" name="counter" value="" readonly class="refresh_counter">
<script language="Javascript" type="text/javascript">
<!--
TimerDown( { $tool_refresh_rate } );
-->
</script>
</td>
</tr>
{ /if }
</form>
</table>
<br>
{ /if }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th colspan="10">Domains</th>
</tr>
{ section name = domain loop = $tool_domain_list }
<tr>
<td align="center" class=" { if $tool_domain_selected = = $tool_domain_list [ domain ] . domain_id } domainlistselected { else } domainlist { /if } "><a href="index.php?domain= { $tool_domain_list [ domain ] . domain_id } "> { $tool_domain_list [ domain ] . domain_name } </a></td>
</tr>
{ /section }
</table>
{ if $tool_domain_selected }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th colspan="10">Shards</th>
</tr>
{ section name = shard loop = $tool_shard_list }
{ if $tool_domain_selected = = $tool_shard_list [ shard ] . shard_domain_id }
<tr>
<td align="center" class=" { if $tool_shard_selected = = $tool_shard_list [ shard ] . shard_id } shardlistselected { else } shardlist { /if } "><a href="index.php?domain= { $tool_domain_selected } &shard= { $tool_shard_list [ shard ] . shard_id } "> { $tool_shard_list [ shard ] . shard_name } </a></td>
</tr>
{ /if }
{ /section }
</table>
{ /if }
{ if $restriction_tool_notes & & $tool_note_list }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th colspan="10">Notes</th>
</tr>
{ section name = note loop = $tool_note_list }
<tr>
{ if $tool_note_list [ note ] . note_mode = = 0 }
<td align="center"><a href="javascript:void(0);" onclick="return overlib(' { $tool_note_list [ note ] . note_data } ', WIDTH, 250, STICKY, DRAGGABLE, CAPTION, ' { $tool_note_list [ note ] . note_title2 } ', CENTER, CLOSECLICK, ANCHOR, 'ol_anchor_right', ANCHORALIGN, 'LL', 'UR');" onmouseout="nd();"> { $tool_note_list [ note ] . note_title } </a></td>
{ elseif $tool_note_list [ note ] . note_mode = = 1 }
<td align="center"><a href="javascript:openWindow(' { $tool_note_list [ note ] . note_popup_uri } ',' { $tool_note_list [ note ] . note_title } ');"> { $tool_note_list [ note ] . note_title } </a></td>
{ /if }
</tr>
{ /section }
</table>
{ /if }
{ if $tool_hd_list }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th colspan="10">HardDrives</th>
</tr>
{ section name = hd loop = $tool_hd_list }
{ if $tool_hd_list [ hd ] . hd_percent > = 8 5 } { assign var = "hdtrclass" value = "row_red" }
{ elseif $tool_hd_list [ hd ] . hd_percent > = 7 5 } { assign var = "hdtrclass" value = "row_orange_light" }
{ else } { assign var = "hdtrclass" value = "row0" } { /if }
<tr class=" { $hdtrclass } ">
<td align="left" ><a href="javascript:void(0);" onmouseover="return overlib(' { $tool_hd_list [ hd ] . summary } ', OFFSETX, 40, OFFSETY, 10);" onmouseout="return nd();"> { $tool_hd_list [ hd ] . hd_server } </a></td>
<td align="right"> { $tool_hd_list [ hd ] . hd_percent } %</td>
</tr>
{ /section }
<tr>
<th colspan="10"><small> { $tool_hd_time | date_format : "%Y/%m/%d %H:%M:%S" } </small></th>
</tr>
</table>
{ /if }
</td>
<td width="10px"> </td>
<td align="right" valign="top">
{ if tool_domain_selected & & $tool_shard_selected }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<form action="index.php" method="post">
{ if $tool_annotation_info | | $tool_has_lock }
<tr>
<th width="10%">Annotation</th>
<td><input type="text" name="annotation" value=" { $tool_annotation_info.annotation_data } " maxlength="255" size="80" { if ! $tool_has_lock } readonly { /if } > { if $tool_has_lock } <input type="submit" name="lock" value="update annotation"> { /if }
{ if $tool_annotation_info }
( { $tool_annotation_info.annotation_user_name } @ { $tool_annotation_info.annotation_date | date_format : "%Y/%m/%d %H:%M:%S" } )
{ /if }
</td>
</tr>
{ /if }
<tr>
<th width="10%">Lock</th>
<td>
{ if $tool_no_lock }
{ * if (!$tool_lock_info || $tool_lock_info.lock_shard_id) && !$tool_cant_lock && ($tool_shard_restart_status == 0) && !$tool_no_domain_lock * }
{ if ( ! $tool_lock_info | | $tool_lock_info.lock_shard_id ) & & ! $tool_cant_lock & & ! $tool_no_domain_lock }
{ if $restriction_tool_main_lock_shard } <input type="submit" name="lock" value="lock shard"> { /if }
{ else }
Lock unavailable, a restart sequence is active !
{ /if }
{ if ( $tool_shard_restart_status = = 0 ) & & ( $tool_domain_has_shard_restart = = 0 ) }
{ if $restriction_tool_main_lock_domain } <input type="submit" name="lock" value="lock domain"> { /if }
{ /if }
{ elseif $tool_has_shard_lock }
{ if $tool_shard_restart_status = = 0 }
<input type="submit" name="lock" value="unlock shard">
{ /if }
{ if ( $tool_shard_restart_status = = 0 ) & & ( $tool_domain_has_shard_restart = = 0 ) }
{ if $restriction_tool_main_lock_domain } <input type="submit" name="lock" value="lock domain"> { /if }
{ elseif $tool_shard_restart_status > 0 }
Restart Sequence is active !
{ /if }
{ if $restriction_tool_main_easy_restart & & ( $tool_shard_restart_status = = 0 ) }
<input type="submit" name="lock" value="restart sequence" class="restart" onclick="if (confirm('Are you sure you want to engage the RESTART SEQUENCE for this shard ?')) return true; return false;">
<input type="hidden" name="restart_ws_state" value=" { $tool_restart_ws_state } ">
{ /if }
{ elseif $tool_has_domain_lock }
<input type="submit" name="lock" value="unlock domain">
{ /if }
{ if $tool_lock_info }
{ if $tool_lock_info.lock_domain_id } Domain { elseif $tool_lock_info.lock_shard_id } Shard { /if }
Locked by <b> { $tool_lock_info.lock_user_name } </b> @ { $tool_lock_info.lock_date | date_format : "%Y/%m/%d %H:%M:%S" }
{ else }
Unlocked.
{ /if }
</td>
</tr>
</form>
</table>
<br>
{ /if }
{ if ! $tool_domain_selected }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td class="row0">You need to select a domain.</td>
</tr>
</table>
{ elseif ! $tool_shard_selected }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td class="row0">You need to select a shard.</td>
</tr>
</table>
{ elseif $tool_domain_error }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td class="row0"><span class="alert"> { $tool_domain_error } </span></td>
</tr>
</table>
{ else }
{ if $tool_as_error }
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td class="row0"><span class="alert"> { $tool_as_error } </span></td>
</tr>
</table>
<br>
{ /if }
<form action="index.php" method="post" name="qlist">
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td class="heads"><input class="check" type="checkbox" name="allbox" value="1" onclick="CheckAll();"></td>
<td class="heads">AliasName</td>
<td class="heads">Shard</td>
{ *<td class="heads">LongName</td>* }
<td class="heads">ShortName</td>
{ *<td class="heads">ServiceAlias</td>* }
<td class="heads">Hostname</td>
<td class="heads">Running State</td>
<td class="heads">Running Orders</td>
<td class="heads">Running Tags</td>
<td class="heads">State</td>
<td class="heads">Report</td>
<td class="heads">Start Counters</td>
<td class="heads">User SL</td>
<td class="heads">Tick SL</td>
<td class="heads">Memory</td>
<td class="heads">NbPlayers</td>
<td class="heads">UpTime</td>
</tr>
{ section name = service loop = $tool_services_list }
{ assign var = "service_shard_id" value = $tool_services_list [ service ] . ShardName }
{ if $tool_shard_filters . $service_shard_id | | $tool_shard_filters._all_ | | ( $tool_shard_filters._unknown_ & & ! $tool_services_list [ service ] . ShardName ) }
{ cycle assign = "trclass" values = "row0,row1" }
{ assign var = "tdclass1" value = "" }
{ assign var = "tdclass2" value = "" }
{ if $tool_services_list [ service ] . _flags_ . rs_stopped } { assign var = "tdclass1" value = "class=\"cell_inactive1\"" } { assign var = "tdclass2" value = "class=\"cell_inactive2\"" } { assign var = "trclass" value = "row_stopped" } { /if }
{ if $tool_services_list [ service ] . _flags_ . rs_starting } { * assign var="tdclass1" value="class=\"cell_inactive1\"" * } { assign var = "tdclass2" value = "class=\"cell_inactive2\"" } { assign var = "trclass" value = "row_starting" } { /if }
{ if $tool_services_list [ service ] . _flags_ . alert_red & & ( $tool_services_list [ service ] . _flags_ . rs_starting | | $tool_services_list [ service ] . _flags_ . rs_online ) } { assign var = "trclass" value = "row_red" }
{ elseif $tool_services_list [ service ] . _flags_ . alert_orange_dark & & ( $tool_services_list [ service ] . _flags_ . rs_starting | | $tool_services_list [ service ] . _flags_ . rs_online ) } { assign var = "trclass" value = "row_orange_dark" }
{ elseif $tool_services_list [ service ] . _flags_ . alert_orange_light & & ( $tool_services_list [ service ] . _flags_ . rs_starting | | $tool_services_list [ service ] . _flags_ . rs_online ) } { assign var = "trclass" value = "row_orange_light" } { /if }
{ assign var = "check_name" value = $tool_services_list [ service ] . AliasName }
<tr class=" { $trclass } ">
<td><input class="check" type="checkbox" name="service_ { $tool_services_list [ service ] . AliasName } " value=" { $tool_services_list [ service ] . AliasName } " { if $tool_service_select_list . $check_name } checked { /if } ></td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . AliasName } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { if $tool_services_list [ service ] . ShardName ! = "" } { $tool_services_list [ service ] . ShardName } { else } ? { /if } { if $tool_services_list [ service ] . ShardId ! = "" } / { $tool_services_list [ service ] . ShardId } { /if } </td>
{ *<td>{$tool_services_list[service].LongName}</td>* }
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . ShortName } </td>
{ *<td>{$tool_services_list[service].ServiceAlias}</td>* }
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . Hostname } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . RunningState } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . RunningOrders } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass1 } > { $tool_services_list [ service ] . RunningTags } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . State } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . NoReportSince } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . StartCounter } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . UserSpeedLoop } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . TickSpeedLoop } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . ProcessUsedMemory } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . NbPlayers } </td>
<td onclick="CheckToggle(document.qlist.service_ { $tool_services_list [ service ] . AliasName } )" { $tdclass2 } > { $tool_services_list [ service ] . UpTime } </td>
</tr>
{ /if }
{ /section }
</table>
<!-- ugly trick to block the first submit button being triggered when hitting ENTER to send the form -->
<div style="display: none;"><input type="submit" name="fake" value="fake" onclick="alert('PLEASE DO NOT USE THE <ENTER> KEY !'); return false;"></div>
<!-- end ugly trick :) -->
{ if $restriction_tool_main_easy_restart & & ( $tool_shard_restart_status > 0 ) }
{ include file = "index_restart_sequence.tpl" }
{ else }
{ if $restriction_tool_main_ws }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td align="right" width="100px"><b>WS : </b> { if $restriction_tool_main_ws_old } <br><small><a href="javascript:toggleBox('ws_old','ws_new');">new/old</a></small> { /if } </td>
<td>
{ if $restriction_tool_main_ws_old }
<div id="ws_old" style="display: none;">
<input type="submit" name="services_update" value="open ws" onclick="if (confirm('Are you sure you want to OPEN the selected WS services ?')) return true; return false;">
<input type="submit" name="services_update" value="lock ws" onclick="if (confirm('Are you sure you want to LOCK the selected WS services ?')) return true; return false;">
<input type="submit" name="services_update" value="close ws" onclick="if (confirm('Are you sure you want to CLOSE the selected WS services ?')) return true; return false;">
</div>
{ /if }
<div id="ws_new">
<table width="100%" border="0" cellpadding="1">
<input type="hidden" name="ws_su" value=" { $tool_shard_su_name } ">
<input type="hidden" name="ws_shard_name" value="">
<input type="hidden" name="ws_shard_id" value="">
{ section name = shard loop = $tool_shard_run_list }
{ assign var = "sname" value = $tool_shard_run_list [ shard ] }
{ if $tool_shard_infos [ $sname ] & & $tool_shard_su_name }
<tr>
<td width="10%"> <b> { $tool_shard_run_list [ shard ] } </b></td>
<td width="10%">
<select name="ws_state_ { $sname } ">
{ section name = state loop = $tool_shard_ws_states }
<option class="ws_ { $tool_shard_ws_states [ state ] } " value=" { $tool_shard_ws_states [ state ] } " { if $tool_shard_infos [ $sname ] . state = = $tool_shard_ws_states [ state ] } selected { /if } > { $tool_shard_ws_states [ state ] } </option>
{ /section }
</select></td>
<td width="20%"><input type="text" name="ws_motd_ { $sname } " value=" { $tool_shard_infos [ $sname ] . motd } " maxlength="255" size="40"></td>
<td width="20%"><input type="submit" name="ws_update" value="update WS" onclick="if (confirm('Are you sure you want to change the WS State for shard < { $sname } > ?')) { ldelim } this.form.ws_shard_name.value=' { $sname } '; this.form.ws_shard_id.value=' { $tool_shard_infos [ $sname ] . shard_id } '; return true; { rdelim } else { ldelim } return false; { rdelim } "></td>
<td> </td>
</tr>
{ /if }
{ /section }
</table>
</div>
</td>
</tr>
</table>
{ /if }
{ if $restriction_tool_main_start | | $restriction_tool_main_stop | | $restriction_tool_main_restart | | $restriction_tool_main_kill | | $restriction_tool_main_abort | | $restriction_tool_main_reset_counters | | $restriction_tool_main_service_autostart }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td align="right" width="100px"><b>Services : </b></td>
<td>
{ if $restriction_tool_main_start }
<input type="submit" name="services_update" value="start" onclick="if (confirm('Are you sure you want to START the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_stop }
<input type="submit" name="services_update" value="stop" onclick="if (confirm('Are you sure you want to STOP the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_restart }
<input type="submit" name="services_update" value="restart" onclick="if (confirm('Are you sure you want to RESTART the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_kill }
<input type="submit" name="services_update" value="kill" onclick="if (confirm('Are you sure you want to KILL the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_abort }
<input type="submit" name="services_update" value="abort" onclick="if (confirm('Are you sure you want to ABORT the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_service_autostart }
<input type="submit" name="services_update" value="activate" onclick="if (confirm('Are you sure you want to ACTIVATE the selected services ?')) return true; return false;">
<input type="submit" name="services_update" value="deactivate" onclick="if (confirm('Are you sure you want to DEACTIVATE the selected services ?')) return true; return false;">
{ /if }
{ if $restriction_tool_main_reset_counters }
<input type="submit" name="services_update" value="reset counters" onclick="if (confirm('Are you sure you want to RESET START COUNTERS on the selected services (AES only) ?')) return true; return false;">
{ /if }
</td>
</tr>
</table>
{ /if }
{ if $restriction_tool_main_shard_autostart & & $tool_shard_run_list }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td align="right" width="100px"><b>Shards : </b></td>
<td><table width="100%" border="0" cellpadding="1">
<input type="hidden" name="shards_update_name" value="">
{ section name = shard loop = $tool_shard_run_list }
{ assign var = "sname" value = $tool_shard_run_list [ shard ] }
<tr>
<td width="10%"> <b> { $tool_shard_run_list [ shard ] } </b></td>
<td width="10%"> { if $sname ! = "" } <span class=" { $tool_shard_orders [ $sname ] } "> { $tool_shard_orders [ $sname ] | replace : '_' : ' ' } </span> { /if } </td>
<td width="80%">
<input type="submit" name="shards_update" value="auto restart on" onclick="if (confirm('Are you sure you want to set AUTO RESTART ON for shard < { $tool_shard_run_list [ shard ] } > ?')) { ldelim } this.form.shards_update_name.value=' { $tool_shard_run_list [ shard ] } '; return true; { rdelim } else { ldelim } return false; { rdelim } ">
<input type="submit" name="shards_update" value="auto restart off" onclick="if (confirm('Are you sure you want to set AUTO RESTART OFF for shard < { $tool_shard_run_list [ shard ] } > ?')) { ldelim } this.form.shards_update_name.value=' { $tool_shard_run_list [ shard ] } '; return true; { rdelim } else { ldelim } return false; { rdelim } ">
</td>
</tr>
{ /section }
</table></td>
</tr>
</table>
{ /if }
{ if $restriction_tool_main_execute }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<td align="right" width="100px"><b>Command : </b></td>
<td> <input type="text" name="service_command" value=" { $tool_execute_command } " size="50">
<input type="submit" name="services_update" value="execute" { * onclick="if (confirm('Are you sure you want to EXECUTE this command on the selected services ?')) return true; return false;" * } >
</td>
</tr>
</table>
{ if $tool_execute_command }
<br>
<table width="100%" border="0" cellpadding="1" bgcolor="#cccccc" class="view">
<tr>
<th>Command Results for ' { $tool_execute_command } ' :</th>
</tr>
<tr>
<td><textarea width="100%" rows="50" class="command" readonly > { section name = exe loop = $tool_execute_result } { $tool_execute_result [ exe ] } { /section } </textarea></td>
</tr>
</table>
{ /if }
{ /if }
{ * end of: if $restriction_tool_main_easy_restart && ($tool_shard_restart_status > 0) * }
{ /if }
</form>
{ /if }
</td>
</tr>
</table>
{ include file = "page_footer.tpl" }