Basic placeholder webui
Adds the bare minimum files to have a functional web interface with placeholder sidebar, home and admin pages.
This commit is contained in:
16
private/htaccess.dist
Normal file
16
private/htaccess.dist
Normal file
@@ -0,0 +1,16 @@
|
||||
SetEnv STATUSBOARD_CONFIG /etc/status-board/config.php
|
||||
|
||||
<IfModule mod_rewrite.c>
|
||||
|
||||
RewriteEngine on
|
||||
RewriteBase /
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(ajax/.*)$ a.php?l=$1 [L]
|
||||
|
||||
RewriteCond %{REQUEST_FILENAME} !-f
|
||||
RewriteCond %{REQUEST_FILENAME} !-d
|
||||
RewriteRule ^(.*)$ index.php?l=$1
|
||||
|
||||
</IfModule>
|
||||
1
public/.gitignore
vendored
Normal file
1
public/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
.htaccess
|
||||
16
public/_inc.php
Normal file
16
public/_inc.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
if (isset($_SERVER['STATUSBOARD_CONFIG']) &&
|
||||
file_exists($_SERVER['STATUSBOARD_CONFIG']) &&
|
||||
is_readable($_SERVER['STATUSBOARD_CONFIG'])) {
|
||||
require_once($_SERVER['STATUSBOARD_CONFIG']);
|
||||
} else {
|
||||
require_once '/etc/status-board/config.php';
|
||||
}
|
||||
|
||||
require_once SihnonFramework_Lib . 'SihnonFramework/Main.class.php';
|
||||
|
||||
SihnonFramework_Main::registerAutoloadClasses('SihnonFramework', SihnonFramework_Lib,
|
||||
'StatusBoard', StatusBoard_Lib);
|
||||
|
||||
?>
|
||||
0
public/images/.gitignore
vendored
Normal file
0
public/images/.gitignore
vendored
Normal file
21
public/index.php
Normal file
21
public/index.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
define('StatusBoard_File', 'index');
|
||||
|
||||
require '_inc.php';
|
||||
|
||||
try {
|
||||
$main = StatusBoard_Main::instance();
|
||||
StatusBoard_LogEntry::setLocalProgname('webui');
|
||||
$smarty = $main->smarty();
|
||||
|
||||
$page = new StatusBoard_Page($smarty, $main->request());
|
||||
if ($page->evaluate()) {
|
||||
$smarty->display('index.tpl');
|
||||
}
|
||||
|
||||
} catch (StatusBoard_Exception $e) {
|
||||
die("Uncaught Exception: " . $e->getMessage());
|
||||
}
|
||||
|
||||
?>
|
||||
5
public/scripts/main.js
Normal file
5
public/scripts/main.js
Normal file
@@ -0,0 +1,5 @@
|
||||
/**
|
||||
* StatusBoard main script file
|
||||
*
|
||||
*
|
||||
*/
|
||||
92
public/styles/normal.css
Normal file
92
public/styles/normal.css
Normal file
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* StatusBoard normal stylesheet
|
||||
*
|
||||
*/
|
||||
|
||||
@CHARSET "UTF-8";
|
||||
|
||||
body {
|
||||
margin: 0em;
|
||||
padding: 0em;
|
||||
font-family: verdana, helvetica, sans-serif;
|
||||
}
|
||||
|
||||
a {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
label {
|
||||
margin-left: 1em;
|
||||
margin-right: 1em;
|
||||
}
|
||||
|
||||
#container {
|
||||
width: 75%;
|
||||
min-width: 75em;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#banner {
|
||||
margin: 0em;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
#banner h1 {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#navigation {
|
||||
margin-top: 0em;
|
||||
margin-bottom: 1em;
|
||||
padding: 0.2em;
|
||||
}
|
||||
|
||||
#navigation ul {
|
||||
margin: 0em;
|
||||
padding: 0em 5em;;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
#navigation li {
|
||||
margin: 1em;
|
||||
padding: 0em;
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#page-container {
|
||||
margin: 0em;
|
||||
padding: 0em;
|
||||
}
|
||||
|
||||
#sidebar {
|
||||
float: left;
|
||||
width: 20em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
#page {
|
||||
margin-left: 21em;
|
||||
margin-bottom: 1em;
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear: both;
|
||||
padding: 2em;
|
||||
font-size: smaller;
|
||||
font-style: italic;
|
||||
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
#errors {
|
||||
background: peachpuff;
|
||||
color: darkred;
|
||||
margin: 1em;
|
||||
}
|
||||
|
||||
#messages {
|
||||
background: lightcyan;
|
||||
color: darkblue;
|
||||
margin: 1em;
|
||||
}
|
||||
65
source/lib/StatusBoard/Main.class.php
Normal file
65
source/lib/StatusBoard/Main.class.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
require 'smarty/Smarty.class.php';
|
||||
|
||||
class StatusBoard_Main extends SihnonFramework_Main {
|
||||
|
||||
const TEMPLATE_DIR = '../source/webui/templates/';
|
||||
|
||||
protected static $instance;
|
||||
|
||||
protected $smarty;
|
||||
protected $request;
|
||||
|
||||
protected function __construct() {
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
protected function init() {
|
||||
parent::init();
|
||||
|
||||
$request_string = isset($_GET['l']) ? $_GET['l'] : '';
|
||||
|
||||
$this->request = new StatusBoard_RequestParser($request_string, self::TEMPLATE_DIR);
|
||||
|
||||
switch (StatusBoard_File) {
|
||||
case 'ajax':
|
||||
case 'index': {
|
||||
$smarty_tmp = $this->config->get('templates.tmp_path');
|
||||
$this->smarty = new Smarty();
|
||||
$this->smarty->template_dir = static::makeAbsolutePath(self::TEMPLATE_DIR);
|
||||
$this->smarty->compile_dir = static::makeAbsolutePath($smarty_tmp . '/templates');
|
||||
$this->smarty->cache_dir = static::makeAbsolutePath($smarty_tmp . '/cache');
|
||||
$this->smarty->config_dir = static::makeAbsolutePath($smarty_tmp . '/config');
|
||||
$this->smarty->plugins_dir[]= static::makeAbsolutePath('../source/webui/smarty/plugins');
|
||||
|
||||
$this->smarty->registerPlugin('modifier', 'formatDuration', array('StatusBoard_Main', 'formatDuration'));
|
||||
$this->smarty->registerPlugin('modifier', 'formatFilesize', array('StatusBoard_Main', 'formatFilesize'));
|
||||
|
||||
$this->smarty->assign('version', '0.1.0');
|
||||
$this->smarty->assign('messages', array());
|
||||
|
||||
$this->smarty->assign('base_uri', $this->base_uri);
|
||||
$this->smarty->assign('base_url', static::absoluteUrl(''));
|
||||
|
||||
} break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function smarty() {
|
||||
return $this->smarty;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return StatusBoard_RequestParser
|
||||
*/
|
||||
public function request() {
|
||||
return $this->request;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
1
source/webui/templates/admin.tpl
Normal file
1
source/webui/templates/admin.tpl
Normal file
@@ -0,0 +1 @@
|
||||
TODO
|
||||
6
source/webui/templates/errors/404.tpl
Normal file
6
source/webui/templates/errors/404.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
<h2>The requested page could not be found</h2>
|
||||
<p>
|
||||
The file you requested ({$requested_page}) could not be found.
|
||||
If you typed in the address manually, check that you have spelled it correctly,
|
||||
or if you followed a link, let us know and we'll look into it.
|
||||
</p>
|
||||
46
source/webui/templates/errors/unhandled-exception.tpl
Normal file
46
source/webui/templates/errors/unhandled-exception.tpl
Normal file
@@ -0,0 +1,46 @@
|
||||
<h2>An unhandled error has occurred</h2>
|
||||
<p>
|
||||
There was a problem trying to complete the requested action. Please try again and if the problem persists, let us know.
|
||||
</p>
|
||||
|
||||
{if $display_exceptions}
|
||||
<p>
|
||||
An unhandled exception was caught during the page template processing. The full details are shown below:
|
||||
</p>
|
||||
<table class="exception-details">
|
||||
<colgroup id="header">
|
||||
<col />
|
||||
</colgroup>
|
||||
<colgroup>
|
||||
<col />
|
||||
</colgroup>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Exception</th>
|
||||
<td>{$exception_type}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>File</th>
|
||||
<td>{$exception->getFile()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Line</th>
|
||||
<td>{$exception->getLine()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Message</th>
|
||||
<td>{$exception->getMessage()}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Stack Trace</th>
|
||||
<td><pre>{$exception->getTrace()|print_r}</pre></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
<em>Note:</em> Exception details should not be displayed on production systems.
|
||||
Disable the <a href="{$base_uri}admin/settings/key/debug.show_exceptions/"><code>debug.show_exceptions</code></a>
|
||||
setting to omit the exception details from this page.
|
||||
</p>
|
||||
{/if}
|
||||
1
source/webui/templates/home.tpl
Normal file
1
source/webui/templates/home.tpl
Normal file
@@ -0,0 +1 @@
|
||||
TODO
|
||||
60
source/webui/templates/index.tpl
Normal file
60
source/webui/templates/index.tpl
Normal file
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Status Board</title>
|
||||
<script lang="javascript">
|
||||
</script>
|
||||
<link rel="stylesheet" type="text/css" href="{$base_uri}styles/normal.css" />
|
||||
|
||||
<script type="text/javascript">
|
||||
var base_uri = "{$base_uri|escape:'quote'}";
|
||||
var base_url = "{$base_url|escape:'quote'}";
|
||||
</script>
|
||||
|
||||
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/smoothness/jquery-ui.css" rel="Stylesheet" />
|
||||
<link type="text/css" href="{$base_uri}styles/3rdparty/jquery.asmselect.css" rel="Stylesheet" />
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js"></script>
|
||||
<script type="text/javascript" src="{$base_uri}scripts/main.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="banner">
|
||||
<h1>StatusBoard</h1>
|
||||
</div>
|
||||
|
||||
<div id="navigation">
|
||||
{include file="navigation.tpl"}
|
||||
</div>
|
||||
|
||||
<div id="page-container">
|
||||
|
||||
<div id="sidebar">
|
||||
{include file="sidebar.tpl"}
|
||||
</div>
|
||||
|
||||
<div id="page">
|
||||
|
||||
{if $messages}
|
||||
<div id="messages">
|
||||
{foreach from=$messages item=message}
|
||||
{$message}
|
||||
{/foreach}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{$page_content}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer">
|
||||
Powered by StatusBoard {$version}. Written by Ben Roberts and Nathan Booth.
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
4
source/webui/templates/navigation.tpl
Normal file
4
source/webui/templates/navigation.tpl
Normal file
@@ -0,0 +1,4 @@
|
||||
<ul>
|
||||
<li><a href="{$base_uri}home/" title="Home">Home</a></li>
|
||||
<li><a href="{$base_uri}admin/" title="Admin">Admin</a></li>
|
||||
</ul>
|
||||
6
source/webui/templates/sidebar.tpl
Normal file
6
source/webui/templates/sidebar.tpl
Normal file
@@ -0,0 +1,6 @@
|
||||
<div id="services">
|
||||
<h2>Services</h2>
|
||||
<ul>
|
||||
<li>TODO</li>
|
||||
</ul>
|
||||
</div>
|
||||
Reference in New Issue
Block a user