From b328c1e235cd2c89e0d5699d1c0aa72937603275 Mon Sep 17 00:00:00 2001 From: Nicolas Manceau Date: Thu, 13 Nov 2014 15:39:17 +0100 Subject: [PATCH 1/2] You can now monitored a list of server by adding them in the esm.config.json. It work by ssh, so you must have copy the ssh public key (ssh-copy-id) for the root user on servers --- esm.config.json | 5 + index.php | 71 +- js/esm.js | 45 +- libs/Utils/Config.class.php | 1 - libs/Utils/Misc.class.php | 40 +- libs/Utils/changeServer.php | 18 + libs/cpu.php | 6 +- libs/disk.php | 12 +- libs/last_login.php | 4 +- libs/load_average.php | 6 +- libs/memory.php | 6 +- libs/network.php | 15 +- libs/ping.php | 4 +- libs/services.php | 17 +- libs/swap.php | 6 +- libs/system.php | 20 +- web/css/frontend.css | 239 +++++- web/css/utilities.css | 1406 ++++++++++++++++++++++++++++++++++- 18 files changed, 1826 insertions(+), 95 deletions(-) create mode 100644 libs/Utils/changeServer.php diff --git a/esm.config.json b/esm.config.json index b65412c..e92c61a 100644 --- a/esm.config.json +++ b/esm.config.json @@ -8,6 +8,11 @@ "disk": { "show_tmpfs": false }, + "servers": { + "hosts": [ + "localhost" + ] + }, "ping": { "hosts": [ "facebook.com", diff --git a/index.php b/index.php index 6220faa..7558db5 100644 --- a/index.php +++ b/index.php @@ -1,15 +1,15 @@ checkUpdate(); + +require 'libs/Utils/changeServer.php'; +$config = new Config(); +$update = $config->checkUpdate(); ?> - get('esm:auto_refresh') > 0): ?> - + get('esm:auto_refresh') > 0): ?> + eZ Server Monitor - <?php echo Misc::getHostname(); ?> @@ -45,11 +45,18 @@
eSM - eZ Server Monitor - vget('esm:version'); ?> + eZ Server Monitor - vget('esm:version'); ?>
+
+ +
+
- - + +
@@ -175,31 +182,6 @@ - -
-
-

Network usage

-
    -
  • -
-
- -
- - - - - - - - - - -
InterfaceIPReceiveTransmit
-
-
- -
@@ -357,6 +339,29 @@
+ +
+
+

Network usage

+
    +
  • +
+
+ +
+ + + + + + + + + + +
InterfaceIPReceiveTransmit
+
+
diff --git a/js/esm.js b/js/esm.js index 6fad950..1a19a89 100644 --- a/js/esm.js +++ b/js/esm.js @@ -1,5 +1,15 @@ var esm = {}; +esm.changeServer = function(serverName) { + $.post("libs/Utils/changeServer.php",{ + server: serverName + }, + function(){ +// esm.reloadBlock('all'); + location.reload(); +// alert("server : " + data); + }) +} esm.getSystem = function() { @@ -163,7 +173,7 @@ esm.getNetwork = function() { var $box = $('.box#esm-network .box-content tbody'); $box.empty(); - + for (var line in data) { var html = ''; @@ -211,22 +221,27 @@ esm.getServices = function() { var $box = $('.box#esm-services .box-content tbody'); $box.empty(); - - for (var line in data) - { - var label_color = data[line].status == 1 ? 'success' : 'error'; - var label_status = data[line].status == 1 ? 'online' : 'offline'; - - var html = ''; - html += ''; - html += ''+label_status+''; - html += ''+data[line].name+''; - html += ''+data[line].port+''; - html += ''; - + + if (data.length === 0) { + var html = 'No services configured'; $box.append(html); + } else { + for (var line in data) + { + var label_color = data[line].status == 1 ? 'success' : 'error'; + var label_status = data[line].status == 1 ? 'online' : 'offline'; + + var html = ''; + html += ''; + html += ''+label_status+''; + // html += ''+data[line].host+''; + html += ''+data[line].name+''; + html += ''+data[line].port+''; + html += ''; + + $box.append(html); + } } - }, 'json'); } diff --git a/libs/Utils/Config.class.php b/libs/Utils/Config.class.php index c9140c6..edaf1c1 100644 --- a/libs/Utils/Config.class.php +++ b/libs/Utils/Config.class.php @@ -50,7 +50,6 @@ public function get($var) return $tab == $this->config ? null : $tab; } - /** * Returns all config variables */ diff --git a/libs/Utils/Misc.class.php b/libs/Utils/Misc.class.php index d77bbf5..4e3d11f 100644 --- a/libs/Utils/Misc.class.php +++ b/libs/Utils/Misc.class.php @@ -20,22 +20,36 @@ public static function getSize($filesize, $precision = 2) return round($filesize, $precision).' '.$units[$idUnit].'B'; } + public static function getListServer() { + $output = ''; + foreach ($_SESSION['serverList'] as $server) { + if ($_SESSION['server'] == $server) { + $output .= ''; + } else { + $output .= ''; + } + } + return $output; + } /** * Returns hostname */ public static function getHostname() { - return php_uname('n'); + return self::execShellServer('hostname'); } - /** * Returns server IP */ public static function getLanIp() { - return $_SERVER['SERVER_ADDR']; + $cmd = self::execShellServer('hostname -I | awk \'{print $1}\''); + if (strpos($cmd, '127.')!== false) { + $cmd = self::execShellServer('hostname -I | awk \'{print $2}\''); + } + return $cmd; } /** @@ -54,4 +68,24 @@ public static function pluralize($nb, $plural = 's', $singular = '') { return $nb > 1 ? $plural : $singular; } + + /** + * + * @param string $cmd + * @return string + */ + public function execShellServer($cmd) { + if ($_SESSION['server'] != 'localhost') { + $cmd = 'ssh root@' . $_SESSION['server'] .' ' . $cmd; + } + return shell_exec($cmd); + } + + public function execServer($cmd) { + if ($_SESSION['server'] != 'localhost') { + $cmd = 'ssh root@' . $_SESSION['server'] .' ' . $cmd; + } + exec($cmd, $ret); + return $ret; + } } \ No newline at end of file diff --git a/libs/Utils/changeServer.php b/libs/Utils/changeServer.php new file mode 100644 index 0000000..2b8e9f5 --- /dev/null +++ b/libs/Utils/changeServer.php @@ -0,0 +1,18 @@ + $config->get("servers:hosts")[0], + 'serverList' => $config->get("servers:hosts"), + ); +} + +if (isset($_REQUEST['server'])) { + $_SESSION['server'] = $_REQUEST['server']; +} + + +?> \ No newline at end of file diff --git a/libs/cpu.php b/libs/cpu.php index e2743f9..3c5a8f9 100644 --- a/libs/cpu.php +++ b/libs/cpu.php @@ -1,14 +1,14 @@ "; var_export($df); flush(); echo ""; +if (!$df) { $datas[] = array( 'total' => 'N.A', @@ -23,8 +25,9 @@ { list($type, $total, $used, $free, $percent, $mount) = explode(',', $mounted); - if (strpos($type, 'tmpfs') !== false && $Config->get('disk:show_tmpfs') === false) + if ((strpos($type, 'tmpfs') !== false && $Config->get('disk:show_tmpfs') === false) || (strpos($type, 'fuse') !== false)) { continue; + } if (!in_array($mount, $mounted_points)) { @@ -42,5 +45,4 @@ } - echo json_encode($datas); \ No newline at end of file diff --git a/libs/last_login.php b/libs/last_login.php index 5a8887e..6af209c 100644 --- a/libs/last_login.php +++ b/libs/last_login.php @@ -1,11 +1,11 @@ 'N.A', diff --git a/libs/load_average.php b/libs/load_average.php index 6251c0e..9fca515 100644 --- a/libs/load_average.php +++ b/libs/load_average.php @@ -1,13 +1,13 @@ 'N.A', 'ip' => 'N.A'); } @@ -15,22 +16,22 @@ foreach ($getInterfaces as $name) { $ip = null; - exec($ifconfig.' '.$name.' | awk \'/inet / {print $2}\' | cut -d \':\' -f2', $ip); + $ip = Misc::execShellServer($ifconfig.' '.$name.' | awk \'/inet / {print $2}\' | cut -d \':\' -f2'); if (!isset($ip[0])) $ip[0] = ''; $network[] = array( 'name' => $name, - 'ip' => $ip[0], + 'ip' => is_array($ip) ? '' : trim($ip), ); } foreach ($network as $interface) { // Get transmit and receive datas by interface - exec('cat /sys/class/net/'.$interface['name'].'/statistics/tx_bytes', $getBandwidth_tx); - exec('cat /sys/class/net/'.$interface['name'].'/statistics/rx_bytes', $getBandwidth_rx); + $getBandwidth_tx = Misc::execShellServer('cat /sys/class/net/'.$interface['name'].'/statistics/tx_bytes'); + $getBandwidth_rx = Misc::execShellServer('cat /sys/class/net/'.$interface['name'].'/statistics/rx_bytes'); $datas[] = array( 'interface' => $interface['name'], diff --git a/libs/ping.php b/libs/ping.php index 9ea0ec8..3d83f09 100644 --- a/libs/ping.php +++ b/libs/ping.php @@ -1,5 +1,5 @@ get('services'); +uasort($services, function ($a, $b) { + if ($a['port'] == $b['port'] ) + return 0; + return ( $a['port'] < $b['port'] ) ? -1 : 1; +}); -if (count($Config->get('services')) > 0) +if (count($services) > 0) { - foreach ($Config->get('services') as $service) + foreach ($services as $service) { $host = $service['host']; + if ($host != $_SESSION['server']) { + continue; + } $sock = @fsockopen($host, $service['port'], $num, $error, 5); if ($sock) { $datas[] = array( + 'host' => $host, 'port' => $service['port'], 'name' => $service['name'], 'status' => 1, @@ -25,6 +35,7 @@ else { $datas[] = array( + 'host' => $host, 'port' => $service['port'], 'name' => $service['name'], 'status' => 0, diff --git a/libs/swap.php b/libs/swap.php index 522660b..9007b24 100644 --- a/libs/swap.php +++ b/libs/swap.php @@ -1,14 +1,14 @@ ul{text-align:right;list-style-type:none}nav[role="main"]>ul>li{display:inline-block}nav[role="main"]>ul>li>a{display:inline-block;padding:13px 15px;color:#fff;text-decoration:none;-webkit-transition:background 300ms ease-in-out;-moz-transition:background 300ms ease-in-out;-o-transition:background 300ms ease-in-out;transition:background 300ms ease-in-out}nav[role="main"]>ul>li>a:hover{background:#acbdcf;-webkit-transition:background 300ms ease-in-out;-moz-transition:background 300ms ease-in-out;-o-transition:background 300ms ease-in-out;transition:background 300ms ease-in-out}nav[role="main"]>ul>li>a>span[class^="icon-"]{font-size:30px}#main-container{overflow:auto;margin-top:60px;background-color:#fff;padding:20px 25px}ul.list{margin-left:20px;list-style-type:none}ul.list li{position:relative;padding-left:12px}ul.list li:before{content:'';width:5px;height:5px;background-color:#99aec4;position:absolute;left:0;top:9px}table:not(.no-style){width:100%;border-collapse:collapse;border-spacing:0;font-size:13px}table:not(.no-style) tr{border-bottom:1px solid #ebebeb;border-top:1px solid #fff}table:not(.no-style) thead tr{border-top:none}table:not(.no-style) tbody tr:last-child{border-bottom:none}table:not(.no-style) tbody tr:nth-child(odd){background:#f2f2f2}table:not(.no-style) tbody tr td,table:not(.no-style) thead tr th{padding:6px 8px;position:relative;text-align:left}table:not(.no-style) tbody tr td:last-child,table:not(.no-style) thead tr th:last-child{border-right:none}table:not(.no-style) tbody tr td:first-child,table:not(.no-style) thead tr th:first-child{border-left:none}table:not(.no-style) thead{color:#898989;font-size:13px;font-weight:bold}table:not(.no-style) thead tr th{text-align:center}table:not(.no-style) tbody tr:hover{background:#eaeef3}table.firstBold tbody tr td:first-child{font-weight:bold;color:#7e848c}.progressbar-wrap{width:100%;background-color:rgba(153,174,196,0.2)}.progressbar-wrap .progressbar{text-indent:5px}.progressbar-wrap .progressbar.green{background-color:#7BCE6C}.progressbar-wrap .progressbar.orange{background-color:#E3BB80}.progressbar-wrap .progressbar.red{background-color:#CF6B6B}.box#esm-load_average h3{font-weight:normal} +html { + height: 100%; +} + +body { + margin: 0 auto; + font-family: OpenSans-Light,Verdana,sans-serif,Arial; + font-size: 14px; + color: #4d5157; + background-color: #fff; +} + +a { + color: #99aec4; +} + +a:hover { + text-decoration: none; + color: #a9bbcd; +} + +::-moz-selection { + color: #fafbfc; + background-color: #7994b1; +} + +::selection { + color: #fafbfc; + background-color: #7994b1; +} + +nav[role="main"] { + z-index: 2; + position: fixed; + top: 0; + right: 0; + left: 0; + width: 100%; + height: 60px; + padding-left: 5px; + text-align: center; + font-size: 16px; + color: #fff; + background-color: #99aec4; +} + +nav[role="main"] #appname { + float: left; + width: 120px; + text-align: left; +} + +nav[role="main"] #appname a { + text-decoration: none; + color: #fff; +} + +nav[role="main"] #appname a:first-child { + font-size: 24px; +} + +nav[role="main"] #appname a:first-child span[class^="icon-"] { + margin-right: 10px; + font-size: 30px; +} + +nav[role="main"] #appname a:last-child { + display: block; + font-size: 11px; + font-style: italic; +} + +nav[role="main"] #hostname { + float: left; + margin-left: 400px; + line-height: 60px; +} + +nav[role="main"] #serverChoice { + float: left; + margin-left: 200px; + line-height: 60px; +} + +nav[role="main"] #update { + float: left; + margin-left: 100px; + font-size: 13px; + line-height: 60px; +} + +nav[role="main"] #update a { + color: #fff; +} + +nav[role="main"]>ul { + text-align: right; + list-style-type: none; +} + +nav[role="main"]>ul>li { + display: inline-block; +} + +nav[role="main"]>ul>li>a { + display: inline-block; + padding: 13px 15px; + text-decoration: none; + color: #fff; + -webkit-transition: background 300ms ease-in-out; + -moz-transition: background 300ms ease-in-out; + -o-transition: background 300ms ease-in-out; + transition: background 300ms ease-in-out; +} + +nav[role="main"]>ul>li>a:hover { + background: #acbdcf; + -webkit-transition: background 300ms ease-in-out; + -moz-transition: background 300ms ease-in-out; + -o-transition: background 300ms ease-in-out; + transition: background 300ms ease-in-out; +} + +nav[role="main"]>ul>li>a>span[class^="icon-"] { + font-size: 30px; +} + +#main-container { + margin-top: 60px; + padding: 20px 25px; + overflow: auto; + background-color: #fff; +} + +ul.list { + margin-left: 20px; + list-style-type: none; +} + +ul.list li { + position: relative; + padding-left: 12px; +} + +ul.list li:before { + content: ''; + position: absolute; + top: 9px; + left: 0; + width: 5px; + height: 5px; + background-color: #99aec4; +} + +table:not(.no-style) { + width: 100%; + border-collapse: collapse; + border-spacing: 0; + font-size: 13px; +} + +table:not(.no-style) tr { + border-top: 1px solid #fff; + border-bottom: 1px solid #ebebeb; +} + +table:not(.no-style) thead tr { + border-top: none; +} + +table:not(.no-style) tbody tr:last-child { + border-bottom: none; +} + +table:not(.no-style) tbody tr:nth-child(odd) { + background: #f2f2f2; +} + +table:not(.no-style) tbody tr td, +table:not(.no-style) thead tr th { + position: relative; + padding: 6px 8px; + text-align: left; +} + +table:not(.no-style) tbody tr td:last-child, +table:not(.no-style) thead tr th:last-child { + border-right: none; +} + +table:not(.no-style) tbody tr td:first-child, +table:not(.no-style) thead tr th:first-child { + border-left: none; +} + +table:not(.no-style) thead { + font-size: 13px; + font-weight: bold; + color: #898989; +} + +table:not(.no-style) thead tr th { + text-align: center; +} + +table:not(.no-style) tbody tr:hover { + background: #eaeef3; +} + +table.firstBold tbody tr td:first-child { + font-weight: bold; + color: #7e848c; +} + +.progressbar-wrap { + width: 100%; + background-color: rgba(153,174,196,0.2); +} + +.progressbar-wrap .progressbar { + text-indent: 5px; +} + +.progressbar-wrap .progressbar.green { + background-color: #7BCE6C; +} + +.progressbar-wrap .progressbar.orange { + background-color: #E3BB80; +} + +.progressbar-wrap .progressbar.red { + background-color: #CF6B6B; +} + +.box#esm-load_average h3 { + font-weight: normal; +} \ No newline at end of file diff --git a/web/css/utilities.css b/web/css/utilities.css index 07e5e94..c13fdb7 100644 --- a/web/css/utilities.css +++ b/web/css/utilities.css @@ -1 +1,1405 @@ -@font-face{font-family:"OpenSans-Light";src:url('fonts/OpenSans-Light.ttf') format('truetype')}@font-face{font-family:"Entypo";src:url('fonts/entypo.ttf') format('truetype'),url('fonts/entypo.eot') format('embedded-opentype'),url('fonts/entypo.svg') format('svg'),url('fonts/entypo.woff') format('woff')}[class*="icon-"]{font-family:'Entypo';speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-phone:before{content:"\e600"}.icon-mobile:before{content:"\e601"}.icon-mouse:before{content:"\e602"}.icon-directions:before{content:"\e603"}.icon-mail:before{content:"\e604"}.icon-paperplane:before{content:"\e605"}.icon-pencil:before{content:"\e606"}.icon-paperclip:before{content:"\e608"}.icon-drawer:before{content:"\e609"}.icon-reply:before{content:"\e60a"}.icon-reply-all:before{content:"\e60b"}.icon-forward:before{content:"\e60c"}.icon-user:before{content:"\e60d"}.icon-users:before{content:"\e60e"}.icon-user-add:before{content:"\e60f"}.icon-vcard:before{content:"\e610"}.icon-export:before{content:"\e611"}.icon-location:before{content:"\e612"}.icon-map:before{content:"\e613"}.icon-compass:before{content:"\e614"}.icon-location2:before{content:"\e615"}.icon-target:before{content:"\e616"}.icon-share:before{content:"\e617"}.icon-sharable:before{content:"\e618"}.icon-heart:before{content:"\e619"}.icon-heart2:before{content:"\e61a"}.icon-star:before{content:"\e61b"}.icon-star2:before{content:"\e61c"}.icon-thumbs-up:before{content:"\e61d"}.icon-thumbs-down:before{content:"\e61e"}.icon-chat:before{content:"\e61f"}.icon-comment:before{content:"\e620"}.icon-quote:before{content:"\e621"}.icon-house:before{content:"\e622"}.icon-popup:before{content:"\e623"}.icon-search:before{content:"\e624"}.icon-flashlight:before{content:"\e625"}.icon-printer:before{content:"\e626"}.icon-bell:before{content:"\e627"}.icon-link:before{content:"\e628"}.icon-flag:before{content:"\e629"}.icon-cog:before{content:"\e62a"}.icon-tools:before{content:"\e62b"}.icon-trophy:before{content:"\e62c"}.icon-tag:before{content:"\e62d"}.icon-camera:before{content:"\e62e"}.icon-megaphone:before{content:"\e62f"}.icon-palette:before{content:"\e631"}.icon-music:before{content:"\e633"}.icon-music2:before{content:"\e634"}.icon-new:before{content:"\e635"}.icon-graduation:before{content:"\e636"}.icon-book:before{content:"\e637"}.icon-newspaper:before{content:"\e638"}.icon-bag:before{content:"\e639"}.icon-airplane:before{content:"\e63a"}.icon-lifebuoy:before{content:"\e63b"}.icon-eye:before{content:"\e63c"}.icon-clock:before{content:"\e63d"}.icon-microphone:before{content:"\e63e"}.icon-calendar:before{content:"\e63f"}.icon-bolt:before{content:"\e640"}.icon-thunder:before{content:"\e641"}.icon-droplet:before{content:"\e642"}.icon-briefcase:before{content:"\e644"}.icon-air:before{content:"\e645"}.icon-hourglass:before{content:"\e646"}.icon-gauge:before{content:"\e647"}.icon-network:before{content:"\e649"}.icon-key:before{content:"\e64a"}.icon-battery:before{content:"\e64b"}.icon-bucket:before{content:"\e64c"}.icon-magnet:before{content:"\e64d"}.icon-drive:before{content:"\e64e"}.icon-cup:before{content:"\e64f"}.icon-rocket:before{content:"\e650"}.icon-brush:before{content:"\e651"}.icon-suitcase:before{content:"\e652"}.icon-cone:before{content:"\e653"}.icon-earth:before{content:"\e654"}.icon-keyboard:before{content:"\e655"}.icon-browser:before{content:"\e656"}.icon-publish:before{content:"\e657"}.icon-progress-3:before{content:"\e658"}.icon-progress-2:before{content:"\e659"}.icon-brogress-1:before{content:"\e65a"}.icon-progress-0:before{content:"\e65b"}.icon-sun:before{content:"\e65d"}.icon-code:before{content:"\e65f"}.icon-screen:before{content:"\e660"}.icon-infinity:before{content:"\e661"}.icon-light-bulb:before{content:"\e662"}.icon-credit-card:before{content:"\e663"}.icon-database:before{content:"\e664"}.icon-clipboard:before{content:"\e666"}.icon-cart:before{content:"\e667"}.icon-box:before{content:"\e668"}.icon-ticket:before{content:"\e669"}.icon-rss:before{content:"\e66a"}.icon-signal:before{content:"\e66b"}.icon-thermometer:before{content:"\e66c"}.icon-droplets:before{content:"\e66d"}.icon-uniE66E:before{content:"\e66e"}.icon-statistics:before{content:"\e66f"}.icon-pie:before{content:"\e670"}.icon-bars:before{content:"\e671"}.icon-graph:before{content:"\e672"}.icon-lock:before{content:"\e673"}.icon-lock-open:before{content:"\e674"}.icon-logout:before{content:"\e675"}.icon-login:before{content:"\e676"}.icon-checkmark:before{content:"\e677"}.icon-cross:before{content:"\e678"}.icon-minus:before{content:"\e679"}.icon-plus:before{content:"\e67a"}.icon-cross2:before{content:"\e67b"}.icon-minus2:before{content:"\e67c"}.icon-plus2:before{content:"\e67d"}.icon-cross3:before{content:"\e67e"}.icon-minus3:before{content:"\e67f"}.icon-plus3:before{content:"\e680"}.icon-erase:before{content:"\e681"}.icon-blocked:before{content:"\e682"}.icon-info:before{content:"\e683"}.icon-info2:before{content:"\e684"}.icon-question:before{content:"\e685"}.icon-help:before{content:"\e686"}.icon-warning:before{content:"\e687"}.icon-cycle:before{content:"\e688"}.icon-cw:before{content:"\e689"}.icon-ccw:before{content:"\e68a"}.icon-shuffle:before{content:"\e68b"}.icon-arrow:before{content:"\e68c"}.icon-arrow2:before{content:"\e68d"}.icon-retweet:before{content:"\e68e"}.icon-loop:before{content:"\e68f"}.icon-history:before{content:"\e690"}.icon-back:before{content:"\e691"}.icon-switch:before{content:"\e692"}.icon-list:before{content:"\e693"}.icon-add-to-list:before{content:"\e694"}.icon-layout:before{content:"\e695"}.icon-list2:before{content:"\e696"}.icon-text:before{content:"\e697"}.icon-text2:before{content:"\e698"}.icon-document:before{content:"\e699"}.icon-docs:before{content:"\e69a"}.icon-landscape:before{content:"\e69b"}.icon-pictures:before{content:"\e69c"}.icon-video:before{content:"\e69d"}.icon-music3:before{content:"\e69e"}.icon-folder:before{content:"\e69f"}.icon-archive:before{content:"\e6a0"}.icon-trash:before{content:"\e6a1"}.icon-upload:before{content:"\e6a2"}.icon-download:before{content:"\e6a3"}.icon-disk:before{content:"\e6a4"}.icon-install:before{content:"\e6a5"}.icon-cloud:before{content:"\e6a6"}.icon-upload2:before{content:"\e6a7"}.icon-bookmark:before{content:"\e6a8"}.icon-bookmarks:before{content:"\e6a9"}.icon-book2:before{content:"\e6aa"}.icon-play:before{content:"\e6ab"}.icon-pause:before{content:"\e6ac"}.icon-record:before{content:"\e6ad"}.icon-stop:before{content:"\e6ae"}.icon-next:before{content:"\e6af"}.icon-previous:before{content:"\e6b0"}.icon-first:before{content:"\e6b1"}.icon-last:before{content:"\e6b2"}.icon-resize-enlarge:before{content:"\e6b3"}.icon-resize-shrink:before{content:"\e6b4"}.icon-volume:before{content:"\e6b5"}.icon-sound:before{content:"\e6b6"}.icon-mute:before{content:"\e6b7"}.icon-flow-cascade:before{content:"\e6b8"}.icon-flow-branch:before{content:"\e6b9"}.icon-flow-tree:before{content:"\e6ba"}.icon-flow-line:before{content:"\e6bb"}.icon-flow-parallel:before{content:"\e6bc"}.icon-arrow-left:before{content:"\e6bd"}.icon-arrow-down:before{content:"\e6be"}.icon-arrow-up--upload:before{content:"\e6bf"}.icon-arrow-right:before{content:"\e6c0"}.icon-arrow-left2:before{content:"\e6c1"}.icon-arrow-down2:before{content:"\e6c2"}.icon-arrow-up:before{content:"\e6c3"}.icon-arrow-right2:before{content:"\e6c4"}.icon-arrow-left3:before{content:"\e6c5"}.icon-arrow-down3:before{content:"\e6c6"}.icon-arrow-up2:before{content:"\e6c7"}.icon-arrow-right3:before{content:"\e6c8"}.icon-arrow-left4:before{content:"\e6c9"}.icon-arrow-down4:before{content:"\e6ca"}.icon-arrow-up3:before{content:"\e6cb"}.icon-arrow-right4:before{content:"\e6cc"}.icon-arrow-left5:before{content:"\e6cd"}.icon-arrow-down5:before{content:"\e6ce"}.icon-arrow-up4:before{content:"\e6cf"}.icon-arrow-right5:before{content:"\e6d0"}.icon-arrow-left6:before{content:"\e6d1"}.icon-arrow-down6:before{content:"\e6d2"}.icon-arrow-up5:before{content:"\e6d3"}.icon-arrow-right6:before{content:"\e6d4"}.icon-arrow-left7:before{content:"\e6d5"}.icon-arrow-down7:before{content:"\e6d6"}.icon-arrow-up6:before{content:"\e6d7"}.icon-uniE6D8:before{content:"\e6d8"}.icon-arrow-left8:before{content:"\e6d9"}.icon-arrow-down8:before{content:"\e6da"}.icon-arrow-up7:before{content:"\e6db"}.icon-arrow-right7:before{content:"\e6dc"}.icon-menu:before{content:"\e6dd"}.icon-ellipsis:before{content:"\e6de"}.icon-dots:before{content:"\e6df"}.icon-dot:before{content:"\e6e0"}.icon-daniel-bruce2:before{content:"\e6ed"}.icon-github:before{content:"\e6ee"}.icon-github2:before{content:"\e6ef"}.icon-flickr:before{content:"\e6f0"}.icon-flickr2:before{content:"\e6f1"}.icon-vimeo:before{content:"\e6f2"}.icon-vimeo2:before{content:"\e6f3"}.icon-twitter:before{content:"\e6f4"}.icon-twitter2:before{content:"\e6f5"}.icon-facebook:before{content:"\e6f6"}.icon-facebook2:before{content:"\e6f7"}.icon-facebook3:before{content:"\e6f8"}.icon-googleplus:before{content:"\e6f9"}.icon-googleplus2:before{content:"\e6fa"}.icon-pinterest:before{content:"\e6fb"}.icon-pinterest2:before{content:"\e6fc"}.icon-tumblr:before{content:"\e6fd"}.icon-tumblr2:before{content:"\e6fe"}.icon-linkedin:before{content:"\e6ff"}.icon-linkedin2:before{content:"\e700"}.icon-dribbble:before{content:"\e701"}.icon-dribbble2:before{content:"\e702"}.icon-stumbleupon:before{content:"\e703"}.icon-stumbleupon2:before{content:"\e704"}.icon-spotify:before{content:"\e709"}.icon-spotify2:before{content:"\e70a"}.icon-instagram:before{content:"\e70c"}.icon-dropbox:before{content:"\e70d"}.icon-evernote:before{content:"\e70e"}.icon-flattr:before{content:"\e70f"}.icon-skype:before{content:"\e710"}.icon-skype2:before{content:"\e711"}.icon-paypal:before{content:"\e714"}.icon-picasa:before{content:"\e715"}.icon-circles:before{content:"\e719"}*{padding:0;margin:0}*:focus{outline:none}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.cls:after{content:".";display:block;height:0;clear:both;visibility:hidden}img{border:0}.debug{border:1px solid red}.u{text-decoration:underline}.b{font-weight:bold}.i{font-style:italic}.r{text-decoration:line-through}.text_left,.t-left{text-align:left}.text_right,.t-right{text-align:right !important}.text_center,.t-center{text-align:center}.pfixed{position:fixed !important}.f-left{float:left}.f-right{float:right}.column-left{float:left;width:49%}.column-right{float:right;width:49%}.column-33{width:32%}.column-66{width:66%}.m-l-10{margin-left:10px}.m-r-10{margin-right:10px}.w15p{width:15%}.w20p{width:20%}.w33p{width:33%}.w35p{width:35%}.w50p{width:50%}.w100p{width:100%}.w30{width:30px}.w50{width:50px}.w60{width:60px}.w70{width:70px}.w75{width:75px}.w90{width:90px}.w100{width:100px}.w110{width:110px}.w120{width:120px}.w130{width:130px}.w150{width:150px}.w180{width:180px}.w200{width:200px}.w220{width:220px}.w250{width:250px}.w300{width:300px}.w350{width:350px}.w400{width:400px}.w450{width:450px}.w500{width:500px}.w600{width:600px}.w700{width:700px}.w800{width:800px}.w900{width:900px}.w1000{width:1000px}::-webkit-scrollbar-track{box-shadow:inset 1px 0px 3px rgba(0,0,0,0.2);background-color:#F5F5F5}::-webkit-scrollbar-track:hover{background-color:#EFEFEF}::-webkit-scrollbar{width:8px;background-color:#F5F5F5}::-webkit-scrollbar-thumb{background-color:#959595}::-webkit-scrollbar-thumb:hover{background-color:#6B6B6B}::-webkit-scrollbar-thumb:active{background-color:#555}span.label{padding:1px 3px 2px;font-size:10px;font-weight:bold;color:#fff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px}span.label.success{background-color:#46a546}span.label.warning{background-color:#f89406}span.label.important,span.label.error{background-color:#c43c35}span.label.notice{background-color:#62cffc}.box{background:#fff;box-shadow:3px 3px 0 rgba(205,215,226,0.6);margin-bottom:15px;border:1px solid #cdd7e2;padding:2px}.box .box-header{background-color:#829cb7;height:35px}.box .box-header h1{color:#fff;float:left;font-size:14px;font-weight:bold;line-height:33px;padding-left:10px;text-transform:uppercase}.box .box-header h1:first-letter{font-size:20px}.box .box-header ul{float:right;list-style-type:none}.box .box-header ul li{display:inline;margin-left:-3px}.box .box-header ul li a{color:#fff;font-size:20px;line-height:35px;padding:4px 10px;text-decoration:none}.box .box-header ul li a:hover:not(.disabled){background:#c3cfdc;color:#829cb7 !important}.box .box-header ul li a.disabled{opacity:.4}.box .box-header ul li a.disabled:hover{cursor:default}.box .box-header ul li:first-child{margin-left:0}.box .box-header ul li:last-child a{border-right:none}.box .box-header ul li.active a{background:#fafafa;cursor:default}.box .box-content{padding:6px}.box .box-content table a{text-decoration:none;color:#829cb7}.box .box-content table a:hover{color:#c3cfdc}.box .box-footer{background:#e8e8e8;padding:7px}.box .box-footer span[class^="icon-"]{font-size:14px;margin-right:5px} +@font-face { + font-family: "OpenSans-Light"; + src: url('fonts/OpenSans-Light.ttf') format('truetype'); +} + +@font-face { + font-family: "Entypo"; + src: url('fonts/entypo.ttf') format('truetype'), url('fonts/entypo.eot') format('embedded-opentype'), url('fonts/entypo.svg') format('svg'), url('fonts/entypo.woff') format('woff'); +} + +[class*="icon-"] { + text-transform: none; + font-family: 'Entypo'; + font-style: normal; + font-variant: normal; + font-weight: normal; + line-height: 1; + speak: none; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-phone:before { + content: "\e600"; +} + +.icon-mobile:before { + content: "\e601"; +} + +.icon-mouse:before { + content: "\e602"; +} + +.icon-directions:before { + content: "\e603"; +} + +.icon-mail:before { + content: "\e604"; +} + +.icon-paperplane:before { + content: "\e605"; +} + +.icon-pencil:before { + content: "\e606"; +} + +.icon-paperclip:before { + content: "\e608"; +} + +.icon-drawer:before { + content: "\e609"; +} + +.icon-reply:before { + content: "\e60a"; +} + +.icon-reply-all:before { + content: "\e60b"; +} + +.icon-forward:before { + content: "\e60c"; +} + +.icon-user:before { + content: "\e60d"; +} + +.icon-users:before { + content: "\e60e"; +} + +.icon-user-add:before { + content: "\e60f"; +} + +.icon-vcard:before { + content: "\e610"; +} + +.icon-export:before { + content: "\e611"; +} + +.icon-location:before { + content: "\e612"; +} + +.icon-map:before { + content: "\e613"; +} + +.icon-compass:before { + content: "\e614"; +} + +.icon-location2:before { + content: "\e615"; +} + +.icon-target:before { + content: "\e616"; +} + +.icon-share:before { + content: "\e617"; +} + +.icon-sharable:before { + content: "\e618"; +} + +.icon-heart:before { + content: "\e619"; +} + +.icon-heart2:before { + content: "\e61a"; +} + +.icon-star:before { + content: "\e61b"; +} + +.icon-star2:before { + content: "\e61c"; +} + +.icon-thumbs-up:before { + content: "\e61d"; +} + +.icon-thumbs-down:before { + content: "\e61e"; +} + +.icon-chat:before { + content: "\e61f"; +} + +.icon-comment:before { + content: "\e620"; +} + +.icon-quote:before { + content: "\e621"; +} + +.icon-house:before { + content: "\e622"; +} + +.icon-popup:before { + content: "\e623"; +} + +.icon-search:before { + content: "\e624"; +} + +.icon-flashlight:before { + content: "\e625"; +} + +.icon-printer:before { + content: "\e626"; +} + +.icon-bell:before { + content: "\e627"; +} + +.icon-link:before { + content: "\e628"; +} + +.icon-flag:before { + content: "\e629"; +} + +.icon-cog:before { + content: "\e62a"; +} + +.icon-tools:before { + content: "\e62b"; +} + +.icon-trophy:before { + content: "\e62c"; +} + +.icon-tag:before { + content: "\e62d"; +} + +.icon-camera:before { + content: "\e62e"; +} + +.icon-megaphone:before { + content: "\e62f"; +} + +.icon-palette:before { + content: "\e631"; +} + +.icon-music:before { + content: "\e633"; +} + +.icon-music2:before { + content: "\e634"; +} + +.icon-new:before { + content: "\e635"; +} + +.icon-graduation:before { + content: "\e636"; +} + +.icon-book:before { + content: "\e637"; +} + +.icon-newspaper:before { + content: "\e638"; +} + +.icon-bag:before { + content: "\e639"; +} + +.icon-airplane:before { + content: "\e63a"; +} + +.icon-lifebuoy:before { + content: "\e63b"; +} + +.icon-eye:before { + content: "\e63c"; +} + +.icon-clock:before { + content: "\e63d"; +} + +.icon-microphone:before { + content: "\e63e"; +} + +.icon-calendar:before { + content: "\e63f"; +} + +.icon-bolt:before { + content: "\e640"; +} + +.icon-thunder:before { + content: "\e641"; +} + +.icon-droplet:before { + content: "\e642"; +} + +.icon-briefcase:before { + content: "\e644"; +} + +.icon-air:before { + content: "\e645"; +} + +.icon-hourglass:before { + content: "\e646"; +} + +.icon-gauge:before { + content: "\e647"; +} + +.icon-network:before { + content: "\e649"; +} + +.icon-key:before { + content: "\e64a"; +} + +.icon-battery:before { + content: "\e64b"; +} + +.icon-bucket:before { + content: "\e64c"; +} + +.icon-magnet:before { + content: "\e64d"; +} + +.icon-drive:before { + content: "\e64e"; +} + +.icon-cup:before { + content: "\e64f"; +} + +.icon-rocket:before { + content: "\e650"; +} + +.icon-brush:before { + content: "\e651"; +} + +.icon-suitcase:before { + content: "\e652"; +} + +.icon-cone:before { + content: "\e653"; +} + +.icon-earth:before { + content: "\e654"; +} + +.icon-keyboard:before { + content: "\e655"; +} + +.icon-browser:before { + content: "\e656"; +} + +.icon-publish:before { + content: "\e657"; +} + +.icon-progress-3:before { + content: "\e658"; +} + +.icon-progress-2:before { + content: "\e659"; +} + +.icon-brogress-1:before { + content: "\e65a"; +} + +.icon-progress-0:before { + content: "\e65b"; +} + +.icon-sun:before { + content: "\e65d"; +} + +.icon-code:before { + content: "\e65f"; +} + +.icon-screen:before { + content: "\e660"; +} + +.icon-infinity:before { + content: "\e661"; +} + +.icon-light-bulb:before { + content: "\e662"; +} + +.icon-credit-card:before { + content: "\e663"; +} + +.icon-database:before { + content: "\e664"; +} + +.icon-clipboard:before { + content: "\e666"; +} + +.icon-cart:before { + content: "\e667"; +} + +.icon-box:before { + content: "\e668"; +} + +.icon-ticket:before { + content: "\e669"; +} + +.icon-rss:before { + content: "\e66a"; +} + +.icon-signal:before { + content: "\e66b"; +} + +.icon-thermometer:before { + content: "\e66c"; +} + +.icon-droplets:before { + content: "\e66d"; +} + +.icon-uniE66E:before { + content: "\e66e"; +} + +.icon-statistics:before { + content: "\e66f"; +} + +.icon-pie:before { + content: "\e670"; +} + +.icon-bars:before { + content: "\e671"; +} + +.icon-graph:before { + content: "\e672"; +} + +.icon-lock:before { + content: "\e673"; +} + +.icon-lock-open:before { + content: "\e674"; +} + +.icon-logout:before { + content: "\e675"; +} + +.icon-login:before { + content: "\e676"; +} + +.icon-checkmark:before { + content: "\e677"; +} + +.icon-cross:before { + content: "\e678"; +} + +.icon-minus:before { + content: "\e679"; +} + +.icon-plus:before { + content: "\e67a"; +} + +.icon-cross2:before { + content: "\e67b"; +} + +.icon-minus2:before { + content: "\e67c"; +} + +.icon-plus2:before { + content: "\e67d"; +} + +.icon-cross3:before { + content: "\e67e"; +} + +.icon-minus3:before { + content: "\e67f"; +} + +.icon-plus3:before { + content: "\e680"; +} + +.icon-erase:before { + content: "\e681"; +} + +.icon-blocked:before { + content: "\e682"; +} + +.icon-info:before { + content: "\e683"; +} + +.icon-info2:before { + content: "\e684"; +} + +.icon-question:before { + content: "\e685"; +} + +.icon-help:before { + content: "\e686"; +} + +.icon-warning:before { + content: "\e687"; +} + +.icon-cycle:before { + content: "\e688"; +} + +.icon-cw:before { + content: "\e689"; +} + +.icon-ccw:before { + content: "\e68a"; +} + +.icon-shuffle:before { + content: "\e68b"; +} + +.icon-arrow:before { + content: "\e68c"; +} + +.icon-arrow2:before { + content: "\e68d"; +} + +.icon-retweet:before { + content: "\e68e"; +} + +.icon-loop:before { + content: "\e68f"; +} + +.icon-history:before { + content: "\e690"; +} + +.icon-back:before { + content: "\e691"; +} + +.icon-switch:before { + content: "\e692"; +} + +.icon-list:before { + content: "\e693"; +} + +.icon-add-to-list:before { + content: "\e694"; +} + +.icon-layout:before { + content: "\e695"; +} + +.icon-list2:before { + content: "\e696"; +} + +.icon-text:before { + content: "\e697"; +} + +.icon-text2:before { + content: "\e698"; +} + +.icon-document:before { + content: "\e699"; +} + +.icon-docs:before { + content: "\e69a"; +} + +.icon-landscape:before { + content: "\e69b"; +} + +.icon-pictures:before { + content: "\e69c"; +} + +.icon-video:before { + content: "\e69d"; +} + +.icon-music3:before { + content: "\e69e"; +} + +.icon-folder:before { + content: "\e69f"; +} + +.icon-archive:before { + content: "\e6a0"; +} + +.icon-trash:before { + content: "\e6a1"; +} + +.icon-upload:before { + content: "\e6a2"; +} + +.icon-download:before { + content: "\e6a3"; +} + +.icon-disk:before { + content: "\e6a4"; +} + +.icon-install:before { + content: "\e6a5"; +} + +.icon-cloud:before { + content: "\e6a6"; +} + +.icon-upload2:before { + content: "\e6a7"; +} + +.icon-bookmark:before { + content: "\e6a8"; +} + +.icon-bookmarks:before { + content: "\e6a9"; +} + +.icon-book2:before { + content: "\e6aa"; +} + +.icon-play:before { + content: "\e6ab"; +} + +.icon-pause:before { + content: "\e6ac"; +} + +.icon-record:before { + content: "\e6ad"; +} + +.icon-stop:before { + content: "\e6ae"; +} + +.icon-next:before { + content: "\e6af"; +} + +.icon-previous:before { + content: "\e6b0"; +} + +.icon-first:before { + content: "\e6b1"; +} + +.icon-last:before { + content: "\e6b2"; +} + +.icon-resize-enlarge:before { + content: "\e6b3"; +} + +.icon-resize-shrink:before { + content: "\e6b4"; +} + +.icon-volume:before { + content: "\e6b5"; +} + +.icon-sound:before { + content: "\e6b6"; +} + +.icon-mute:before { + content: "\e6b7"; +} + +.icon-flow-cascade:before { + content: "\e6b8"; +} + +.icon-flow-branch:before { + content: "\e6b9"; +} + +.icon-flow-tree:before { + content: "\e6ba"; +} + +.icon-flow-line:before { + content: "\e6bb"; +} + +.icon-flow-parallel:before { + content: "\e6bc"; +} + +.icon-arrow-left:before { + content: "\e6bd"; +} + +.icon-arrow-down:before { + content: "\e6be"; +} + +.icon-arrow-up--upload:before { + content: "\e6bf"; +} + +.icon-arrow-right:before { + content: "\e6c0"; +} + +.icon-arrow-left2:before { + content: "\e6c1"; +} + +.icon-arrow-down2:before { + content: "\e6c2"; +} + +.icon-arrow-up:before { + content: "\e6c3"; +} + +.icon-arrow-right2:before { + content: "\e6c4"; +} + +.icon-arrow-left3:before { + content: "\e6c5"; +} + +.icon-arrow-down3:before { + content: "\e6c6"; +} + +.icon-arrow-up2:before { + content: "\e6c7"; +} + +.icon-arrow-right3:before { + content: "\e6c8"; +} + +.icon-arrow-left4:before { + content: "\e6c9"; +} + +.icon-arrow-down4:before { + content: "\e6ca"; +} + +.icon-arrow-up3:before { + content: "\e6cb"; +} + +.icon-arrow-right4:before { + content: "\e6cc"; +} + +.icon-arrow-left5:before { + content: "\e6cd"; +} + +.icon-arrow-down5:before { + content: "\e6ce"; +} + +.icon-arrow-up4:before { + content: "\e6cf"; +} + +.icon-arrow-right5:before { + content: "\e6d0"; +} + +.icon-arrow-left6:before { + content: "\e6d1"; +} + +.icon-arrow-down6:before { + content: "\e6d2"; +} + +.icon-arrow-up5:before { + content: "\e6d3"; +} + +.icon-arrow-right6:before { + content: "\e6d4"; +} + +.icon-arrow-left7:before { + content: "\e6d5"; +} + +.icon-arrow-down7:before { + content: "\e6d6"; +} + +.icon-arrow-up6:before { + content: "\e6d7"; +} + +.icon-uniE6D8:before { + content: "\e6d8"; +} + +.icon-arrow-left8:before { + content: "\e6d9"; +} + +.icon-arrow-down8:before { + content: "\e6da"; +} + +.icon-arrow-up7:before { + content: "\e6db"; +} + +.icon-arrow-right7:before { + content: "\e6dc"; +} + +.icon-menu:before { + content: "\e6dd"; +} + +.icon-ellipsis:before { + content: "\e6de"; +} + +.icon-dots:before { + content: "\e6df"; +} + +.icon-dot:before { + content: "\e6e0"; +} + +.icon-daniel-bruce2:before { + content: "\e6ed"; +} + +.icon-github:before { + content: "\e6ee"; +} + +.icon-github2:before { + content: "\e6ef"; +} + +.icon-flickr:before { + content: "\e6f0"; +} + +.icon-flickr2:before { + content: "\e6f1"; +} + +.icon-vimeo:before { + content: "\e6f2"; +} + +.icon-vimeo2:before { + content: "\e6f3"; +} + +.icon-twitter:before { + content: "\e6f4"; +} + +.icon-twitter2:before { + content: "\e6f5"; +} + +.icon-facebook:before { + content: "\e6f6"; +} + +.icon-facebook2:before { + content: "\e6f7"; +} + +.icon-facebook3:before { + content: "\e6f8"; +} + +.icon-googleplus:before { + content: "\e6f9"; +} + +.icon-googleplus2:before { + content: "\e6fa"; +} + +.icon-pinterest:before { + content: "\e6fb"; +} + +.icon-pinterest2:before { + content: "\e6fc"; +} + +.icon-tumblr:before { + content: "\e6fd"; +} + +.icon-tumblr2:before { + content: "\e6fe"; +} + +.icon-linkedin:before { + content: "\e6ff"; +} + +.icon-linkedin2:before { + content: "\e700"; +} + +.icon-dribbble:before { + content: "\e701"; +} + +.icon-dribbble2:before { + content: "\e702"; +} + +.icon-stumbleupon:before { + content: "\e703"; +} + +.icon-stumbleupon2:before { + content: "\e704"; +} + +.icon-spotify:before { + content: "\e709"; +} + +.icon-spotify2:before { + content: "\e70a"; +} + +.icon-instagram:before { + content: "\e70c"; +} + +.icon-dropbox:before { + content: "\e70d"; +} + +.icon-evernote:before { + content: "\e70e"; +} + +.icon-flattr:before { + content: "\e70f"; +} + +.icon-skype:before { + content: "\e710"; +} + +.icon-skype2:before { + content: "\e711"; +} + +.icon-paypal:before { + content: "\e714"; +} + +.icon-picasa:before { + content: "\e715"; +} + +.icon-circles:before { + content: "\e719"; +} + +* { + margin: 0; + padding: 0; +} + +*:focus { + outline: none; +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.cls:after { + content: "."; + display: block; + visibility: hidden; + clear: both; + height: 0; +} + +img { + border: 0; +} + +.debug { + border: 1px solid red; +} + +.u { + text-decoration: underline; +} + +.b { + font-weight: bold; +} + +.i { + font-style: italic; +} + +.r { + text-decoration: line-through; +} + +.text_left, +.t-left { + text-align: left; +} + +.text_right, +.t-right { + text-align: right !important; +} + +.text_center, +.t-center { + text-align: center; +} + +.pfixed { + position: fixed !important; +} + +.f-left { + float: left; +} + +.f-right { + float: right; +} + +.column-left { + float: left; + width: 49%; +} + +.column-right { + float: right; + width: 49%; +} + +.column-33 { + width: 32%; +} + +.column-66 { + width: 66%; +} + +.m-l-10 { + margin-left: 10px; +} + +.m-r-10 { + margin-right: 10px; +} + +.w15p { + width: 15%; +} + +.w20p { + width: 20%; +} + +.w33p { + width: 33%; +} + +.w35p { + width: 35%; +} + +.w50p { + width: 50%; +} + +.w100p { + width: 100%; +} + +.w30 { + width: 30px; +} + +.w50 { + width: 50px; +} + +.w60 { + width: 60px; +} + +.w70 { + width: 70px; +} + +.w75 { + width: 75px; +} + +.w90 { + width: 90px; +} + +.w100 { + width: 100px; +} + +.w110 { + width: 110px; +} + +.w120 { + width: 120px; +} + +.w130 { + width: 130px; +} + +.w150 { + width: 150px; +} + +.w180 { + width: 180px; +} + +.w200 { + width: 200px; +} + +.w220 { + width: 220px; +} + +.w250 { + width: 250px; +} + +.w300 { + width: 300px; +} + +.w350 { + width: 350px; +} + +.w400 { + width: 400px; +} + +.w450 { + width: 450px; +} + +.w500 { + width: 500px; +} + +.w600 { + width: 600px; +} + +.w700 { + width: 700px; +} + +.w800 { + width: 800px; +} + +.w900 { + width: 900px; +} + +.w1000 { + width: 1000px; +} + +::-webkit-scrollbar-track { + background-color: #F5F5F5; + box-shadow: inset 1px 0 3px rgba(0,0,0,0.2); +} + +::-webkit-scrollbar-track:hover { + background-color: #EFEFEF; +} + +::-webkit-scrollbar { + width: 8px; + background-color: #F5F5F5; +} + +::-webkit-scrollbar-thumb { + background-color: #959595; +} + +::-webkit-scrollbar-thumb:hover { + background-color: #6B6B6B; +} + +::-webkit-scrollbar-thumb:active { + background-color: #555; +} + +span.label { + padding: 1px 3px 2px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + text-transform: uppercase; + font-size: 10px; + font-weight: bold; + white-space: nowrap; + color: #fff; + background-color: #bfbfbf; +} + +span.label.success { + background-color: #46a546; +} + +span.label.warning { + background-color: #f89406; +} + +span.label.important, +span.label.error { + background-color: #c43c35; +} + +span.label.notice { + background-color: #62cffc; +} + +.box { + margin-bottom: 15px; + padding: 2px; + border: 1px solid #cdd7e2; + background: #fff; + box-shadow: 3px 3px 0 rgba(205,215,226,0.6); +} + +.box .box-header { + height: 35px; + background-color: #829cb7; +} + +.box .box-header h1 { + float: left; + padding-left: 10px; + text-transform: uppercase; + font-size: 14px; + font-weight: bold; + line-height: 33px; + color: #fff; +} + +.box .box-header h1:first-letter { + font-size: 20px; +} + +.box .box-header ul { + float: right; + list-style-type: none; +} + +.box .box-header ul li { + display: inline; + margin-left: -3px; +} + +.box .box-header ul li a { + padding: 4px 10px; + text-decoration: none; + font-size: 20px; + line-height: 35px; + color: #fff; +} + +.box .box-header ul li a:hover:not(.disabled) { + color: #829cb7 !important; + background: #c3cfdc; +} + +.box .box-header ul li a.disabled { + opacity: .4; +} + +.box .box-header ul li a.disabled:hover { + cursor: default; +} + +.box .box-header ul li:first-child { + margin-left: 0; +} + +.box .box-header ul li:last-child a { + border-right: none; +} + +.box .box-header ul li.active a { + background: #fafafa; + cursor: default; +} + +.box .box-content { + padding: 6px; +} + +.box .box-content table a { + text-decoration: none; + color: #829cb7; +} + +.box .box-content table a:hover { + color: #c3cfdc; +} + +.box .box-footer { + padding: 7px; + background: #e8e8e8; +} + +.box .box-footer span[class^="icon-"] { + margin-right: 5px; + font-size: 14px; +} \ No newline at end of file From e0e10dcf6966a19b92573c2c6c7b0c133dfeae4b Mon Sep 17 00:00:00 2001 From: Nicolas Manceau Date: Thu, 13 Nov 2014 17:47:58 +0100 Subject: [PATCH 2/2] put some css --- index.php | 4 ++-- web/css/frontend.css | 51 +++++++++++++++++++++++++++++++++++++---- web/css/pict/arrow.png | Bin 0 -> 174 bytes 3 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 web/css/pict/arrow.png diff --git a/index.php b/index.php index 7558db5..95d05e6 100644 --- a/index.php +++ b/index.php @@ -48,13 +48,13 @@ eZ Server Monitor - vget('esm:version'); ?> -
+
-
+
diff --git a/web/css/frontend.css b/web/css/frontend.css index 9e81246..a36d17f 100644 --- a/web/css/frontend.css +++ b/web/css/frontend.css @@ -71,15 +71,17 @@ nav[role="main"] #appname a:last-child { } nav[role="main"] #hostname { + font-size: 20px; + font-weight: bold; float: left; margin-left: 400px; - line-height: 60px; + margin-top: 15px; } nav[role="main"] #serverChoice { float: left; - margin-left: 200px; - line-height: 60px; + margin-left: 70px; + margin-top: 15px; } nav[role="main"] #update { @@ -235,4 +237,45 @@ table.firstBold tbody tr td:first-child { .box#esm-load_average h3 { font-weight: normal; -} \ No newline at end of file +} + +//css select +/* -------------------- Page Styles (not required) */ +div { margin: 30px; } + + +.styled-select { + background: url("/web/css/pict/arrow.png") no-repeat 96% 0; + height: 29px; + overflow: hidden; + width: 240px; +} + +.blue-styled { + height: 29px; + overflow: hidden; + width: 240px; +} + +.styled-select select { + background: transparent; + border: none; + font-size: 14px; + height: 29px; + padding: 5px; /* If you add too much padding here, the options won't show in IE */ + width: 268px; +} + +.semi-square { + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +/* -------------------- Colors: Background */ +.blue { background-color: #7994b1; } + +/* -------------------- Colors: Text */ +.blue select { color: #fff; } + + diff --git a/web/css/pict/arrow.png b/web/css/pict/arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..7ebb1fb3ab7a808b5517c673a4de14c987934dcc GIT binary patch literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%!3HEXp1%tNQl*|Qjv*e$lLe*)toiZ(|9*A> z;{ajf9x0ow4=WBTpGycj_`p!&gx)WI36Y79lTIJ)7Jq**Rmp>IN!y(T8zMI*9jz;I zc1%*R^g4W_?(3_o>7l006@O1TaS?83{1OW8bMREWD literal 0 HcmV?d00001