[PATCH 1/1] WebUI: New public status page

Tim Niemeyer tim at tn-x.org
Mo Mär 14 21:32:16 CET 2016


Am Donnerstag, den 10.03.2016, 00:42 +0100 schrieb Dominik Heidler:
> Signed-off-by: Dominik Heidler <dominik at heidler.eu>
Reviewed-by: Tim Niemeyer <tim at tn-x.org>

und applied.

Tim

> ---
>  .../fff/fff-web/files/www/public/cgi-bin/status    |  73 --
>  .../fff-web/files/www/public/cgi-bin/status.html   |  71 ++
>  .../files/www/public/css/grids-responsive-min.css  | 491 ------------
>  .../fff/fff-web/files/www/public/css/pure-min.css  | 892 ---------------------
>  .../fff/fff-web/files/www/public/css/side-menu.css | 276 -------
>  .../fff/fff-web/files/www/public/css/style.css     |  78 --
>  .../fff/fff-web/files/www/public/freifunk.svg      |   1 +
>  .../fff/fff-web/files/www/public/index.html        |   4 +-
>  .../fff/fff-web/files/www/public/style.css         |   1 +
>  9 files changed, 75 insertions(+), 1812 deletions(-)
>  delete mode 100755 src/packages/fff/fff-web/files/www/public/cgi-bin/status
>  create mode 100755 src/packages/fff/fff-web/files/www/public/cgi-bin/status.html
>  delete mode 100644 src/packages/fff/fff-web/files/www/public/css/grids-responsive-min.css
>  delete mode 100644 src/packages/fff/fff-web/files/www/public/css/pure-min.css
>  delete mode 100644 src/packages/fff/fff-web/files/www/public/css/side-menu.css
>  delete mode 100644 src/packages/fff/fff-web/files/www/public/css/style.css
>  create mode 120000 src/packages/fff/fff-web/files/www/public/freifunk.svg
>  create mode 120000 src/packages/fff/fff-web/files/www/public/style.css
> 
> diff --git a/src/packages/fff/fff-web/files/www/public/cgi-bin/status b/src/packages/fff/fff-web/files/www/public/cgi-bin/status
> deleted file mode 100755
> index 63b9b3b..0000000
> --- a/src/packages/fff/fff-web/files/www/public/cgi-bin/status
> +++ /dev/null
> @@ -1,73 +0,0 @@
> -#!/usr/bin/haserl
> -<% echo -en "content-type: text/html\r\n\r\n" %>
> -<% . /etc/firmware_release %> 
> -<!DOCTYPE html>
> -<html lang="de"><head>
> -<meta http-equiv="content-type" content="text/html; charset=UTF-8">
> -    <meta charset="utf-8">
> -	<meta name="viewport" content="width=device-width, initial-scale=1">
> -	<title>FFF Router :: <% echo $(uci get -q system. at system[0].hostname) %></title>
> -	<link rel="stylesheet" href="/css/pure-min.css">
> -	<link rel="stylesheet" href="/css/side-menu.css">
> -	<link rel="stylesheet" href="/css/grids-responsive-min.css">
> -	<link rel="stylesheet" href="/css/style.css">
> -</head>
> -<body>
> -	<div class="header">
> -		<div class="home-menu pure-menu pure-menu-open pure-menu-horizontal pure-menu-fixed">
> -			<a class="pure-menu-heading" href="http://www.freifunk-franken.de">freifunk-franken.de</a>
> -			<ul>
> -<%
> -contact="$(uci get -q system. at system[0].contact)"
> -if [ -n "$contact" ]; then
> -		echo "<li> <a href="mailto:$contact">Kontakt: $contact</a></li>"
> -fi
> -
> -description="$(uci get -q system. at system[0].description)"
> -mac="$(uci -q get network.mesh.macaddr)"
> -if [ -n "$description" ]; then
> -	echo "				<li><a href='https://monitoring.freifunk-franken.de/api/get_router_by_mac/${mac}'>Beschreibung: $description</a></li>"
> -fi
> -
> -lat="$(uci get -q system. at system[0].latitude)"
> -lon="$(uci get -q system. at system[0].longitude)"
> -if [ -n "$lat" -a -n "$lon" ]; then
> -	echo "				<li><a href=\"https://monitoring.freifunk-franken.de/map?mapcenter=$lat,$lon,16\">Position: ${lat:0:8}N, ${lon:0:8}E</a></li>"
> -fi
> -position_comment="$(uci get -q system. at system[0].position_comment)"
> -if [ -n "$position_comment" ]; then
> -	echo "				<li><a href='#'>${position_comment}</a></li>"
> -fi
> -%>
> -				<li><form action="https://<% echo -n "$HTTP_HOST" %>"><button type="submit" class="pure-button">Login</button></form></li>
> -			</ul>
> -		</div>
> -	</div>
> -	<div class="header">
> -<%
> -echo "		<h1>$(uci get -q system. at system[0].hostname)</h1>"
> -%>
> -		<h2>Firmware Version <% echo -n $FIRMWARE_VERSION %></h2>
> -	</div>
> -	<div class="content">
> -		<div class="pure-g" style="text-align:center;">
> -			<div class="pure-u-1 pure-u-md-1-3">
> -				<div class="blockhead"></div>
> -				<h2>Nachbarknoten</h2>
> -				<h3><% echo -n $(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2> /dev/null) %></h3>
> -			</div>
> -			<div class="pure-u-1 pure-u-md-1-3">
> -				<div class="blockhead"></div>
> -				<h2>Alle Knoten</h2>
> -				<h3><% echo -n $((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2> /dev/null`+1)) %></h3>
> -			</div>
> -			<div class="pure-u-1 pure-u-md-1-3">
> -				<div class="blockhead"></div>
> -				<h2>Lokale Clients</h2>
> -				<h3><% echo -n $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W') %></h3>
> -			</div>
> -		</div>
> -	</div>
> -
> -</body>
> -</html>
> diff --git a/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html b/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html
> new file mode 100755
> index 0000000..fcb047e
> --- /dev/null
> +++ b/src/packages/fff/fff-web/files/www/public/cgi-bin/status.html
> @@ -0,0 +1,71 @@
> +#!/usr/bin/haserl
> +
> +<%
> +echo -en "Content-Type: text/html\r\n\r\n"
> +HOSTNAME=$(uci get -q 'system. at system[0].hostname')
> +
> +MAC="$(uci -q get network.mesh.macaddr)"
> +lat="$(uci get -q system. at system[0].latitude)"
> +lon="$(uci get -q system. at system[0].longitude)"
> +contact="$(uci get -q system. at system[0].contact)"
> +
> +. /etc/firmware_release
> +
> +%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> +<html xmlns="http://www.w3.org/1999/xhtml">
> +<head>
> +	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
> +	<title><%= ${HOSTNAME} %></title>
> +	<link href="/style.css" rel="stylesheet" type="text/css" media="screen" />
> +</head>
> +<body>
> +	<div id="header" style="position: relative;">
> +		<h1><%= ${HOSTNAME} %></h1>
> +		<h2>Freifunk Franken Router</h2>
> +		<img src="/freifunk.svg" style="position: absolute; top: 1px; right: 42px;" />
> +	</div>
> +	<div style="height: 30px; background-color: #ffb400; position: relative;">
> +		<div style="position: absolute; top: 20%; bottom: 20%; left: 40px; width: 20em; text-align: left;">
> +			<a style="color: #d22755; text-decoration: none; font-weight: bold;" href="http://www.freifunk-franken.de/">www.freifunk-franken.de</a>
> +		</div>
> +		<div style="background-color: #d22755; position: absolute; top: 20%; bottom: 20%; right: 42px; width: 3.4em; text-align: center; border-radius: 2px;">
> +			<a style="color: #ffffff; text-decoration: none;" href="https://<%= ${HTTP_HOST} %>/">Login</a>
> +		</div>
> +	</div>
> +	<div id="container" style="margin-top: 15px;">
> +		<div id="primarycontainer">
> +			<div id="primarycontent">
> +				<table style="width: 100%;">
> +					<tr><td>
> +						<fieldset style="min-height: 15em;">
> +							<legend>System</legend>
> +							<table>
> +								<tr><th>Name:</th><td><%= $HOSTNAME %></td></tr>
> +								<tr><th>MAC-Adresse:</th><td style="text-transform: uppercase;"><a href="https://monitoring.freifunk-franken.de/api/get_router_by_mac/<%= $MAC %>"><%= $MAC %></a></td></tr>
> +								<tr><th>Modell:</th><td><% cat /tmp/sysinfo/model 2>/dev/null %></td></tr>
> +								<tr><th>Firmware:</th><td><%= ${FIRMWARE_VERSION} %></td></tr>
> +								<tr><th>Beschreibung:</th><td><% uci get -q 'system. at system[0].description' %></td></tr>
> +								<tr><th>Position:</th><td><% if [ -n "$lat" -a -n "$lon" ]; then
> +									echo "<a href=\"https://monitoring.freifunk-franken.de/map?mapcenter=$lat,$lon,16\">${lat:0:8}N, ${lon:0:8}E</a>"
> +								fi %></td></tr>
> +								<tr><th>Standort:</th><td><% uci get -q 'system. at system[0].position_comment' %></td></tr>
> +								<tr><th>E-Mail Adresse:</th><td><a href="mailto:<%= $contact %>"><%= $contact %></a></td></tr>
> +							</table>
> +						</fieldset>
> +					</td><td>
> +						<fieldset style="min-height: 15em;">
> +							<legend>Status</legend>
> +							<table>
> +								<tr><th>Nachbarknoten:</th><td><% echo -n $(cat /sys/kernel/debug/batman_adv/bat0/originators | grep '^[0-9a-f]' | cut -b 37-53 | sort | uniq | wc -l 2> /dev/null) %></td></tr>
> +								<tr><th>Bekannte Knoten:</th><td><% echo -n $((`cat /sys/kernel/debug/batman_adv/bat0/transtable_global | grep '^ [^ ]' | cut -b 39-55 | sort | uniq | wc -l 2> /dev/null`+1)) %></td></tr>
> +								<tr><th>Lokale Clients:</th><td><% echo -n $(cat /sys/kernel/debug/batman_adv/bat0/transtable_local 2> /dev/null | grep -c 'W') %></td></tr>
> +							</table>
> +						</fieldset>
> +					</td></tr>
> +				</table>
> +			</div>
> +		</div>
> +		<div class="clearit"></div>
> +	</div>
> +</body>
> +</html>
> diff --git a/src/packages/fff/fff-web/files/www/public/css/grids-responsive-min.css b/src/packages/fff/fff-web/files/www/public/css/grids-responsive-min.css
> deleted file mode 100644
> index 63482de..0000000
> --- a/src/packages/fff/fff-web/files/www/public/css/grids-responsive-min.css
> +++ /dev/null
> @@ -1,491 +0,0 @@
> -/*!
> -Pure v0.5.0
> -Copyright 2014 Yahoo! Inc. All rights reserved.
> -Licensed under the BSD License.
> -https://github.com/yui/pure/blob/master/LICENSE.md
> -*/
> - at media screen and (min-width:35.5em){
> -.pure-u-sm-1,.pure-u-sm-1-1,.pure-u-sm-1-2,.pure-u-sm-1-3,.pure-u-sm-2-3,.pure-u-sm-1-4,.pure-u-sm-3-4,.pure-u-sm-1-5,.pure-u-sm-2-5,.pure-u-sm-3-5,.pure-u-sm-4-5,.pure-u-sm-5-5,.pure-u-sm-1-6,.pure-u-sm-5-6,.pure-u-sm-1-8,.pure-u-sm-3-8,.pure-u-sm-5-8,.pure-u-sm-7-8,.pure-u-sm-1-12,.pure-u-sm-5-12,.pure-u-sm-7-12,.pure-u-sm-11-12,.pure-u-sm-1-24,.pure-u-sm-2-24,.pure-u-sm-3-24,.pure-u-sm-4-24,.pure-u-sm-5-24,.pure-u-sm-6-24,.pure-u-sm-7-24,.pure-u-sm-8-24,.pure-u-sm-9-24,.pure-u-sm-10-24,.pure-u-sm-11-24,.pure-u-sm-12-24,.pure-u-sm-13-24,.pure-u-sm-14-24,.pure-u-sm-15-24,.pure-u-sm-16-24,.pure-u-sm-17-24,.pure-u-sm-18-24,.pure-u-sm-19-24,.pure-u-sm-20-24,.pure-u-sm-21-24,.pure-u-sm-22-24,.pure-u-sm-23-24,.pure-u-sm-24-24{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-u-sm-1-24{
> -width:4.1667%;
> -*width:4.1357%
> -}
> -.pure-u-sm-1-12,.pure-u-sm-2-24{
> -width:8.3333%;
> -*width:8.3023%
> -}
> -.pure-u-sm-1-8,.pure-u-sm-3-24{
> -width:12.5%;
> -*width:12.469%
> -}
> -.pure-u-sm-1-6,.pure-u-sm-4-24{
> -width:16.6667%;
> -*width:16.6357%
> -}
> -.pure-u-sm-1-5{
> -width:20%;
> -*width:19.969%
> -}
> -.pure-u-sm-5-24{
> -width:20.8333%;
> -*width:20.8023%
> -}
> -.pure-u-sm-1-4,.pure-u-sm-6-24{
> -width:25%;
> -*width:24.969%
> -}
> -.pure-u-sm-7-24{
> -width:29.1667%;
> -*width:29.1357%
> -}
> -.pure-u-sm-1-3,.pure-u-sm-8-24{
> -width:33.3333%;
> -*width:33.3023%
> -}
> -.pure-u-sm-3-8,.pure-u-sm-9-24{
> -width:37.5%;
> -*width:37.469%
> -}
> -.pure-u-sm-2-5{
> -width:40%;
> -*width:39.969%
> -}
> -.pure-u-sm-5-12,.pure-u-sm-10-24{
> -width:41.6667%;
> -*width:41.6357%
> -}
> -.pure-u-sm-11-24{
> -width:45.8333%;
> -*width:45.8023%
> -}
> -.pure-u-sm-1-2,.pure-u-sm-12-24{
> -width:50%;
> -*width:49.969%
> -}
> -.pure-u-sm-13-24{
> -width:54.1667%;
> -*width:54.1357%
> -}
> -.pure-u-sm-7-12,.pure-u-sm-14-24{
> -width:58.3333%;
> -*width:58.3023%
> -}
> -.pure-u-sm-3-5{
> -width:60%;
> -*width:59.969%
> -}
> -.pure-u-sm-5-8,.pure-u-sm-15-24{
> -width:62.5%;
> -*width:62.469%
> -}
> -.pure-u-sm-2-3,.pure-u-sm-16-24{
> -width:66.6667%;
> -*width:66.6357%
> -}
> -.pure-u-sm-17-24{
> -width:70.8333%;
> -*width:70.8023%
> -}
> -.pure-u-sm-3-4,.pure-u-sm-18-24{
> -width:75%;
> -*width:74.969%
> -}
> -.pure-u-sm-19-24{
> -width:79.1667%;
> -*width:79.1357%
> -}
> -.pure-u-sm-4-5{
> -width:80%;
> -*width:79.969%
> -}
> -.pure-u-sm-5-6,.pure-u-sm-20-24{
> -width:83.3333%;
> -*width:83.3023%
> -}
> -.pure-u-sm-7-8,.pure-u-sm-21-24{
> -width:87.5%;
> -*width:87.469%
> -}
> -.pure-u-sm-11-12,.pure-u-sm-22-24{
> -width:91.6667%;
> -*width:91.6357%
> -}
> -.pure-u-sm-23-24{
> -width:95.8333%;
> -*width:95.8023%
> -}
> -.pure-u-sm-1,.pure-u-sm-1-1,.pure-u-sm-5-5,.pure-u-sm-24-24{
> -width:100%
> -}
> -}@media screen and (min-width:48em){
> -.pure-u-md-1,.pure-u-md-1-1,.pure-u-md-1-2,.pure-u-md-1-3,.pure-u-md-2-3,.pure-u-md-1-4,.pure-u-md-3-4,.pure-u-md-1-5,.pure-u-md-2-5,.pure-u-md-3-5,.pure-u-md-4-5,.pure-u-md-5-5,.pure-u-md-1-6,.pure-u-md-5-6,.pure-u-md-1-8,.pure-u-md-3-8,.pure-u-md-5-8,.pure-u-md-7-8,.pure-u-md-1-12,.pure-u-md-5-12,.pure-u-md-7-12,.pure-u-md-11-12,.pure-u-md-1-24,.pure-u-md-2-24,.pure-u-md-3-24,.pure-u-md-4-24,.pure-u-md-5-24,.pure-u-md-6-24,.pure-u-md-7-24,.pure-u-md-8-24,.pure-u-md-9-24,.pure-u-md-10-24,.pure-u-md-11-24,.pure-u-md-12-24,.pure-u-md-13-24,.pure-u-md-14-24,.pure-u-md-15-24,.pure-u-md-16-24,.pure-u-md-17-24,.pure-u-md-18-24,.pure-u-md-19-24,.pure-u-md-20-24,.pure-u-md-21-24,.pure-u-md-22-24,.pure-u-md-23-24,.pure-u-md-24-24{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-u-md-1-24{
> -width:4.1667%;
> -*width:4.1357%
> -}
> -.pure-u-md-1-12,.pure-u-md-2-24{
> -width:8.3333%;
> -*width:8.3023%
> -}
> -.pure-u-md-1-8,.pure-u-md-3-24{
> -width:12.5%;
> -*width:12.469%
> -}
> -.pure-u-md-1-6,.pure-u-md-4-24{
> -width:16.6667%;
> -*width:16.6357%
> -}
> -.pure-u-md-1-5{
> -width:20%;
> -*width:19.969%
> -}
> -.pure-u-md-5-24{
> -width:20.8333%;
> -*width:20.8023%
> -}
> -.pure-u-md-1-4,.pure-u-md-6-24{
> -width:25%;
> -*width:24.969%
> -}
> -.pure-u-md-7-24{
> -width:29.1667%;
> -*width:29.1357%
> -}
> -.pure-u-md-1-3,.pure-u-md-8-24{
> -width:33.3333%;
> -*width:33.3023%
> -}
> -.pure-u-md-3-8,.pure-u-md-9-24{
> -width:37.5%;
> -*width:37.469%
> -}
> -.pure-u-md-2-5{
> -width:40%;
> -*width:39.969%
> -}
> -.pure-u-md-5-12,.pure-u-md-10-24{
> -width:41.6667%;
> -*width:41.6357%
> -}
> -.pure-u-md-11-24{
> -width:45.8333%;
> -*width:45.8023%
> -}
> -.pure-u-md-1-2,.pure-u-md-12-24{
> -width:50%;
> -*width:49.969%
> -}
> -.pure-u-md-13-24{
> -width:54.1667%;
> -*width:54.1357%
> -}
> -.pure-u-md-7-12,.pure-u-md-14-24{
> -width:58.3333%;
> -*width:58.3023%
> -}
> -.pure-u-md-3-5{
> -width:60%;
> -*width:59.969%
> -}
> -.pure-u-md-5-8,.pure-u-md-15-24{
> -width:62.5%;
> -*width:62.469%
> -}
> -.pure-u-md-2-3,.pure-u-md-16-24{
> -width:66.6667%;
> -*width:66.6357%
> -}
> -.pure-u-md-17-24{
> -width:70.8333%;
> -*width:70.8023%
> -}
> -.pure-u-md-3-4,.pure-u-md-18-24{
> -width:75%;
> -*width:74.969%
> -}
> -.pure-u-md-19-24{
> -width:79.1667%;
> -*width:79.1357%
> -}
> -.pure-u-md-4-5{
> -width:80%;
> -*width:79.969%
> -}
> -.pure-u-md-5-6,.pure-u-md-20-24{
> -width:83.3333%;
> -*width:83.3023%
> -}
> -.pure-u-md-7-8,.pure-u-md-21-24{
> -width:87.5%;
> -*width:87.469%
> -}
> -.pure-u-md-11-12,.pure-u-md-22-24{
> -width:91.6667%;
> -*width:91.6357%
> -}
> -.pure-u-md-23-24{
> -width:95.8333%;
> -*width:95.8023%
> -}
> -.pure-u-md-1,.pure-u-md-1-1,.pure-u-md-5-5,.pure-u-md-24-24{
> -width:100%
> -}
> -}@media screen and (min-width:64em){
> -.pure-u-lg-1,.pure-u-lg-1-1,.pure-u-lg-1-2,.pure-u-lg-1-3,.pure-u-lg-2-3,.pure-u-lg-1-4,.pure-u-lg-3-4,.pure-u-lg-1-5,.pure-u-lg-2-5,.pure-u-lg-3-5,.pure-u-lg-4-5,.pure-u-lg-5-5,.pure-u-lg-1-6,.pure-u-lg-5-6,.pure-u-lg-1-8,.pure-u-lg-3-8,.pure-u-lg-5-8,.pure-u-lg-7-8,.pure-u-lg-1-12,.pure-u-lg-5-12,.pure-u-lg-7-12,.pure-u-lg-11-12,.pure-u-lg-1-24,.pure-u-lg-2-24,.pure-u-lg-3-24,.pure-u-lg-4-24,.pure-u-lg-5-24,.pure-u-lg-6-24,.pure-u-lg-7-24,.pure-u-lg-8-24,.pure-u-lg-9-24,.pure-u-lg-10-24,.pure-u-lg-11-24,.pure-u-lg-12-24,.pure-u-lg-13-24,.pure-u-lg-14-24,.pure-u-lg-15-24,.pure-u-lg-16-24,.pure-u-lg-17-24,.pure-u-lg-18-24,.pure-u-lg-19-24,.pure-u-lg-20-24,.pure-u-lg-21-24,.pure-u-lg-22-24,.pure-u-lg-23-24,.pure-u-lg-24-24{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-u-lg-1-24{
> -width:4.1667%;
> -*width:4.1357%
> -}
> -.pure-u-lg-1-12,.pure-u-lg-2-24{
> -width:8.3333%;
> -*width:8.3023%
> -}
> -.pure-u-lg-1-8,.pure-u-lg-3-24{
> -width:12.5%;
> -*width:12.469%
> -}
> -.pure-u-lg-1-6,.pure-u-lg-4-24{
> -width:16.6667%;
> -*width:16.6357%
> -}
> -.pure-u-lg-1-5{
> -width:20%;
> -*width:19.969%
> -}
> -.pure-u-lg-5-24{
> -width:20.8333%;
> -*width:20.8023%
> -}
> -.pure-u-lg-1-4,.pure-u-lg-6-24{
> -width:25%;
> -*width:24.969%
> -}
> -.pure-u-lg-7-24{
> -width:29.1667%;
> -*width:29.1357%
> -}
> -.pure-u-lg-1-3,.pure-u-lg-8-24{
> -width:33.3333%;
> -*width:33.3023%
> -}
> -.pure-u-lg-3-8,.pure-u-lg-9-24{
> -width:37.5%;
> -*width:37.469%
> -}
> -.pure-u-lg-2-5{
> -width:40%;
> -*width:39.969%
> -}
> -.pure-u-lg-5-12,.pure-u-lg-10-24{
> -width:41.6667%;
> -*width:41.6357%
> -}
> -.pure-u-lg-11-24{
> -width:45.8333%;
> -*width:45.8023%
> -}
> -.pure-u-lg-1-2,.pure-u-lg-12-24{
> -width:50%;
> -*width:49.969%
> -}
> -.pure-u-lg-13-24{
> -width:54.1667%;
> -*width:54.1357%
> -}
> -.pure-u-lg-7-12,.pure-u-lg-14-24{
> -width:58.3333%;
> -*width:58.3023%
> -}
> -.pure-u-lg-3-5{
> -width:60%;
> -*width:59.969%
> -}
> -.pure-u-lg-5-8,.pure-u-lg-15-24{
> -width:62.5%;
> -*width:62.469%
> -}
> -.pure-u-lg-2-3,.pure-u-lg-16-24{
> -width:66.6667%;
> -*width:66.6357%
> -}
> -.pure-u-lg-17-24{
> -width:70.8333%;
> -*width:70.8023%
> -}
> -.pure-u-lg-3-4,.pure-u-lg-18-24{
> -width:75%;
> -*width:74.969%
> -}
> -.pure-u-lg-19-24{
> -width:79.1667%;
> -*width:79.1357%
> -}
> -.pure-u-lg-4-5{
> -width:80%;
> -*width:79.969%
> -}
> -.pure-u-lg-5-6,.pure-u-lg-20-24{
> -width:83.3333%;
> -*width:83.3023%
> -}
> -.pure-u-lg-7-8,.pure-u-lg-21-24{
> -width:87.5%;
> -*width:87.469%
> -}
> -.pure-u-lg-11-12,.pure-u-lg-22-24{
> -width:91.6667%;
> -*width:91.6357%
> -}
> -.pure-u-lg-23-24{
> -width:95.8333%;
> -*width:95.8023%
> -}
> -.pure-u-lg-1,.pure-u-lg-1-1,.pure-u-lg-5-5,.pure-u-lg-24-24{
> -width:100%
> -}
> -}@media screen and (min-width:80em){
> -.pure-u-xl-1,.pure-u-xl-1-1,.pure-u-xl-1-2,.pure-u-xl-1-3,.pure-u-xl-2-3,.pure-u-xl-1-4,.pure-u-xl-3-4,.pure-u-xl-1-5,.pure-u-xl-2-5,.pure-u-xl-3-5,.pure-u-xl-4-5,.pure-u-xl-5-5,.pure-u-xl-1-6,.pure-u-xl-5-6,.pure-u-xl-1-8,.pure-u-xl-3-8,.pure-u-xl-5-8,.pure-u-xl-7-8,.pure-u-xl-1-12,.pure-u-xl-5-12,.pure-u-xl-7-12,.pure-u-xl-11-12,.pure-u-xl-1-24,.pure-u-xl-2-24,.pure-u-xl-3-24,.pure-u-xl-4-24,.pure-u-xl-5-24,.pure-u-xl-6-24,.pure-u-xl-7-24,.pure-u-xl-8-24,.pure-u-xl-9-24,.pure-u-xl-10-24,.pure-u-xl-11-24,.pure-u-xl-12-24,.pure-u-xl-13-24,.pure-u-xl-14-24,.pure-u-xl-15-24,.pure-u-xl-16-24,.pure-u-xl-17-24,.pure-u-xl-18-24,.pure-u-xl-19-24,.pure-u-xl-20-24,.pure-u-xl-21-24,.pure-u-xl-22-24,.pure-u-xl-23-24,.pure-u-xl-24-24{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-u-xl-1-24{
> -width:4.1667%;
> -*width:4.1357%
> -}
> -.pure-u-xl-1-12,.pure-u-xl-2-24{
> -width:8.3333%;
> -*width:8.3023%
> -}
> -.pure-u-xl-1-8,.pure-u-xl-3-24{
> -width:12.5%;
> -*width:12.469%
> -}
> -.pure-u-xl-1-6,.pure-u-xl-4-24{
> -width:16.6667%;
> -*width:16.6357%
> -}
> -.pure-u-xl-1-5{
> -width:20%;
> -*width:19.969%
> -}
> -.pure-u-xl-5-24{
> -width:20.8333%;
> -*width:20.8023%
> -}
> -.pure-u-xl-1-4,.pure-u-xl-6-24{
> -width:25%;
> -*width:24.969%
> -}
> -.pure-u-xl-7-24{
> -width:29.1667%;
> -*width:29.1357%
> -}
> -.pure-u-xl-1-3,.pure-u-xl-8-24{
> -width:33.3333%;
> -*width:33.3023%
> -}
> -.pure-u-xl-3-8,.pure-u-xl-9-24{
> -width:37.5%;
> -*width:37.469%
> -}
> -.pure-u-xl-2-5{
> -width:40%;
> -*width:39.969%
> -}
> -.pure-u-xl-5-12,.pure-u-xl-10-24{
> -width:41.6667%;
> -*width:41.6357%
> -}
> -.pure-u-xl-11-24{
> -width:45.8333%;
> -*width:45.8023%
> -}
> -.pure-u-xl-1-2,.pure-u-xl-12-24{
> -width:50%;
> -*width:49.969%
> -}
> -.pure-u-xl-13-24{
> -width:54.1667%;
> -*width:54.1357%
> -}
> -.pure-u-xl-7-12,.pure-u-xl-14-24{
> -width:58.3333%;
> -*width:58.3023%
> -}
> -.pure-u-xl-3-5{
> -width:60%;
> -*width:59.969%
> -}
> -.pure-u-xl-5-8,.pure-u-xl-15-24{
> -width:62.5%;
> -*width:62.469%
> -}
> -.pure-u-xl-2-3,.pure-u-xl-16-24{
> -width:66.6667%;
> -*width:66.6357%
> -}
> -.pure-u-xl-17-24{
> -width:70.8333%;
> -*width:70.8023%
> -}
> -.pure-u-xl-3-4,.pure-u-xl-18-24{
> -width:75%;
> -*width:74.969%
> -}
> -.pure-u-xl-19-24{
> -width:79.1667%;
> -*width:79.1357%
> -}
> -.pure-u-xl-4-5{
> -width:80%;
> -*width:79.969%
> -}
> -.pure-u-xl-5-6,.pure-u-xl-20-24{
> -width:83.3333%;
> -*width:83.3023%
> -}
> -.pure-u-xl-7-8,.pure-u-xl-21-24{
> -width:87.5%;
> -*width:87.469%
> -}
> -.pure-u-xl-11-12,.pure-u-xl-22-24{
> -width:91.6667%;
> -*width:91.6357%
> -}
> -.pure-u-xl-23-24{
> -width:95.8333%;
> -*width:95.8023%
> -}
> -.pure-u-xl-1,.pure-u-xl-1-1,.pure-u-xl-5-5,.pure-u-xl-24-24{
> -width:100%
> -}
> -}
> diff --git a/src/packages/fff/fff-web/files/www/public/css/pure-min.css b/src/packages/fff/fff-web/files/www/public/css/pure-min.css
> deleted file mode 100644
> index 1370a60..0000000
> --- a/src/packages/fff/fff-web/files/www/public/css/pure-min.css
> +++ /dev/null
> @@ -1,892 +0,0 @@
> -/*!
> -Pure v0.5.0
> -Copyright 2014 Yahoo! Inc. All rights reserved.
> -Licensed under the BSD License.
> -https://github.com/yui/pure/blob/master/LICENSE.md
> -*/
> -/*!
> -normalize.css v1.1.3 | MIT License | git.io/normalize
> -Copyright (c) Nicolas Gallagher and Jonathan Neal
> -*/
> -/*! normalize.css v1.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{
> -display:block
> -}
> -audio,canvas,video{
> -display:inline-block;
> -*display:inline;
> -*zoom:1
> -}
> -audio:not([controls]){
> -display:none;
> -height:0
> -}
> -[hidden]{
> -display:none
> -}
> -html{
> -font-size:100%;
> --ms-text-size-adjust:100%;
> --webkit-text-size-adjust:100%
> -}
> -html,button,input,select,textarea{
> -font-family:sans-serif
> -}
> -body{
> -margin:0
> -}
> -a:focus{
> -outline:thin dotted
> -}
> -a:active,a:hover{
> -outline:0
> -}
> -h1{
> -font-size:2em;
> -margin:.67em 0
> -}
> -h2{
> -font-size:1.5em;
> -margin:.83em 0
> -}
> -h3{
> -font-size:1.17em;
> -margin:1em 0
> -}
> -h4{
> -font-size:1em;
> -margin:1.33em 0
> -}
> -h5{
> -font-size:.83em;
> -margin:1.67em 0
> -}
> -h6{
> -font-size:.67em;
> -margin:2.33em 0
> -}
> -abbr[title]{
> -border-bottom:1px dotted
> -}
> -b,strong{
> -font-weight:700
> -}
> -blockquote{
> -margin:1em 40px
> -}
> -dfn{
> -font-style:italic
> -}
> -hr{
> --moz-box-sizing:content-box;
> -box-sizing:content-box;
> -height:0
> -}
> -mark{
> -background:#ff0;
> -color:#000
> -}
> -p,pre{
> -margin:1em 0
> -}
> -code,kbd,pre,samp{
> -font-family:monospace,serif;
> -_font-family:'courier new',monospace;
> -font-size:1em
> -}
> -pre{
> -white-space:pre;
> -white-space:pre-wrap;
> -word-wrap:break-word
> -}
> -q{
> -quotes:none
> -}
> -q:before,q:after{
> -content:'';
> -content:none
> -}
> -small{
> -font-size:80%
> -}
> -sub,sup{
> -font-size:75%;
> -line-height:0;
> -position:relative;
> -vertical-align:baseline
> -}
> -sup{
> -top:-.5em
> -}
> -sub{
> -bottom:-.25em
> -}
> -dl,menu,ol,ul{
> -margin:1em 0
> -}
> -dd{
> -margin:0 0 0 40px
> -}
> -menu,ol,ul{
> -padding:0 0 0 40px
> -}
> -nav ul,nav ol{
> -list-style:none;
> -list-style-image:none
> -}
> -img{
> -border:0;
> --ms-interpolation-mode:bicubic
> -}
> -svg:not(:root){
> -overflow:hidden
> -}
> -figure{
> -margin:0
> -}
> -form{
> -margin:0
> -}
> -fieldset{
> -border:1px solid silver;
> -margin:0 2px;
> -padding:.35em .625em .75em
> -}
> -legend{
> -border:0;
> -padding:0;
> -white-space:normal;
> -*margin-left:-7px
> -}
> -button,input,select,textarea{
> -font-size:100%;
> -margin:0;
> -vertical-align:baseline;
> -*vertical-align:middle
> -}
> -button,input{
> -line-height:normal
> -}
> -button,select{
> -text-transform:none
> -}
> -button,html input[type=button],input[type=reset],input[type=submit]{
> --webkit-appearance:button;
> -cursor:pointer;
> -*overflow:visible
> -}
> -button[disabled],html input[disabled]{
> -cursor:default
> -}
> -input[type=checkbox],input[type=radio]{
> -box-sizing:border-box;
> -padding:0;
> -*height:13px;
> -*width:13px
> -}
> -input[type=search]{
> --webkit-appearance:textfield;
> --moz-box-sizing:content-box;
> --webkit-box-sizing:content-box;
> -box-sizing:content-box
> -}
> -input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{
> --webkit-appearance:none
> -}
> -button::-moz-focus-inner,input::-moz-focus-inner{
> -border:0;
> -padding:0
> -}
> -textarea{
> -overflow:auto;
> -vertical-align:top
> -}
> -table{
> -border-collapse:collapse;
> -border-spacing:0
> -}
> -[hidden]{
> -display:none!important
> -}
> -.pure-img{
> -max-width:100%;
> -height:auto;
> -display:block
> -}
> -.pure-g{
> -letter-spacing:-.31em;
> -*letter-spacing:normal;
> -*word-spacing:-.43em;
> -text-rendering:optimizespeed;
> -font-family:FreeSans,Arimo,"Droid Sans",Helvetica,Arial,sans-serif;
> -display:-webkit-flex;
> --webkit-flex-flow:row wrap;
> -display:-ms-flexbox;
> --ms-flex-flow:row wrap
> -}
> -.opera-only :-o-prefocus,.pure-g{
> -word-spacing:-.43em
> -}
> -.pure-u{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-g [class *="pure-u"]{
> -font-family:sans-serif
> -}
> -.pure-u-1,.pure-u-1-1,.pure-u-1-2,.pure-u-1-3,.pure-u-2-3,.pure-u-1-4,.pure-u-3-4,.pure-u-1-5,.pure-u-2-5,.pure-u-3-5,.pure-u-4-5,.pure-u-5-5,.pure-u-1-6,.pure-u-5-6,.pure-u-1-8,.pure-u-3-8,.pure-u-5-8,.pure-u-7-8,.pure-u-1-12,.pure-u-5-12,.pure-u-7-12,.pure-u-11-12,.pure-u-1-24,.pure-u-2-24,.pure-u-3-24,.pure-u-4-24,.pure-u-5-24,.pure-u-6-24,.pure-u-7-24,.pure-u-8-24,.pure-u-9-24,.pure-u-10-24,.pure-u-11-24,.pure-u-12-24,.pure-u-13-24,.pure-u-14-24,.pure-u-15-24,.pure-u-16-24,.pure-u-17-24,.pure-u-18-24,.pure-u-19-24,.pure-u-20-24,.pure-u-21-24,.pure-u-22-24,.pure-u-23-24,.pure-u-24-24{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-u-1-24{
> -width:4.1667%;
> -*width:4.1357%
> -}
> -.pure-u-1-12,.pure-u-2-24{
> -width:8.3333%;
> -*width:8.3023%
> -}
> -.pure-u-1-8,.pure-u-3-24{
> -width:12.5%;
> -*width:12.469%
> -}
> -.pure-u-1-6,.pure-u-4-24{
> -width:16.6667%;
> -*width:16.6357%
> -}
> -.pure-u-1-5{
> -width:20%;
> -*width:19.969%
> -}
> -.pure-u-5-24{
> -width:20.8333%;
> -*width:20.8023%
> -}
> -.pure-u-1-4,.pure-u-6-24{
> -width:25%;
> -*width:24.969%
> -}
> -.pure-u-7-24{
> -width:29.1667%;
> -*width:29.1357%
> -}
> -.pure-u-1-3,.pure-u-8-24{
> -width:33.3333%;
> -*width:33.3023%
> -}
> -.pure-u-3-8,.pure-u-9-24{
> -width:37.5%;
> -*width:37.469%
> -}
> -.pure-u-2-5{
> -width:40%;
> -*width:39.969%
> -}
> -.pure-u-5-12,.pure-u-10-24{
> -width:41.6667%;
> -*width:41.6357%
> -}
> -.pure-u-11-24{
> -width:45.8333%;
> -*width:45.8023%
> -}
> -.pure-u-1-2,.pure-u-12-24{
> -width:50%;
> -*width:49.969%
> -}
> -.pure-u-13-24{
> -width:54.1667%;
> -*width:54.1357%
> -}
> -.pure-u-7-12,.pure-u-14-24{
> -width:58.3333%;
> -*width:58.3023%
> -}
> -.pure-u-3-5{
> -width:60%;
> -*width:59.969%
> -}
> -.pure-u-5-8,.pure-u-15-24{
> -width:62.5%;
> -*width:62.469%
> -}
> -.pure-u-2-3,.pure-u-16-24{
> -width:66.6667%;
> -*width:66.6357%
> -}
> -.pure-u-17-24{
> -width:70.8333%;
> -*width:70.8023%
> -}
> -.pure-u-3-4,.pure-u-18-24{
> -width:75%;
> -*width:74.969%
> -}
> -.pure-u-19-24{
> -width:79.1667%;
> -*width:79.1357%
> -}
> -.pure-u-4-5{
> -width:80%;
> -*width:79.969%
> -}
> -.pure-u-5-6,.pure-u-20-24{
> -width:83.3333%;
> -*width:83.3023%
> -}
> -.pure-u-7-8,.pure-u-21-24{
> -width:87.5%;
> -*width:87.469%
> -}
> -.pure-u-11-12,.pure-u-22-24{
> -width:91.6667%;
> -*width:91.6357%
> -}
> -.pure-u-23-24{
> -width:95.8333%;
> -*width:95.8023%
> -}
> -.pure-u-1,.pure-u-1-1,.pure-u-5-5,.pure-u-24-24{
> -width:100%
> -}
> -.pure-button{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -line-height:normal;
> -white-space:nowrap;
> -vertical-align:baseline;
> -text-align:center;
> -cursor:pointer;
> --webkit-user-drag:none;
> --webkit-user-select:none;
> --moz-user-select:none;
> --ms-user-select:none;
> -user-select:none
> -}
> -.pure-button::-moz-focus-inner{
> -padding:0;
> -border:0
> -}
> -.pure-button{
> -font-family:inherit;
> -font-size:100%;
> -*font-size:90%;
> -*overflow:visible;
> -padding:.5em 1em;
> -color:#444;
> -color:rgba(0,0,0,.8);
> -*color:#444;
> -border:1px solid #999;
> -border:0 rgba(0,0,0,0);
> -background-color:#E6E6E6;
> -text-decoration:none;
> -border-radius:2px
> -}
> -.pure-button-hover,.pure-button:hover,.pure-button:focus{
> -filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#1a000000', GradientType=0);
> -background-image:-webkit-gradient(linear,0 0,0 100%,from(transparent),color-stop(40%,rgba(0,0,0,.05)),to(rgba(0,0,0,.1)));
> -background-image:-webkit-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));
> -background-image:-moz-linear-gradient(top,rgba(0,0,0,.05) 0,rgba(0,0,0,.1));
> -background-image:-o-linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1));
> -background-image:linear-gradient(transparent,rgba(0,0,0,.05) 40%,rgba(0,0,0,.1))
> -}
> -.pure-button:focus{
> -outline:0
> -}
> -.pure-button-active,.pure-button:active{
> -box-shadow:0 0 0 1px rgba(0,0,0,.15) inset,0 0 6px rgba(0,0,0,.2) inset
> -}
> -.pure-button[disabled],.pure-button-disabled,.pure-button-disabled:hover,.pure-button-disabled:focus,.pure-button-disabled:active{
> -border:0;
> -background-image:none;
> -filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);
> -filter:alpha(opacity=40);
> --khtml-opacity:.4;
> --moz-opacity:.4;
> -opacity:.4;
> -cursor:not-allowed;
> -box-shadow:none
> -}
> -.pure-button-hidden{
> -display:none
> -}
> -.pure-button::-moz-focus-inner{
> -padding:0;
> -border:0
> -}
> -.pure-button-primary,.pure-button-selected,a.pure-button-primary,a.pure-button-selected{
> -background-color:#0078e7;
> -color:#fff
> -}
> -.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form select,.pure-form textarea{
> -padding:.5em .6em;
> -display:inline-block;
> -border:1px solid #ccc;
> -box-shadow:inset 0 1px 3px #ddd;
> -border-radius:4px;
> --webkit-box-sizing:border-box;
> --moz-box-sizing:border-box;
> -box-sizing:border-box
> -}
> -.pure-form input:not([type]){
> -padding:.5em .6em;
> -display:inline-block;
> -border:1px solid #ccc;
> -box-shadow:inset 0 1px 3px #ddd;
> -border-radius:4px;
> --webkit-box-sizing:border-box;
> --moz-box-sizing:border-box;
> -box-sizing:border-box
> -}
> -.pure-form input[type=color]{
> -padding:.2em .5em
> -}
> -.pure-form input[type=text]:focus,.pure-form input[type=password]:focus,.pure-form input[type=email]:focus,.pure-form input[type=url]:focus,.pure-form input[type=date]:focus,.pure-form input[type=month]:focus,.pure-form input[type=time]:focus,.pure-form input[type=datetime]:focus,.pure-form input[type=datetime-local]:focus,.pure-form input[type=week]:focus,.pure-form input[type=number]:focus,.pure-form input[type=search]:focus,.pure-form input[type=tel]:focus,.pure-form input[type=color]:focus,.pure-form select:focus,.pure-form textarea:focus{
> -outline:0;
> -outline:thin dotted \9;
> -border-color:#129FEA
> -}
> -.pure-form input:not([type]):focus{
> -outline:0;
> -outline:thin dotted \9;
> -border-color:#129FEA
> -}
> -.pure-form input[type=file]:focus,.pure-form input[type=radio]:focus,.pure-form input[type=checkbox]:focus{
> -outline:thin dotted #333;
> -outline:1px auto #129FEA
> -}
> -.pure-form .pure-checkbox,.pure-form .pure-radio{
> -margin:.5em 0;
> -display:block
> -}
> -.pure-form input[type=text][disabled],.pure-form input[type=password][disabled],.pure-form input[type=email][disabled],.pure-form input[type=url][disabled],.pure-form input[type=date][disabled],.pure-form input[type=month][disabled],.pure-form input[type=time][disabled],.pure-form input[type=datetime][disabled],.pure-form input[type=datetime-local][disabled],.pure-form input[type=week][disabled],.pure-form input[type=number][disabled],.pure-form input[type=search][disabled],.pure-form input[type=tel][disabled],.pure-form input[type=color][disabled],.pure-form select[disabled],.pure-form textarea[disabled]{
> -cursor:not-allowed;
> -background-color:#eaeded;
> -color:#cad2d3
> -}
> -.pure-form input:not([type])[disabled]{
> -cursor:not-allowed;
> -background-color:#eaeded;
> -color:#cad2d3
> -}
> -.pure-form input[readonly],.pure-form select[readonly],.pure-form textarea[readonly]{
> -background:#eee;
> -color:#777;
> -border-color:#ccc
> -}
> -.pure-form input:focus:invalid,.pure-form textarea:focus:invalid,.pure-form select:focus:invalid{
> -color:#b94a48;
> -border-color:#ee5f5b
> -}
> -.pure-form input:focus:invalid:focus,.pure-form textarea:focus:invalid:focus,.pure-form select:focus:invalid:focus{
> -border-color:#e9322d
> -}
> -.pure-form input[type=file]:focus:invalid:focus,.pure-form input[type=radio]:focus:invalid:focus,.pure-form input[type=checkbox]:focus:invalid:focus{
> -outline-color:#e9322d
> -}
> -.pure-form select{
> -border:1px solid #ccc;
> -background-color:#fff
> -}
> -.pure-form select[multiple]{
> -height:auto
> -}
> -.pure-form label{
> -margin:.5em 0 .2em
> -}
> -.pure-form fieldset{
> -margin:0;
> -padding:.35em 0 .75em;
> -border:0
> -}
> -.pure-form legend{
> -display:block;
> -width:100%;
> -padding:.3em 0;
> -margin-bottom:.3em;
> -color:#333;
> -border-bottom:1px solid #e5e5e5
> -}
> -.pure-form-stacked input[type=text],.pure-form-stacked input[type=password],.pure-form-stacked input[type=email],.pure-form-stacked input[type=url],.pure-form-stacked input[type=date],.pure-form-stacked input[type=month],.pure-form-stacked input[type=time],.pure-form-stacked input[type=datetime],.pure-form-stacked input[type=datetime-local],.pure-form-stacked input[type=week],.pure-form-stacked input[type=number],.pure-form-stacked input[type=search],.pure-form-stacked input[type=tel],.pure-form-stacked input[type=color],.pure-form-stacked select,.pure-form-stacked label,.pure-form-stacked textarea{
> -display:block;
> -margin:.25em 0
> -}
> -.pure-form-stacked input:not([type]){
> -display:block;
> -margin:.25em 0
> -}
> -.pure-form-aligned input,.pure-form-aligned textarea,.pure-form-aligned select,.pure-form-aligned .pure-help-inline,.pure-form-message-inline{
> -display:inline-block;
> -*display:inline;
> -*zoom:1;
> -vertical-align:middle
> -}
> -.pure-form-aligned textarea{
> -vertical-align:top
> -}
> -.pure-form-aligned .pure-control-group{
> -margin-bottom:.5em
> -}
> -.pure-form-aligned .pure-control-group label{
> -text-align:right;
> -display:inline-block;
> -vertical-align:middle;
> -width:10em;
> -margin:0 1em 0 0
> -}
> -.pure-form-aligned .pure-controls{
> -margin:1.5em 0 0 10em
> -}
> -.pure-form input.pure-input-rounded,.pure-form .pure-input-rounded{
> -border-radius:2em;
> -padding:.5em 1em
> -}
> -.pure-form .pure-group fieldset{
> -margin-bottom:10px
> -}
> -.pure-form .pure-group input{
> -display:block;
> -padding:10px;
> -margin:0;
> -border-radius:0;
> -position:relative;
> -top:-1px
> -}
> -.pure-form .pure-group input:focus{
> -z-index:2
> -}
> -.pure-form .pure-group input:first-child{
> -top:1px;
> -border-radius:4px 4px 0 0
> -}
> -.pure-form .pure-group input:last-child{
> -top:-2px;
> -border-radius:0 0 4px 4px
> -}
> -.pure-form .pure-group button{
> -margin:.35em 0
> -}
> -.pure-form .pure-input-1{
> -width:100%
> -}
> -.pure-form .pure-input-2-3{
> -width:66%
> -}
> -.pure-form .pure-input-1-2{
> -width:50%
> -}
> -.pure-form .pure-input-1-3{
> -width:33%
> -}
> -.pure-form .pure-input-1-4{
> -width:25%
> -}
> -.pure-form .pure-help-inline,.pure-form-message-inline{
> -display:inline-block;
> -padding-left:.3em;
> -color:#666;
> -vertical-align:middle;
> -font-size:.875em
> -}
> -.pure-form-message{
> -display:block;
> -color:#666;
> -font-size:.875em
> -}
> - at media only screen and (max-width :480px){
> -.pure-form button[type=submit]{
> -margin:.7em 0 0
> -}
> -.pure-form input:not([type]),.pure-form input[type=text],.pure-form input[type=password],.pure-form input[type=email],.pure-form input[type=url],.pure-form input[type=date],.pure-form input[type=month],.pure-form input[type=time],.pure-form input[type=datetime],.pure-form input[type=datetime-local],.pure-form input[type=week],.pure-form input[type=number],.pure-form input[type=search],.pure-form input[type=tel],.pure-form input[type=color],.pure-form label{
> -margin-bottom:.3em;
> -display:block
> -}
> -.pure-group input:not([type]),.pure-group input[type=text],.pure-group input[type=password],.pure-group input[type=email],.pure-group input[type=url],.pure-group input[type=date],.pure-group input[type=month],.pure-group input[type=time],.pure-group input[type=datetime],.pure-group input[type=datetime-local],.pure-group input[type=week],.pure-group input[type=number],.pure-group input[type=search],.pure-group input[type=tel],.pure-group input[type=color]{
> -margin-bottom:0
> -}
> -.pure-form-aligned .pure-control-group label{
> -margin-bottom:.3em;
> -text-align:left;
> -display:block;
> -width:100%
> -}
> -.pure-form-aligned .pure-controls{
> -margin:1.5em 0 0
> -}
> -.pure-form .pure-help-inline,.pure-form-message-inline,.pure-form-message{
> -display:block;
> -font-size:.75em;
> -padding:.2em 0 .8em
> -}
> -
> -}
> -.pure-menu ul{
> -position:absolute;
> -visibility:hidden
> -}
> -.pure-menu.pure-menu-open{
> -visibility:visible;
> -z-index:2;
> -width:100%
> -}
> -.pure-menu ul{
> -left:-10000px;
> -list-style:none;
> -margin:0;
> -padding:0;
> -top:-10000px;
> -z-index:1
> -}
> -.pure-menu>ul{
> -position:relative
> -}
> -.pure-menu-open>ul{
> -left:0;
> -top:0;
> -visibility:visible
> -}
> -.pure-menu-open>ul:focus{
> -outline:0
> -}
> -.pure-menu li{
> -position:relative
> -}
> -.pure-menu a,.pure-menu .pure-menu-heading{
> -display:block;
> -color:inherit;
> -line-height:1.5em;
> -padding:5px 20px;
> -text-decoration:none;
> -white-space:nowrap
> -}
> -.pure-menu.pure-menu-horizontal>.pure-menu-heading{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -margin:0;
> -vertical-align:middle
> -}
> -.pure-menu.pure-menu-horizontal>ul{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -vertical-align:middle
> -}
> -.pure-menu li a{
> -padding:5px 20px
> -}
> -.pure-menu-can-have-children>.pure-menu-label:after{
> -content:'\25B8';
> -float:right;
> -font-family:'Lucida Grande','Lucida Sans Unicode','DejaVu Sans',sans-serif;
> -margin-right:-20px;
> -margin-top:-1px
> -}
> -.pure-menu-can-have-children>.pure-menu-label{
> -padding-right:30px
> -}
> -.pure-menu-separator{
> -background-color:#dfdfdf;
> -display:block;
> -height:1px;
> -font-size:0;
> -margin:7px 2px;
> -overflow:hidden
> -}
> -.pure-menu-hidden{
> -display:none
> -}
> -.pure-menu-fixed{
> -position:fixed;
> -top:0;
> -left:0;
> -width:100%
> -}
> -.pure-menu-horizontal li{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -vertical-align:middle
> -}
> -.pure-menu-horizontal li li{
> -display:block
> -}
> -.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label:after{
> -content:"\25BE"
> -}
> -.pure-menu-horizontal>.pure-menu-children>.pure-menu-can-have-children>.pure-menu-label{
> -padding-right:30px
> -}
> -.pure-menu-horizontal li.pure-menu-separator{
> -height:50%;
> -width:1px;
> -margin:0 7px
> -}
> -.pure-menu-horizontal li li.pure-menu-separator{
> -height:1px;
> -width:auto;
> -margin:7px 2px
> -}
> -.pure-menu.pure-menu-open,.pure-menu.pure-menu-horizontal li .pure-menu-children{
> -background:#fff;
> -border:1px solid #b7b7b7
> -}
> -.pure-menu.pure-menu-horizontal,.pure-menu.pure-menu-horizontal .pure-menu-heading{
> -border:0
> -}
> -.pure-menu a{
> -border:1px solid transparent;
> -border-left:0;
> -border-right:0
> -}
> -.pure-menu a,.pure-menu .pure-menu-can-have-children>li:after{
> -color:#777
> -}
> -.pure-menu .pure-menu-can-have-children>li:hover:after{
> -color:#fff
> -}
> -.pure-menu .pure-menu-open{
> -background:#dedede
> -}
> -.pure-menu li a:hover,.pure-menu li a:focus{
> -background:#eee
> -}
> -.pure-menu li.pure-menu-disabled a:hover,.pure-menu li.pure-menu-disabled a:focus{
> -background:#fff;
> -color:#bfbfbf
> -}
> -.pure-menu .pure-menu-disabled>a{
> -background-image:none;
> -border-color:transparent;
> -cursor:default
> -}
> -.pure-menu .pure-menu-disabled>a,.pure-menu .pure-menu-can-have-children.pure-menu-disabled>a:after{
> -color:#bfbfbf
> -}
> -.pure-menu .pure-menu-heading{
> -color:#565d64;
> -text-transform:uppercase;
> -font-size:90%;
> -margin-top:.5em;
> -border-bottom-width:1px;
> -border-bottom-style:solid;
> -border-bottom-color:#dfdfdf
> -}
> -.pure-menu .pure-menu-selected a{
> -color:#000
> -}
> -.pure-menu.pure-menu-open.pure-menu-fixed{
> -border:0;
> -border-bottom:1px solid #b7b7b7
> -}
> -.pure-paginator{
> -letter-spacing:-.31em;
> -*letter-spacing:normal;
> -*word-spacing:-.43em;
> -text-rendering:optimizespeed;
> -list-style:none;
> -margin:0;
> -padding:0
> -}
> -.opera-only :-o-prefocus,.pure-paginator{
> -word-spacing:-.43em
> -}
> -.pure-paginator li{
> -display:inline-block;
> -*display:inline;
> -zoom:1;
> -letter-spacing:normal;
> -word-spacing:normal;
> -vertical-align:top;
> -text-rendering:auto
> -}
> -.pure-paginator .pure-button{
> -border-radius:0;
> -padding:.8em 1.4em;
> -vertical-align:top;
> -height:1.1em
> -}
> -.pure-paginator .pure-button:focus,.pure-paginator .pure-button:active{
> -outline-style:none
> -}
> -.pure-paginator .prev,.pure-paginator .next{
> -color:#C0C1C3;
> -text-shadow:0 -1px 0 rgba(0,0,0,.45)
> -}
> -.pure-paginator .prev{
> -border-radius:2px 0 0 2px
> -}
> -.pure-paginator .next{
> -border-radius:0 2px 2px 0
> -}
> - at media (max-width:480px){
> -.pure-menu-horizontal{
> -width:100%
> -}
> -.pure-menu-children li{
> -display:block;
> -border-bottom:1px solid #000
> -}
> -
> -}
> -.pure-table{
> -border-collapse:collapse;
> -border-spacing:0;
> -empty-cells:show;
> -border:1px solid #cbcbcb
> -}
> -.pure-table caption{
> -color:#000;
> -font:italic 85%/1 arial,sans-serif;
> -padding:1em 0;
> -text-align:center
> -}
> -.pure-table td,.pure-table th{
> -border-left:1px solid #cbcbcb;
> -border-width:0 0 0 1px;
> -font-size:inherit;
> -margin:0;
> -overflow:visible;
> -padding:.5em 1em
> -}
> -.pure-table td:first-child,.pure-table th:first-child{
> -border-left-width:0
> -}
> -.pure-table thead{
> -background:#e0e0e0;
> -color:#000;
> -text-align:left;
> -vertical-align:bottom
> -}
> -.pure-table td{
> -background-color:transparent
> -}
> -.pure-table-odd td{
> -background-color:#f2f2f2
> -}
> -.pure-table-striped tr:nth-child(2n-1) td{
> -background-color:#f2f2f2
> -}
> -.pure-table-bordered td{
> -border-bottom:1px solid #cbcbcb
> -}
> -.pure-table-bordered tbody>tr:last-child td,.pure-table-horizontal tbody>tr:last-child td{
> -border-bottom-width:0
> -}
> -.pure-table-horizontal td,.pure-table-horizontal th{
> -border-width:0 0 1px;
> -border-bottom:1px solid #cbcbcb
> -}
> -.pure-table-horizontal tbody>tr:last-child td{
> -border-bottom-width:0
> -}
> diff --git a/src/packages/fff/fff-web/files/www/public/css/side-menu.css b/src/packages/fff/fff-web/files/www/public/css/side-menu.css
> deleted file mode 100644
> index bbe083e..0000000
> --- a/src/packages/fff/fff-web/files/www/public/css/side-menu.css
> +++ /dev/null
> @@ -1,276 +0,0 @@
> -body {
> -    /* color: #777; */
> -}
> -
> -.pure-img-responsive {
> -    max-width: 100%;
> -    height: auto;
> -}
> -
> -/*
> -Add transition to containers so they can push in and out.
> -*/
> -#layout,
> -#menu,
> -.menu-link {
> -    -webkit-transition: all 0.2s ease-out;
> -    -moz-transition: all 0.2s ease-out;
> -    -ms-transition: all 0.2s ease-out;
> -    -o-transition: all 0.2s ease-out;
> -    transition: all 0.2s ease-out;
> -}
> -
> -/*
> -This is the parent `<div>` that contains the menu and the content area.
> -*/
> -#layout {
> -    position: relative;
> -    padding-left: 0;
> -}
> -    #layout.active {
> -        position: relative;
> -        left: 200px;
> -    }
> -        #layout.active #menu {
> -            left: 200px;
> -            width: 200px;
> -        }
> -
> -        #layout.active .menu-link {
> -            left: 200px;
> -        }
> -/*
> -The content `<div>` is where all your content goes.
> -*/
> -.content {
> -    margin: 0 auto;
> -    padding: 0 2em;
> -    max-width: 800px;
> -    margin-bottom: 50px;
> -    line-height: 1.6em;
> -	color: #444;
> -}
> -
> -.header {
> -     margin: 0;
> -     color: #333;
> -     text-align: center;
> -     padding: 2.5em 2em 0;
> -     border-bottom: 1px solid #eee;
> - }
> -    .header h1 {
> -        margin: 0.2em 0;
> -        font-size: 3em;
> -        font-weight: 300;
> -    }
> -     .header h2 {
> -        font-weight: 300;
> -        color: #ccc;
> -        padding: 0;
> -        margin-top: 0;
> -    }
> -
> -.content-subhead {
> -    margin: 50px 0 20px 0;
> -    font-weight: 300;
> -    color: #888;
> -}
> -
> -#inout {
> -padding: 1em;
> -}
> -.blockhead {
> -	display: block;
> -	height: 1em;
> -}
> -
> -.wanmarker {
> -	background: #77c;
> -	padding: 0.25em;
> -    color: #fff;
> -}
> -
> -.lanmarker {
> -	background: #cc7;
> -	padding: 0.25em;
> -    color: #fff;
> -}
> -
> -.wlanmarker {
> -	background: #7c7;
> -	padding: 0.25em;
> -    color: #fff;
> -}
> -
> -.ffmarker {
> -    background: #ffc12e;
> -    padding: 0.25em;
> -    color: #fff;
> -}
> -
> -.infotext {
> -	font-size: 0.8em;
> -	padding-right: 1em;
> -}
> -
> -/*
> -The `#menu` `<div>` is the parent `<div>` that contains the `.pure-menu` that
> -appears on the left side of the page.
> -*/
> -
> -#menu {
> -    margin-left: -200px; /* "#menu" width */
> -    width: 200px;
> -    position: fixed;
> -    top: 0;
> -    left: 0;
> -    bottom: 0;
> -    z-index: 1000; /* so the menu or its navicon stays above all content */
> -    background: #191818;
> -    overflow-y: auto;
> -    -webkit-overflow-scrolling: touch;
> -}
> -    /*
> -    All anchors inside the menu should be styled like this.
> -    */
> -    #menu a {
> -        color: #aaa;
> -        border: none;
> -        padding: 0.6em 0 0.6em 0.6em;
> -    }
> -
> -    /*
> -    Remove all background/borders, since we are applying them to #menu.
> -    */
> -     #menu .pure-menu,
> -     #menu .pure-menu ul {
> -        border: none;
> -        background: transparent;
> -    }
> -
> -    /*
> -    Add that light border to separate items into groups.
> -    */
> -    #menu .pure-menu ul,
> -    #menu .pure-menu .menu-item-divided {
> -        border-top: 1px solid #333;
> -    }
> -        /*
> -        Change color of the anchor links on hover/focus.
> -        */
> -        #menu .pure-menu li a:hover,
> -        #menu .pure-menu li a:focus {
> -            background: #dc0067;
> -			color: #ffffff;
> -        }
> -
> -    /*
> -    This styles the selected menu item `<li>`.
> -    */
> -	
> -	#menu .pure-menu-selected {
> -        background: #ffc12e;
> -		color: #fff;
> -    }
> -        /*
> -        This styles a link within a selected menu item `<li>`.
> -        */
> -        #menu .pure-menu-selected a {
> -            color: #fff;
> -        }
> -
> -    /*
> -    This styles the menu heading.
> -    */
> -    #menu .pure-menu-heading {
> -        font-size: 110%;
> -        color: #fff;
> -        margin: 0;
> -    }
> -
> -/* -- Dynamic Button For Responsive Menu -------------------------------------*/
> -
> -/*
> -The button to open/close the Menu is custom-made and not part of Pure. Here's
> -how it works:
> -*/
> -
> -/*
> -`.menu-link` represents the responsive menu toggle that shows/hides on
> -small screens.
> -*/
> -.menu-link {
> -    position: fixed;
> -    display: block; /* show this only on small screens */
> -    top: 0;
> -    left: 0; /* "#menu width" */
> -    background: #000;
> -    background: rgba(0,0,0,0.7);
> -    font-size: 10px; /* change this value to increase/decrease button size */
> -    z-index: 10;
> -    width: 2em;
> -    height: auto;
> -    padding: 2.1em 1.6em;
> -}
> -
> -    .menu-link:hover,
> -    .menu-link:focus {
> -        background: #000;
> -    }
> -
> -    .menu-link span {
> -        position: relative;
> -        display: block;
> -    }
> -
> -    .menu-link span,
> -    .menu-link span:before,
> -    .menu-link span:after {
> -        background-color: #fff;
> -        width: 100%;
> -        height: 0.2em;
> -    }
> -
> -        .menu-link span:before,
> -        .menu-link span:after {
> -            position: absolute;
> -            margin-top: -0.6em;
> -            content: " ";
> -        }
> -
> -        .menu-link span:after {
> -            margin-top: 0.6em;
> -        }
> -
> -
> -/* -- Responsive Styles (Media Queries) ------------------------------------- */
> -
> -/*
> -Hides the menu at `48em`, but modify this based on your app's needs.
> -*/
> - at media (min-width: 48em) {
> -
> -    .header,
> -    .content {
> -        padding-left: 2em;
> -        padding-right: 2em;
> -    }
> -
> -    #layout {
> -        padding-left: 200px; /* left col width "#menu" */
> -        left: 0;
> -    }
> -    #menu {
> -        left: 200px;
> -    }
> -
> -    .menu-link {
> -        position: fixed;
> -        left: 200px;
> -        display: none;
> -    }
> -
> -    #layout.active .menu-link {
> -        left: 200px;
> -    }
> -}
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-web/files/www/public/css/style.css b/src/packages/fff/fff-web/files/www/public/css/style.css
> deleted file mode 100644
> index a194087..0000000
> --- a/src/packages/fff/fff-web/files/www/public/css/style.css
> +++ /dev/null
> @@ -1,78 +0,0 @@
> -* {
> -	-webkit-box-sizing: border-box;
> -	-moz-box-sizing: border-box;
> -	box-sizing: border-box;
> -}
> -
> -body {
> -	line-height: 1.7em;
> -	color: #7f8c8d;
> -	font-size: 13px;
> -}
> -
> -h1,
> -h2,
> -h3,
> -h4,
> -h5,
> -h6,
> -label {
> -	color: #34495e;
> -}
> -
> -.pure-img-responsive {
> -	max-width: 100%;
> -	height: auto;
> -}
> -
> -.pure-button {
> -	background-color: #1f8dd6;
> -	color: white;
> -	padding: 0.5em 2em;
> -	border-radius: 5px;
> -}
> -
> -a.pure-button-primary {
> -	background: white;
> -	color: #1f8dd6;
> -	border-radius: 5px;
> -	font-size: 120%;
> -}
> -
> -.home-menu {
> -	padding: 0.5em;
> -	text-align: center;
> -	box-shadow: 0 1px 1px rgba(0,0,0, 0.10);
> -}
> -
> -.home-menu.pure-menu-open {
> -	background: #2d3e50;
> -}
> -
> -.home-menu .pure-menu-heading {
> -	color: white;
> -	font-weight: 400;
> -	font-size: 120%;
> -}
> -
> -.home-menu .pure-menu-selected a {
> -	color: white;
> -}
> -
> -.home-menu a {
> -	color: #6FBEF3;
> -}
> -
> -.home-menu li a:hover,
> -.home-menu li a:focus {
> -	background: none;
> -	color: #AECFE5;
> -}
> -
> -.home-menu {
> -	text-align: left;
> -}
> -
> -.home-menu ul {
> -	float: right;
> -}
> diff --git a/src/packages/fff/fff-web/files/www/public/freifunk.svg b/src/packages/fff/fff-web/files/www/public/freifunk.svg
> new file mode 120000
> index 0000000..1f783ad
> --- /dev/null
> +++ b/src/packages/fff/fff-web/files/www/public/freifunk.svg
> @@ -0,0 +1 @@
> +../ssl/freifunk.svg
> \ No newline at end of file
> diff --git a/src/packages/fff/fff-web/files/www/public/index.html b/src/packages/fff/fff-web/files/www/public/index.html
> index 2278278..c09da1d 100644
> --- a/src/packages/fff/fff-web/files/www/public/index.html
> +++ b/src/packages/fff/fff-web/files/www/public/index.html
> @@ -1,13 +1,13 @@
>  <html>
>  <head>
>  	<meta charset="utf-8"/>
> -	<meta http-equiv="refresh" content="0; URL=/cgi-bin/status">
> +	<meta http-equiv="refresh" content="0; URL=/cgi-bin/status.html">
>  	<meta http-equiv="cache-control" content="no-cache">
>  	<meta http-equiv="expires" content="0">
>  	<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT">
>  	<meta http-equiv="pragma" content="no-cache">
>  </head>
>  <body>
> -	<a href="/cgi-bin/status">Redirecting...</a>
> +	<a href="/cgi-bin/status.html">Redirecting...</a>
>  </body>
>  </html>
> diff --git a/src/packages/fff/fff-web/files/www/public/style.css b/src/packages/fff/fff-web/files/www/public/style.css
> new file mode 120000
> index 0000000..b862933
> --- /dev/null
> +++ b/src/packages/fff/fff-web/files/www/public/style.css
> @@ -0,0 +1 @@
> +../ssl/style.css
> \ No newline at end of file
> -- 
> 2.7.2
> 

-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 473 bytes
Beschreibung: This is a digitally signed message part
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160314/3df3f601/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev