<?php
namespace Lagdo\Supervisor;
use Jaxon\Plugin\Package as JaxonPackage;
use Lagdo\Supervisor\Ajax\Client as AjaxClient;
/**
* Supervisor package
*/
class Package extends JaxonPackage
{
/**
* Slugify a string
*
* @param string $string The string to be slugified
*
* @return string
*/
public function slugify($string)
{
return strtolower(trim(preg_replace('/[^A-Za-z0-9-]+/', '-', $string), '-'));
}
/**
* Get the div id of the HTML element showing the data from a Supervisor server
*
* @param string $server The server name in the configuration
*
* @return string
*/
public function divId($server)
{
return 'supervisor-host-' . $this->slugify($server);
}
/**
* Get the path to the config file
*
* @return string
*/
public static function getConfigFile()
{
return realpath(__DIR__ . '/../config/supervisor.php');
}
/**
* Get the HTML tags to include javascript code and files into the page
*
* @return string
*/
public function getScript()
{
return $this->view()->render('lagdo::supervisor::codes/script')
->with('refreshCall', jaxon()->request(AjaxClient::class)->refreshAll());
}
/**
* Get the javascript code to execute after page load
*
* @return string
*/
public function getReadyScript()
{
return jaxon()->request(AjaxClient::class)->refreshAll();
}
/**
* Get the HTML code of the package home page
*
* @return string
*/
public function getHtml()
{
// Add an HTML container block for each server in the config file
$servers = \array_keys($this->aOptions['servers']);
$divIds = [];
foreach($servers as $server)
{
$divIds[] = $this->divId($server);
}
return $this->view()->render('lagdo::supervisor::views/bootstrap/home', compact('divIds'));
}
}
|