function controlMain(name, cmd, frame)
{
var scriptBody = "";
if (name.length > 0)
{
var app = new appObject();
app.setFromName(name);
var defaults = new appDefaults();
if (cmd == "debug")
{
var active = app.isActive();
if (!active)
{
active = app.Start();
if (!active)
{
if (used(frame))
{
scriptBody += "alert('Unable to start application:\\nError: " + app.error + "');\n";
}
else
{
writeError('Unable to start application: "' + app.error + '"');
}
}
}
if (active)
{
if (defaults.debug == "same")
{
scriptBody += "var win = window.open(" + '""' + ", " + '"' + "debug_" + app.name + '"' + ");\n";
scriptBody += "win.location.href = '" + getServerRoot() + "/appmgr/debug.html?name=" + app.name + "';\n";
}
else
{
// scriptBody += "window.open(" + '"' + app.uri + '/"' + ", " + '"' + "run_" + app.name + '"' + ");\n";
// scriptBody += "window.open(" + '"trace.html?name=' + app.name + '"' + ", " + '"' + "debug_" + app.name + '"' + ', "' + "toolbar=yes,location=no,directories=no,status=no,menubar=0,scrollbars=yes,resizable=yes,copyhistory=yes,width=600,height=500" + '"' + ");\n";
scriptBody += "var winrun = window.open(" + '""' + ", " + '"' + "run_" + app.name + '"' + ");\n";
scriptBody += "winrun.location.href = '" + getServerRoot() + app.uri + "/';\n";
if (request.agent.indexOf("Win", 0) == -1)
{
scriptBody += "var wintrace = window.open(" + '""' + ", " + '"' + "debug_" + app.name + '"' + ', "' + "toolbar=no,location=no,directories=no,status=no,menubar=0,scrollbars=yes,resizable=yes,copyhistory=yes,width=600,height=500" + '"' + ");\n";
scriptBody += "wintrace.location.href = '" + getServerRoot() + "/appmgr/trace.html?name=" + app.name + "';\n";
}
else
{
scriptBody += "window.open(" + '"trace.html?name=' + app.name + '"' + ", " + '"' + "debug_" + app.name + '"' + ', "' + "toolbar=no,location=no,directories=no,status=no,menubar=0,scrollbars=yes,resizable=yes,copyhistory=yes,width=600,height=500" + '"' + ");\n";
}
}
}
}
if (cmd == "run")
{
if (app.isActive())
{
// scriptBody += "window.open(" + '"' + app.uri + '/"' + ", " + '"' + "run_" + app.name + '"' + ");\n";
scriptBody += "var winrun = window.open(" + '""' + ", " + '"' + "run_" + app.name + '"' + ");\n";
scriptBody += "winrun.location.href = '" + getServerRoot() + app.uri + "/';\n";
}
else
{
if (app.Start())
{
// scriptBody += "window.open(" + '"' + app.uri + '/"' + ", " + '"' + "run_" + app.name + '"' + ");\n";
scriptBody += "var winrun = window.open(" + '""' + ", " + '"' + "run_" + app.name + '"' + ");\n";
scriptBody += "winrun.location.href = '" + getServerRoot() + app.uri + "/';\n";
}
else
{
if (used(frame))
{
scriptBody += "alert('Unable to start application:\\nError: " + app.error + "');\n";
}
else
{
writeError('Unable to start application: "' + app.error + '"');
}
}
}
}
else if (cmd == "start")
{
if (app.Start())
{
if (defaults.confirmstart == "on")
{
if (used(frame))
{
scriptBody += "alert('Application " + '"' + name + '"' + "\\nhas been started');\n";
}
else
{
writeWarn('Application "' + name + '" has been started');
}
}
}
else
{
if (used(frame))
{
scriptBody += "alert('Unable to start application:\\nError: " + app.error + "');\n";
}
else
{
writeError('Unable to start application: "' + app.error + '"');
}
}
}
else if (cmd == "stop")
{
if (app.Stop())
{
if (defaults.confirmstop == "on")
{
if (used(frame))
{
scriptBody += "alert('Application " + '"' + name + '"' + "\\nhas been stopped');\n";
}
else
{
writeWarn('Application "' + name + '" has been stopped');
}
}
}
else
{
if (used(frame))
{
scriptBody += "alert('Unable to stop application:\\nError: " + app.error + "');\n";
}
else
{
writeError('Unable to stop application: "' + app.error + '"');
}
}
}
else if (cmd == "restart")
{
if (app.Restart())
{
if (defaults.confirmrestart == "on")
{
if (used(frame))
{
scriptBody += "alert('Application " + '"' + name + '"' + "\\nhas been restarted');\n";
}
else
{
writeWarn('Application "' + name + '" has been restarted');
}
}
}
else
{
if (used(frame))
{
scriptBody += "alert('Unable to restart application:\\nError: " + app.error + "');\n";
}
else
{
writeError('Unable to restart application: "' + app.error + '"');
}
}
}
if (used(frame))
{
writeln(app);
}
else
{
writeSuccess();
}
}
else
{
if (used(frame))
scriptBody += 'window.parent.frames[1].location.href = "manage.html?cmd=init";\n';
else
writeSuccess();
}
writeClientScript(scriptBody);
}
client.expiration(60*60*24*30); // Save configuration for 30 days
controlMain(request.name, request.cmd, request.frame);