Merge pull request #27 from trashbo4t/master

New Module: Themes
pull/28/head
Marc 2018-05-23 22:57:01 +01:00 committed by GitHub
commit a2998eea80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 8776 additions and 0 deletions

565
Themes/api/module.php Normal file
View File

@ -0,0 +1,565 @@
<?php namespace pineapple;
class Themes extends Module
{
// CONSTANTS
private $MODULE_DIR = '/pineapple/modules/Themes/';
private $CSS_DIR = '/pineapple/modules/Themes/css/';
private $SKELETON_CSS = '/pineapple/modules/Themes/css/main.css';
private $CURRENT_CSS = '/pineapple/modules/Themes/css/CURRENT_CSS';
private $CURRENT_LOGO = '/pineapple/modules/Themes/img/CURRENT_LOGO';
private $CURRENT_THROBBER = '/pineapple/modules/Themes/img/CURRENT_THROBBER';
private $CURRENT_FAVICON = '/pineapple/modules/Themes/img/CURRENT_FAVICON';
private $CURRENT_DASHBOARD = '/pineapple/modules/Themes/img/CURRENT_DASHBOARD';
private $BACKUP_MAIN_CSS = '/pineapple/css/.backup.main.css';
private $BACKUP_FAVICON = '/pineapple/img/.backup.favicon.ico';
private $BACKUP_THROBBER = '/pineapple/img/.backup.throbber.gif';
private $BACKUP_LOGO = '/pineapple/img/.backup.logo.png';
private $BACKUP_DASHBOARD = '/pineapple/modules/Dashboard/.backup.module_icon.svg';
private $current_theme = "";
/*
* Static list of all module names
* from here we can grab the CURRENT file, and the module directory
*/
private $ALL_MODULES = array(
"Dashboard",
"Recon",
"Profiling",
"Clients",
"ModuleManager",
"Filters",
"PineAP",
"Tracking",
"Logging",
"Reporting",
"Networking",
"Configuration",
"Advanced",
"Help",
);
/*
* Faster to map Hex values then to calculate on the fly
*/
private $WHITE_HEX = 'ffffff';
private $RESTORE_HEX = '808080';
private $NORMAL_COLOR_HEX_MAP = array(
"red" => "FF0000",
"green" => "00FF00",
"blue" => "0000FF",
"purple" => "800080",
"orange" => "cc3300",
"yellow" => "ffff00",
"pink" => "ff0066",
);
private $LIGHT_COLOR_HEX_MAP = array(
"red" => "ff4d4d",
"green" => "80ff80",
"blue" => "8080ff",
"purple" => "ff66ff",
"orange" => "ff9f80",
"yellow" => "ffff66",
"pink" => "ff99c2",
);
private $DARK_COLOR_HEX_MAP = array(
"red" => "990000",
"green" => "004d00",
"blue" => "000077",
"purple" => "4d004d",
"orange" => "992600",
"yellow" => "cccc00",
"pink" => "99003d",
);
public function route()
{
switch ($this->request->action) {
case 'getThemeList':
$this->handleGetThemeList();
break;
case 'themeFields':
$this->getThemeFields();
break;
case 'deleteTheme':
$this->handleDeleteTheme();
break;
case 'activateTheme':
$this->activateTheme();
break;
case 'getThemeCode':
$this->getThemeCode();
break;
case 'submitThemeCode':
$this->submitThemeCode();
break;
case 'getCurrentTheme':
$this->getCurrentTheme();
break;
case 'createNewTheme':
$this->handleCreateNewTheme();
break;
case 'restoreDefault':
$this->restoreDefault();
break;
case 'backupFiles':
$this->backupFiles();
break;
case 'replaceImage':
$this->replaceImage();
break;
}
}
// Get the CURRENT_<MODULE_ICON> file, which is 1 line with the current color of the icon
public function currentFile($name)
{
$upper = strtoupper($name);
return "/pineapple/modules/Themes/img/CURRENT_{$upper}";
}
// Move an image from light->dark or vice versa
public function replaceImage()
{
$img = $this->request->img;
switch ($img)
{
// Pineapple Logo
case 'Logo':
$this->response = array("message" => "Logo Changed");
if ($this->request->light) {
exec("cp $this->BACKUP_LOGO /pineapple/img/logo.png");
exec("echo light > $this->CURRENT_LOGO");
}
else
{
exec("echo dark > $this->CURRENT_LOGO");
exec('cp /pineapple/modules/Themes/img/logo-dark.png /pineapple/img/logo.png');
}
$this->response = array("message" => "Logo Changed");
break;
// Pineapple favicon.ico Image
case 'Icon':
if ($this->request->light) {
exec("echo light > $this->CURRENT_FAVICON");
exec("cp $this->BACKUP_FAVICON /pineapple/img/favicon.ico");
}
else
{
exec("echo dark > $this->CURRENT_FAVICON");
exec('cp /pineapple/modules/Themes/img/favicon-dark.ico /pineapple/img/favicon.ico');
}
$this->response = array("message" => "Icon Changed");
break;
// Pineapple Throbber gif
case 'Throbber':
if ($this->request->light) {
exec("echo light > $this->CURRENT_THROBBER");
exec("cp $this->BACKUP_THROBBER /pineapple/img/throbber.gif");
}
else
{
exec("echo dark > $this->CURRENT_THROBBER");
exec('cp /pineapple/modules/Themes/img/throbber-dark.gif /pineapple/img/throbber.gif');
}
$this->response = array("message" => "Throbber Changed");
break;
// Modify all of the module Icons
case 'All':
foreach ($this->ALL_MODULES as $module)
{
$current = $this->currentFile($module);
$success = $this->replaceModuleImage(
$module,
$this->request->color,
$this->request->brightness
);
}
$this->response = array(
"success" => true,
"message" => "All module icons changed to {$this->request->color}-{$this->request->brightness}"
);
break;
// Assume module Icon
default:
$success = $this->replaceModuleImage(
$this->request->img,
$this->request->color,
$this->request->brightness
);
$this->response = array(
"success" => $success,
"message" => "{$this->request->img} icon changed to {$this->request->color}-{$this->request->brightness}"
);
break;
}
}
/*
* replaceModuleImage
* $moduleName -> String name of module, can be any format (nEtWoRkIng) because it gets formatted
* $color -> string name of the color, used for index of mapping
* $brightness -> string name of brightness, used for map selection
*/
public function replaceModuleImage($moduleName, $color, $brightness)
{
$current = $this->currentFile($moduleName);
$replace = "/pineapple/modules/{$moduleName}/module_icon.svg";
switch($color)
{
case 'light':
return $this->restoreModuleIcon (
$moduleName
);
break;
case 'dark':
if (exec("echo dark > $current") != 0 ||
exec("echo $brightness >> $current") != 0 ||
!$this->searchAndReplaceFile($replace, "FFFFFF"))
{
return false;
}
break;
default:
$hex = "";
switch($brightness)
{
case 'light':
$hex = $this->LIGHT_COLOR_HEX_MAP[$color];
break;
case 'dark':
$hex = $this->DARK_COLOR_HEX_MAP[$color];
break;
default:
$hex = $this->NORMAL_COLOR_HEX_MAP[$color];
break;
}
// Replace the modules icon image
if (exec("echo $color > $current") != 0 ||
exec("echo $brightness >> $current") != 0)
{
return false;
}
if (!$this->searchAndReplaceFile($replace, $hex)) {
return false;
}
break;
}
return true;
}
/*
* searchAndReplaceFile
* $s -> substring to find
* return: true or false showing succcessful string replacement
*/
public function searchAndReplaceFile($f, $s)
{
// Use a stream editor so we dont have to load the entire file into RAM
return (exec("sed -i 's/fill:\(.*\);/fill:#{$s};/g' $f") == 0);
}
/*
* setCurrentTheme
* $theme -> modify CURRENT_CSS file with new theme
*/
public function setCurrentTheme($theme)
{
$this->current_theme = $theme;
exec('echo '.$theme.' > /pineapple/modules/Themes/css/CURRENT_CSS');
}
/*
* getCurrentTheme
* return current theme, and all parameters for icon colors/brightness
*/
public function getCurrentTheme()
{
$line = file('/pineapple/modules/Themes/css/CURRENT_CSS')[0];
$line = trim(preg_replace('/\s+/', ' ', $line));
$logo = file('/pineapple/modules/Themes/img/CURRENT_LOGO')[0];
$logo = trim(preg_replace('/\s+/', ' ', $logo));
$icon = file('/pineapple/modules/Themes/img/CURRENT_FAVICON')[0];
$icon = trim(preg_replace('/\s+/', ' ', $icon));
$throbber = file('/pineapple/modules/Themes/img/CURRENT_THROBBER')[0];
$throbber = trim(preg_replace('/\s+/', ' ', $throbber));
$this->response = array(
"current" => $line,
"logo" => $logo,
"icon" => $icon,
"throbber" => $throbber,
);
foreach ($this->ALL_MODULES as $module)
{
$current = $this->currentFile($module);
$lower = strtolower($module);
$color = file($current)[0];
$color = trim(preg_replace('/\s+/', ' ', $color));
$brightness = file($current)[1];
$brightness = trim(preg_replace('/\s+/', ' ', $brightness));
$this->response[$lower] = $color;
$this->response[$lower.'brightness'] = $brightness;
}
}
/*
* isCurrentThemeEnv
* $theme string name of theme to check if its current
* check if global current_them var is set, compare against that
* this way we dont open,read,close a file every for every check
*/
public function isCurrentThemeEnv($theme)
{
if ($this->current_theme != "") {
return ($this->current_theme == $theme);
}
if (!file_exists($this->CURRENT_CSS)) {
return false;
}
$line = file($this->CURRENT_CSS)[0];
$line = trim(preg_replace('/\s+/', ' ', $line));
return ($line === $theme);
}
/*
* restoreImages
* Undo any changes made by this Module
* This includes: original icons, gifs, svg's
*/
public function restoreImages()
{
$success = true;
exec("cp {$this->BACKUP_FAVICON} /pineapple/img/favicon.ico");
exec("cp {$this->BACKUP_LOGO} /pineapple/img/logo.png");
exec("cp {$this->BACKUP_THROBBER} /pineapple/img/throbber.gif");
exec('echo light > /pineapple/modules/Themes/img/CURRENT_LOGO');
exec('echo light > /pineapple/modules/Themes/img/CURRENT_FAVICON');
exec('echo light > /pineapple/modules/Themes/img/CURRENT_THROBBER');
foreach ($this->ALL_MODULES as $module)
{
$current = $this->currentFile($module);
$success = $this->restoreModuleIcon (
$module
);
}
$this->response = array(
"success" => $success,
"message" => "Restored all files"
);
}
/*
* restoreModuleIcon
* Generic helper function to put a modules icon back to normal
* using only the name of the module (in any format).
*/
public function restoreModuleIcon($moduleName)
{
$current = $this->currentFile($moduleName);
$replace = "/pineapple/modules/{$moduleName}/module_icon.svg";
if (!$this->searchAndReplaceFile($replace, $this->RESTORE_HEX))
{
return false;
}
if (exec("echo light > $current") != 0 ||
exec("echo normal >> $current") != 0)
{
return false;
}
return true;
}
/*
* restoreDefault
* backup all files if not done yet
* put the original css file back
* restore all of the images
*/
public function restoreDefault()
{
$this->backupFiles();
exec("cp {$this->BACKUP_MAIN_CSS} /pineapple/css/main.css");
$this->setCurrentTheme('main.css');
$this->restoreImages();
}
/*
* getThemeCode
* retrieve the css styling code from a theme file
*/
public function getThemeCode()
{
$code = file_get_contents($this->CSS_DIR . $this->request->name);
$this->response = array("code" => $code, "file" => $this->CSS_DIR . $this->request->name);
}
/*
* getThemeFields
* more or less only returns the code for now
*/
public function getThemeFields()
{
$allFields = array();
$code = file_get_contents($this->CSS_DIR . $this->request->name);
$this->response = array("code" => $code);
}
/*
* activateTheme
* mv the users selected theme to main.css file
*/
public function activateTheme()
{
$themeName = $this->request->name;
$cmd = exec("cp {$this->CSS_DIR}{$themeName} /pineapple/css/main.css");
if ($cmd == 0) {
$this->setCurrentTheme($themeName);
$message = $themeName . " is now active.";
$this->response = array("return" => true, "message" => $message);
}
else
{
$message = "Could not move theme" . $themeName . "(Something is wrong..)";
$this->response = array("return" => false,"message" => $message);
}
}
/* Credits to SteveRusin at http://php.net/manual/en/ref.strings.php */
private function endsWith($str, $sub)
{
return (substr($str, strlen($str) - strlen($sub)) === $sub);
}
/*
* handleDeleteTheme
* delete a users theme file from the local css directory
*/
public function handleDeleteTheme()
{
$themeName = $this->request->name;
exec("rm {$this->CSS_DIR}{$themeName}");
if (!file_exists("/pineapple/modules/Themes/css/" . $themeName)) {
$message = "Deleted " . $themeName;
} else {
$message = "Error deleting " . $themeName;
}
$this->response = array("message" => $message);
}
/*
* submitThemeCode
* save a users theme file in the local css directory
*/
public function submitThemeCode()
{
$code = $this->request->themeCode;
$themeName = $this->request->name;
$fileName = $this->request->fileName;
file_put_contents($this->CSS_DIR . $themeName, $code);
$message = (!file_exists($this->CSS_DIR . $themeName)) ? "Created " . $themeName : "Updated " . $themeName;
$this->response = array(
"message" => $message,
"filename" => $fileName
);
}
/*
* handleGetThemeList
* get the list of .css files in the local css directory
* avoid sending back the main.css file so it cannot be modified
*/
public function handleGetThemeList()
{
$all_themes = array();
$root_themes = preg_grep('/^([^.])/', scandir("{$this->CSS_DIR}"));
foreach ($root_themes as $theme) {
if (!is_file($theme) && $this->endsWith($theme, '.css') && $theme != "main.css") {
$active = $this->isCurrentThemeEnv($theme);
$obj = array("title" => $theme, "location" => "../Themes/css/", "active" => $active);
array_push($all_themes, $obj);
}
}
$this->response = $all_themes;
}
/*
* handleCreateNewTheme
* create a new .css theme file in the local css directory
*/
public function handleCreateNewTheme()
{
$themePath = $this->CSS_DIR;
$themeName = str_replace(' ', '_', $this->request->themeName);
if (!$this->endswith($themeName, '.css')) {
$themeName = $themeName . ".css";
}
if (file_exists($themePath . $themeName)) {
$this->response = array("create_success" => false, "create_message" => "A theme named {$themeName} already exists.");
return;
}
exec("cp {$this->SKELETON_CSS} {$themePath}{$themeName}");
$this->response = array("create_success" => true, "create_message" => "Created {$themeName}");
}
/*
* backupFiles
* Backup all of the .css/IMG files used so the module can properly restore defaults
*/
public function backupFiles()
{
$success = true;
$modules = array();
if (!file_exists($this->BACKUP_MAIN_CSS)) {
exec("cp /pineapple/css/main.css {$this->BACKUP_MAIN_CSS}");
array_push($modules, "Backed up main.css.");
}
if (!file_exists($this->SKELETON_CSS)) {
mkdir($this->CSS_DIR);
exec("cp {$this->BACKUP_MAIN_CSS} {$this->SKELETON_CSS}");
array_push($modules, "Backed up skeleton.css.");
}
if (!file_exists($this->BACKUP_THROBBER)) {
exec("cp /pineapple/img/throbber.gif {$this->BACKUP_THROBBER}");
array_push($modules, "Backed up favicon.ico");
}
if (!file_exists($this->CURRENT_THROBBER)) {
exec("echo light > $this->CURRENT_THROBBER");
array_push($modules, "Wrote to {$this->CURRENT_THROBBER}");
}
if (!file_exists($this->BACKUP_FAVICON)) {
exec("cp /pineapple/img/favicon.ico {$this->BACKUP_FAVICON}");
array_push($modules, "Backed up favicon.ico");
}
if (!file_exists($this->CURRENT_FAVICON)) {
exec("echo light > $this->CURRENT_FAVICON");
array_push($modules, "Wrote to /pineapple/modules/Themes/img/CURRENT_FAVICON");
}
if (!file_exists($this->BACKUP_LOGO)) {
exec("cp /pineapple/img/logo.png $this->BACKUP_LOGO");
array_push($modules, "Wrote to {$this->BACKUP_LOGO}");
}
if (!file_exists($this->CURRENT_LOGO)) {
exec("echo light > $this->CURRENT_LOGO");
array_push($modules, "Wrote to {$this->CURRENT_LOGO}");
}
foreach ($this->ALL_MODULES as $module)
{
$current = $this->currentFile($module);
if (!$this->backupModuleIcon($current))
{
array_push($modules, "Did not write to {$current}.");
}
else
{
array_push($modules, "Wrote to {$current}.");
}
}
$this->response = array(
"success" => $success,
"message" => $success ?
"Created a backup file for all files" :
"Failed to backup files! Tread lightly",
"modules" => $modules
);
}
public function backupModuleIcon($currentFile) {
if (!file_exists($currentFile)) {
if (exec("echo light > $currentFile") != 0 ||
exec("echo normal >> $currentFile") != 0)
{
return false;
}
return true;
}
return false;
}
}

499
Themes/css/1980.css Normal file
View File

@ -0,0 +1,499 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:lime;
font-family: monospace;
}
i {
color: lime;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: lime;
text-align: center;
background-color: black;
border: 1px solid lime;
border-radius: 4px;
}
.panel-default {
border-color: lime;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid lime;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: lime;
white-space:nowrap;
background-color: black;
border: lime;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: lime;
background-color: black;
background-image: none;
border: 1px solid lime;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid lime;
border-top: 1px solid lime;
}
table {
background-color: black;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: black;
}
* {
color: lime;
border-color: lime;
border-top: lime;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: lime;
word-break: break-all;
word-wrap: break-word;
background-color: #000000;
border: 1px solid lime;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #000000;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #000;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: limegreen;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #18ff00;
color:lime;
}
.btn {
background-color: black;
font-family: monospace;
}
.alert-info {
color: lime;
background-color: black;
border-color: lime;
}
p {
color: lime;
font-family: monospace;
}
.text-muted {
color:forestgreen;
}
.h3 h3 {
color:lime;
}
.h2, h2 {
font-size: 30px;
color:lime;
}
.h1, h1 {
font-size: 30px;
color:lime;
}
.btn-default {
color:lime;
border-color: lime;
}
.btn-default:hover {
color: lime;
background-color: lime;
border-color: lime;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #000000;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #000;
opacity: 1;
color: lime;
}
.panel-footer {
padding: 10px 15px;
background-color: #000000;
border-top: 1px solid #0F0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #000;
opacity: 1;
color: lime;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #000;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000 !important;
word-wrap: break-word !important;
border: 1px solid #000 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:lime;
}
.alert-danger {
color: lime;
background-color: black;
border-color: lime;
}
.panel-title {
background-color:black;
color: lime;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: lime;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:black;
}
.panel-default>.panel-heading {
color: lime;
background-color: black;
border-color: lime;
border-bottom-color: lime;
border-bottom: lime;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: lime;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: lime;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: black;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid lime;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: middle;
border-top: 1px solid lime;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: darkgray;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: black;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: lime;
}
input:focus + .slider {
box-shadow: 0 0 1px lime;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

250
Themes/css/default.css Normal file
View File

@ -0,0 +1,250 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #f8f8f8;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #eee;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #e7e7e7;
}
.sidebar .active {
background-color: #eee;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #e7e7e7;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #fff;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #fff !important;
word-wrap: break-word !important;
border: 1px solid #ccc !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "WiFi Pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #2196F3;
}
input:focus + .slider {
box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

526
Themes/css/evilrose.css Normal file
View File

@ -0,0 +1,526 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:#ff0066;
font-family: monospace;
}
i {
color: #ff0066;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #ff0066;
text-align: center;
background-color: black;
border: 1px solid #ff0066;
border-radius: 4px;
}
.panel-default {
border-color: #ff0066;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid #ff0066;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #ff0066;
white-space:nowrap;
background-color: black;
border: #ff0066;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #ff0066;
background-color: black;
background-image: none;
border: 1px solid #ff0066;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid #ff0066;
border-top: 1px solid #ff0066;
}
table {
background-color: black;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: black;
}
* {
color: #ff0066;
border-color: #ff0066;
border-top: #ff0066;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid black;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #ff0066;
word-break: break-all;
word-wrap: break-word;
background-color: black;
border: 1px solid #ff0066;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: black;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: black;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #ff66a3;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #ff0000;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: black;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #ff66a3;
color:#ff0066;
}
.btn {
background-color: black;
font-family: monospace;
}
.alert-info {
color: #ff0066;
background-color: black;
border-color: #ff0066;
}
p {
color: #ff0066;
font-family: monospace;
}
.text-muted {
color:#ff66a3;
}
.h3 h3 {
color:#ff0066;
}
.h2, h2 {
font-size: 30px;
color:#ff0066;
}
.h1, h1 {
font-size: 30px;
color:#ff0066;
}
.btn-default {
color:#ff0066;
border-color: #ff0066;
}
.btn-default:hover {
color: #ff0066;
background-color: #ff0066;
border-color: #ff0066;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid black;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: black;
opacity: 1;
color: #ff0066;
}
.panel-footer {
padding: 10px 15px;
background-color: black;
border-top: 1px solid #ff66a3;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: black;
opacity: 1;
color: #ff0066;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: black;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000 !important;
word-wrap: break-word !important;
border: 1px solid #000 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:#ff0066;
}
.alert-danger {
color: #ff0066;
background-color: black;
border-color: #ff0066;
}
.panel-title {
background-color:black;
color: #ff0066;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: #ff0066;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:black;
}
.panel-default>.panel-heading {
color: #ff0066;
background-color: black;
border-color: #ff0066;
border-bottom-color: #ff0066;
border-bottom: #ff0066;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: #ff0066;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: #ff0066;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: black;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid #ff0066;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ff0066;
}
.modal-content {
position: relative;
background-color: black;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #ff0066;
}
input:focus + .slider {
box-shadow: 0 0 1px #ff0066;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

522
Themes/css/hackerblues.css Normal file
View File

@ -0,0 +1,522 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:#0066ff;
font-family: monospace;
}
i {
color: #0066ff;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #0066ff;
text-align: center;
background-color: black;
border: 1px solid #0066ff;
border-radius: 4px;
}
.panel-default {
border-color: #0066ff;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid #0066ff;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #0066ff;
white-space:nowrap;
background-color: black;
border: #0066ff;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #0066ff;
background-color: black;
background-image: none;
border: 1px solid #0066ff;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid #0066ff;
border-top: 1px solid #0066ff;
}
table {
background-color: black;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: black;
}
* {
color: #0066ff;
border-color: #0066ff;
border-top: #0066ff;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid black;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #0066ff;
word-break: break-all;
word-wrap: break-word;
background-color: black;
border: 1px solid #0066ff;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: black;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: black;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #00004d;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #ff0000;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: black;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #00004d;
color:#0066ff;
}
.btn {
background-color: black;
font-family: monospace;
}
.alert-info {
color: #0066ff;
background-color: black;
border-color: #0066ff;
}
p {
color: #0066ff;
font-family: monospace;
}
.text-muted {
color:blue;
}
.h3 h3 {
color:#0066ff;
}
.h2, h2 {
font-size: 30px;
color:#0066ff;
}
.h1, h1 {
font-size: 30px;
color:#0066ff;
}
.btn-default {
color:#0066ff;
border-color: #0066ff;
}
.btn-default:hover {
color: #0066ff;
background-color: #0066ff;
border-color: #0066ff;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid black;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: black;
opacity: 1;
color: #0066ff;
}
.panel-footer {
padding: 10px 15px;
background-color: black;
border-top: 1px solid #00004d;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: black;
opacity: 1;
color: #0066ff;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: black;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000 !important;
word-wrap: break-word !important;
border: 1px solid #000 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:#0066ff;
}
.alert-danger {
color: #0066ff;
background-color: black;
border-color: #0066ff;
}
.panel-title {
background-color:black;
color: #0066ff;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: #0066ff;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:black;
}
.panel-default>.panel-heading {
color: #0066ff;
background-color: black;
border-color: #0066ff;
border-bottom-color: #0066ff;
border-bottom: #0066ff;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: #0066ff;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: #0066ff;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: black;
}
.table>thead>tr>th {
vertical-align: middle;
border-bottom: 2px solid #0066ff;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: middle;
border-top: 1px solid #0066ff;
}
.modal-content {
background-color: black;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #0066ff;
}
input:focus + .slider {
box-shadow: 0 0 1px #0066ff;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

499
Themes/css/hak5.css Normal file
View File

@ -0,0 +1,499 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:blue;
font-family:webkit-pictograph;
}
i {
color: blue;
font: webkit-pictograph;
}
b, strong {
font-weight: 700;
font-family: webkit-pictograph;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: webkit-pictograph;
font-weight: 500;
line-height: 1.1;
color: blue;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: red;
text-align: center;
background-color: white;
border: 1px solid red;
border-radius: 4px;
}
.panel-default {
border-color: red;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid red;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: blue;
white-space:nowrap;
background-color: white;
border: red;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: red;
background-color: white;
background-image: none;
border: 1px solid red;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid red;
border-top: 1px solid red;
}
table {
background-color: white;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: white;
}
* {
color: red;
border-color: red;
border-top: red;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid white;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: red;
word-break: break-all;
word-wrap: break-word;
background-color: white;
border: 1px solid red;
border-radius: 4px;
font-family: webkit-pictograph;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: white;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: white;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: red;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid red;
color:blue;
}
.btn {
background-color: white;
font-family: webkit-pictograph;
}
.alert-info {
color: red;
background-color: white;
border-color: red;
}
p {
color: red;
font-family: webkit-pictograph;
}
.text-muted {
color:blue;
}
.h3 h3 {
color:blue;
}
.h2, h2 {
font-size: 30px;
color:blue;
}
.h1, h1 {
font-size: 30px;
color:blue;
}
.btn-default {
color:red;
border-color: red;
}
.btn-default:hover {
color: red;
background-color: red;
border-color: red;
}
.sidebar .active {
background-color: white;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid white;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: white;
opacity: 1;
color: red;
}
.panel-footer {
padding: 10px 15px;
background-color: white;
border-top: 1px solid red;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: white;
opacity: 1;
color: red;
font-family: webkit-pictograph;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: white;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: white !important;
word-wrap: break-word !important;
border: 1px solid white !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:red;
}
.alert-danger {
color: red;
background-color: white;
border-color: red;
}
.panel-title {
background-color:white;
color: red;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: red;
}
.panel-body {
background-color:white;
font-family: webkit-pictograph;
}
.panel-heading {
background-color:white;
}
.panel-default>.panel-heading {
color: blue;
background-color: white;
border-color: red;
border-bottom-color: red;
border-bottom: red;
}
td {
background-color:white;
}
.nav {
background-color:white;
}
.sidebar-nav.navbar-collapse {
background-color:white;
}
.navbar-default{
background-color:white;
}
.navbar-static-top {
background-color:white;
border-color: red;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: webkit-pictograph;
background-color: red;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: white;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid red;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid red;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: red;
}
input:focus + .slider {
box-shadow: 0 0 1px red;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

View File

@ -0,0 +1,525 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:#991f00 ;
font-family: monospace;
}
i {
color: #991f00 ;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #991f00 ;
text-align: center;
background-color: black;
border: 1px solid #991f00 ;
border-radius: 4px;
}
.panel-default {
border-color: #991f00 ;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid #991f00 ;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #991f00 ;
white-space:nowrap;
background-color: black;
border: #991f00 ;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #991f00 ;
background-color: black;
background-image: none;
border: 1px solid #991f00 ;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid #991f00 ;
border-top: 1px solid #991f00 ;
}
table {
background-color: black;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: black;
}
* {
color: #991f00 ;
border-color: #991f00 ;
border-top: #991f00 ;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid black;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #991f00 ;
word-break: break-all;
word-wrap: break-word;
background-color: black;
border: 1px solid #991f00 ;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: black;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: black;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #e62e00;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: black;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: black;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #e62e00;
color:#991f00 ;
}
.btn {
background-color: black;
font-family: monospace;
}
.alert-info {
color: #991f00 ;
background-color: black;
border-color: #991f00 ;
}
p {
color: #991f00 ;
font-family: monospace;
}
.text-muted {
color:#e62e00;
}
.h3 h3 {
color:#991f00 ;
}
.h2, h2 {
font-size: 30px;
color:#991f00 ;
}
.h1, h1 {
font-size: 30px;
color:#991f00 ;
}
.btn-default {
color:#991f00 ;
border-color: #991f00 ;
}
.btn-default:hover {
color: #991f00 ;
background-color: #991f00 ;
border-color: #991f00 ;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid black;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: black;
opacity: 1;
color: #991f00 ;
}
.panel-footer {
padding: 10px 15px;
background-color: black;
border-top: 1px solid #e62e00;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: black;
opacity: 1;
color: #991f00 ;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: black;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: black !important;
word-wrap: break-word !important;
border: 1px solid black !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:#991f00 ;
}
.alert-danger {
color: #991f00 ;
background-color: black;
border-color: #991f00 ;
}
.panel-title {
background-color:black;
color: #991f00 ;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: #991f00 ;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:black;
}
.panel-default>.panel-heading {
color: #991f00 ;
background-color: black;
border-color: #991f00 ;
border-bottom-color: #991f00 ;
border-bottom: #991f00 ;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: #991f00 ;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: #991f00 ;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: black;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid #991f00 ;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #991f00 ;
}
.modal-content {
position: relative;
background-color: black;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #991f00;
}
input:focus + .slider {
box-shadow: 0 0 1px #991f00;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

525
Themes/css/halflife.css Normal file
View File

@ -0,0 +1,525 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:black;
font-family: monospace;
}
i {
color: black;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: black;
text-align: center;
background-color: #991f00;
border: 1px solid black;
border-radius: 4px;
}
.panel-default {
border-color: black;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid black;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: black;
white-space:nowrap;
background-color: #991f00;
border: black;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: black;
background-color: #991f00;
background-image: none;
border: 1px solid black;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid black;
border-top: 1px solid black;
}
table {
background-color: #991f00;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: #991f00;
}
* {
color: black;
border-color: black;
border-top: black;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #991f00;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: black;
word-break: break-all;
word-wrap: break-word;
background-color: #991f00;
border: 1px solid black;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #991f00;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #991f00;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #e62e00;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #991f00;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: #991f00;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #e62e00;
color:black;
}
.btn {
background-color: #991f00;
font-family: monospace;
}
.alert-info {
color: black;
background-color: #991f00;
border-color: black;
}
p {
color: black;
font-family: monospace;
}
.text-muted {
color:#e62e00;
}
.h3 h3 {
color:black;
}
.h2, h2 {
font-size: 30px;
color:black;
}
.h1, h1 {
font-size: 30px;
color:black;
}
.btn-default {
color:black;
border-color: black;
}
.btn-default:hover {
color: black;
background-color: black;
border-color: black;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #991f00;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #991f00;
opacity: 1;
color: black;
}
.panel-footer {
padding: 10px 15px;
background-color: #991f00;
border-top: 1px solid #e62e00;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #991f00;
opacity: 1;
color: black;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #991f00;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #991f00 !important;
word-wrap: break-word !important;
border: 1px solid #991f00 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:black;
}
.alert-danger {
color: black;
background-color: #991f00;
border-color: black;
}
.panel-title {
background-color:#991f00;
color: black;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: black;
}
.panel-body {
background-color:#991f00;
font-family:monospace;
}
.panel-heading {
background-color:#991f00;
}
.panel-default>.panel-heading {
color: black;
background-color: #991f00;
border-color: black;
border-bottom-color: black;
border-bottom: black;
}
td {
background-color:#991f00;
}
.nav {
background-color:#991f00;
}
.sidebar-nav.navbar-collapse {
background-color:#991f00;
}
.navbar-default{
background-color:#991f00;
}
.navbar-static-top {
background-color:#991f00;
border-color: black;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: black;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: #991f00;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid black;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid black;
}
.modal-content {
position: relative;
background-color: #991f00;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: black;
}
input:focus + .slider {
box-shadow: 0 0 1px black;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

576
Themes/css/kbeflo-dark.css Normal file
View File

@ -0,0 +1,576 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #0c0c0c;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #131313;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #181818;
}
.sidebar .active {
background-color: #131313;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #202020;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #000;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #fff !important;
word-wrap: break-word !important;
border: 1px solid #ccc !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "WiFi Pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
}
.navbar-default {
background-color: #0c0c0c;
border-color: #181818;
}
.panel-footer {
background-color: #0e0e0e;
border-top: 1px solid #202020;
}
.panel-default {
border-color: #202020;
}
.panel-default>.panel-heading {
color: #c6c6c6;
background-color: #0e0e0e;
border-color: #202020;
}
.panel-body {
color: #c6c6c6;
background-color: #000;
}
.h2, h2 {
font-size: 30px;
color: #c6c6c6;
}
.panel>.panel-body+.table,
.panel>.panel-body+.table-responsive,
.panel>.table+.panel-body,
.panel>.table-responsive+.panel-body {
border-top: 1px solid #202020;
}
a {
color: #c6c6c6;
text-decoration: none;
}
a:focus, a:hover {
color: #c6c6c6;
text-decoration: none;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: #131313;
}
.btn-default {
color: #c6c6c6;
background-color: #010101;
border-color: #454545;
}
.btn-default.active, .btn-default:active {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-default:hover {
color: #c6c6c6;
background-color: #131313;
border-color: #767676;
}
.btn-default.focus, .btn-default:focus {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-default.active.focus, .btn-default.active:focus, .btn-default.active:hover, .btn-default:active.focus, .btn-default:active:focus, .btn-default:active:hover, .open>.dropdown-toggle.btn-default.focus, .open>.dropdown-toggle.btn-default:focus, .open>.dropdown-toggle.btn-default:hover {
color: #212121;
background-color: #010101;
border-color: #171717;
}
.navbar-default .navbar-nav>li>a {
color: #404041;
}
.navbar-default .navbar-nav>.open>a, .navbar-default .navbar-nav>.open>a:focus, .navbar-default .navbar-nav>.open>a:hover {
color: #404041;
background-color: #0c0c0c;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #a2a2a2;
text-align: center;
background-color: #131313;
border: 1px solid #2e2e2e;
border-radius: 4px;
}
.modal-body {
background-color: #000;
border: 1px solid #202020;
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
.modal-header {
color: #c6c6c6;
border: 1px solid #202020;
border-bottom: none;
background-color: #000;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.form-control {
background-color: #111111;
border: 1px solid #333333;
color: #c6c6c6;
}
.btn-success {
color: #c6c6c6;
background-color: #010101;
border-color: #454545;
}
.btn-success.active, .btn-success:active {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-success.focus, .btn-success:focus {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-success:hover {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-success.active.focus, .btn-success.active:focus, .btn-success.active:hover, .btn-success:active.focus, .btn-success:active:focus, .btn-success:active:hover, .open>.dropdown-toggle.btn-success.focus, .open>.dropdown-toggle.btn-success:focus, .open>.dropdown-toggle.success:hover {
color: #212121;
background-color: #010101;
border-color: #171717;
}
.btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover {
background-color: #111;
border-color: #333;
color: #333;
}
.panel-group .panel-heading+.panel-collapse>.list-group, .panel-group .panel-heading+.panel-collapse>.panel-body {
border-top: 1px solid #212121;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #111111;
opacity: 1;
}
pre {
color: #c6c6c6;
background-color: #111111;
border: 1px solid #333333;
}
.alert-info {
color: #a94442;
background-color: #000;
border-color: #000;
}
.alert-success {
color: #a94442;
background-color: #000;
border-color: #000;
}
.table {
color: #c6c6c6;
background-color: #000;
}
.table > thead > tr > th {
border-bottom: 2px solid #333;
}
.table > tbody > tr.active > td, .table > tbody > tr.active > th, .table > tbody > tr > td.active, .table > tbody > tr > th.active, .table > tfoot > tr.active > td, .table > tfoot > tr.active > th, .table > tfoot > tr > td.active, .table > tfoot > tr > th.active, .table > thead > tr.active > td, .table > thead > tr.active > th, .table > thead > tr > td.active, .table > thead > tr > th.active {
color: #c6c6c6;
background-color: #000;
border-color: #333;
}
.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th {
border-top: 1px solid #333;
}
.progress-bar {
background-color: #202020;
}
.progress {
background-color: #111;
}
.alert-danger {
color: #a94442;
background-color: #000;
border-color: #000;
}
.table-striped > tbody > tr:nth-of-type(2n+1) {
background-color: #000;
}
tr:hover td {
background: #000;
}
.text-info {
color: #a94442;
}
.open > .dropdown-menu {
background-color: #0c0c0c;
border-color: #181818;
color: #c6c6c6;
}
.dropdown-menu > li > a {
color: #777;
}
.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover {
color: #777;
background-color: #131313;
}
.btn-info {
color: #c6c6c6;
background-color: #010101;
border-color: #454545;
}
.btn-info:hover {
color: #c6c6c6;
background-color: #131313;
border-color: #767676;
}
.btn-info.active, .btn-info:active {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-info.focus, .btn-info:focus {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-info.active.focus, .btn-info.active:focus, .btn-info.active:hover, .btn-info:active.focus, .btn-info:active:focus, .btn-info:active:hover, .open>.dropdown-toggle.btn-info.focus, .open>.dropdown-toggle.btn-info:focus, .open>.dropdown-toggle.btn-info:hover {
color: #212121;
background-color: #010101;
border-color: #171717;
}
.btn-danger {
color: #c6c6c6;
background-color: #010101;
border-color: #454545;
}
.btn-danger:hover {
color: #c6c6c6;
background-color: #131313;
border-color: #767676;
}
.btn-danger.active, .btn-danger:active {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-danger.focus, .btn-danger:focus {
color: #c6c6c6;
background-color: #010101;
border-color: #212121;
}
.btn-danger.active.focus, .btn-danger.active:focus, .btn-danger.active:hover, .btn-danger:active.focus, .btn-danger:active:focus, .btn-danger:active:hover, .open>.dropdown-toggle.btn-danger.focus, .open>.dropdown-toggle.btn-danger:focus, .open>.dropdown-toggle.btn-danger:hover {
color: #212121;
background-color: #010101;
border-color: #171717;
}
.btn-switch {
position: relative;
display: block;
width: 50px;
height: 25px;
cursor: pointer;
background-color: darkgray;
border: 2px solid darkgray;
border-radius: 40px;
}
.btn-switch--on {
background-color: #ccffff;
border: 2px solid #ccffff;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: gray;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: black;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: whitesmoke;
}
input:focus + .slider {
box-shadow: 0 0 1px whitesmoke;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

250
Themes/css/main.css Normal file
View File

@ -0,0 +1,250 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #f8f8f8;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #eee;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #e7e7e7;
}
.sidebar .active {
background-color: #eee;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #e7e7e7;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #fff;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #fff !important;
word-wrap: break-word !important;
border: 1px solid #ccc !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "WiFi Pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #2196F3;
}
input:focus + .slider {
box-shadow: 0 0 1px #2196F3;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

525
Themes/css/malware.css Normal file
View File

@ -0,0 +1,525 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:red;
font-family: monospace;
}
i {
color: red;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: red;
text-align: center;
background-color: black;
border: 1px solid red;
border-radius: 4px;
}
.panel-default {
border-color: red;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid red;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: red;
white-space:nowrap;
background-color: black;
border: red;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: red;
background-color: black;
background-image: none;
border: 1px solid red;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid red;
border-top: 1px solid red;
}
table {
background-color: black;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: black;
}
* {
color: red;
border-color: red;
border-top: red;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: red;
word-break: break-all;
word-wrap: break-word;
background-color: #000000;
border: 1px solid red;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #000000;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #000;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: darkred;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #ff0000;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: #000000;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid darkred;
color:red;
}
.btn {
background-color: black;
font-family: monospace;
}
.alert-info {
color: red;
background-color: black;
border-color: red;
}
p {
color: red;
font-family: monospace;
}
.text-muted {
color:darkred;
}
.h3 h3 {
color:red;
}
.h2, h2 {
font-size: 30px;
color:red;
}
.h1, h1 {
font-size: 30px;
color:red;
}
.btn-default {
color:red;
border-color: red;
}
.btn-default:hover {
color: red;
background-color: red;
border-color: red;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #000000;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #000;
opacity: 1;
color: red;
}
.panel-footer {
padding: 10px 15px;
background-color: #000000;
border-top: 1px solid darkred;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #000;
opacity: 1;
color: red;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #000;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000 !important;
word-wrap: break-word !important;
border: 1px solid #000 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:red;
}
.alert-danger {
color: red;
background-color: black;
border-color: red;
}
.panel-title {
background-color:black;
color: red;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: red;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:black;
}
.panel-default>.panel-heading {
color: red;
background-color: black;
border-color: red;
border-bottom-color: red;
border-bottom: red;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: red;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: red;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: black;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid red;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid red;
}
.modal-content {
position: relative;
background-color: black;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: darkgray;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: black;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: red;
}
input:focus + .slider {
box-shadow: 0 0 1px red;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

511
Themes/css/morning.css Normal file
View File

@ -0,0 +1,511 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:cornflowerblue;
font-family:cursive;
}
i {
color: cornflowerblue;
font: cursive;
}
b, strong {
font-weight: 700;
font-family: cursive;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: cursive;
font-weight: 500;
line-height: 1.1;
color: cornflowerblue;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: rosybrown;
text-align: center;
background-color: wheat;
border: 1px solid rosybrown;
border-radius: 4px;
}
.panel-default {
border-color: rosybrown;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid rosybrown;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: cornflowerblue;
white-space:nowrap;
background-color: wheat;
border: rosybrown;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: rosybrown;
background-color: wheat;
background-image: none;
border: 1px solid rosybrown;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid rosybrown;
border-top: 1px solid rosybrown;
}
table {
background-color: wheat;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: wheat;
}
* {
color: rosybrown;
border-color: rosybrown;
border-top: rosybrown;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid wheat;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: rosybrown;
word-break: break-all;
word-wrap: break-word;
background-color: wheat;
border: 1px solid rosybrown;
border-radius: 4px;
font-family: cursive;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: wheat;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: wheat;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: rosybrown;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid rosybrown;
color:cornflowerblue;
}
.btn {
background-color: wheat;
font-family: cursive;
}
.alert-info {
color: rosybrown;
background-color: wheat;
border-color: rosybrown;
}
p {
color: rosybrown;
font-family: cursive;
}
.text-muted {
color:darkmagenta;
}
.h3 h3 {
color:cornflowerblue;
}
.h2, h2 {
font-size: 30px;
color:cornflowerblue;
}
.h1, h1 {
font-size: 30px;
color:cornflowerblue;
}
.btn-default {
color:rosybrown;
border-color: rosybrown;
}
.btn-default:hover {
color: rosybrown;
background-color: rosybrown;
border-color: rosybrown;
}
.sidebar .active {
background-color: wheat;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid wheat;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: wheat;
opacity: 1;
color: rosybrown;
}
.panel-footer {
padding: 10px 15px;
background-color: wheat;
border-top: 1px solid rosybrown;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: wheat;
opacity: 1;
color: rosybrown;
font-family: cursive;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: wheat;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: wheat !important;
word-wrap: break-word !important;
border: 1px solid wheat !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:rosybrown;
}
.alert-danger {
color: rosybrown;
background-color: wheat;
border-color: rosybrown;
}
.panel-title {
background-color:wheat;
color: rosybrown;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: rosybrown;
}
.panel-body {
background-color:wheat;
font-family: cursive;
}
.panel-heading {
background-color:wheat;
}
.panel-default>.panel-heading {
color: cornflowerblue;
background-color: wheat;
border-color: rosybrown;
border-bottom-color: rosybrown;
border-bottom: rosybrown;
}
td {
background-color:wheat;
}
.nav {
background-color:wheat;
}
.sidebar-nav.navbar-collapse {
background-color:wheat;
}
.navbar-default{
background-color:wheat;
}
.navbar-static-top {
background-color:wheat;
border-color: rosybrown;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: cursive;
background-color: rosybrown;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: wheat;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid rosybrown;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid rosybrown;
}
.modal-content {
position: relative;
background-color: wheat;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: rosybrown;
}
input:focus + .slider {
box-shadow: 0 0 1px rosybrown;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

504
Themes/css/neon.css Normal file
View File

@ -0,0 +1,504 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:magenta;
font-family: monospace;
}
i {
color: lime;
font: monospace;
}
b, strong {
font-weight: 700;
font-family: monospace;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: monospace;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: lime;
text-align: center;
background-color: purple;
border: 1px solid lime;
border-radius: 4px;
}
.panel-default {
border-color: lime;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid lime;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: lime;
white-space:nowrap;
background-color: purple;
border: lime;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: lime;
background-color: purple;
background-image: none;
border: 1px solid lime;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid lime;
border-top: 1px solid lime;
}
table {
background-color: purple;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: purple;
}
* {
color: lime;
border-color: lime;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: lime;
word-break: break-all;
word-wrap: break-word;
background-color: #000000;
border: 1px solid lime;
border-radius: 4px;
font-family: monospace;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #000000;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #000;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: limegreen;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid #18ff00;
color:lime;
}
.btn {
background-color: purple;
font-family: monospace;
}
.alert-info {
color: lime;
background-color: purple;
border-color: lime;
}
p {
color: lime;
font-family: monospace;
}
.text-muted {
color:violet;
}
.h3 h3 {
color:lime;
}
.h2, h2 {
font-size: 30px;
color:lime;
}
.h1, h1 {
font-size: 30px;
color:lime;
}
.btn-default {
color:lime;
border-color: lime;
}
.btn-default:hover {
color: magenta;
background-color: lime;
border-color: #adadad;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #000000;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #000;
opacity: 1;
color: lime;
}
.panel-footer {
padding: 10px 15px;
background-color: #000000;
border-top: 1px solid #0F0;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #000;
opacity: 1;
color: lime;
font-family: monospace;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #000;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000 !important;
word-wrap: break-word !important;
border: 1px solid #000 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "Neon Pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:lime;
}
.alert-danger {
color: lime;
background-color: purple;
border-color: lime;
}
.panel-title {
background-color:purple;
color: lime;
}
.panel-body {
background-color:black;
font-family:monospace;
}
.panel-heading {
background-color:purple;
}
.panel-default>.panel-heading {
color: lime;
background-color: purple;
border-color: lime;
}
td {
background-color:black;
}
.nav {
background-color:black;
}
.sidebar-nav.navbar-collapse {
background-color:black;
}
.navbar-default{
background-color:black;
}
.navbar-static-top {
background-color:black;
border-color: lime;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: monospace;
background-color: lime;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: magenta;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid lime;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid lime;
}
.modal-content {
position: relative;
background-color: black;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: lime;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: purple;
}
input:focus + .slider {
box-shadow: 0 0 1px purple;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

526
Themes/css/spring.css Normal file
View File

@ -0,0 +1,526 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:#00e673;
font-family: sans-serif;
}
i {
color: #00e673;
font: sans-serif;
}
b, strong {
font-weight: 700;
font-family: sans-serif;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: sans-serif;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: #00e673;
text-align: center;
background-color: #00e673;
border: 1px solid #00e673;
border-radius: 4px;
}
.panel-default {
border-color: #00e673;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid #00e673;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: #00e673;
white-space:nowrap;
background-color: #6666ff;
border: #00e673;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #00e673;
background-color: #6666ff;
background-image: none;
border: 1px solid #00e673;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid #00e673;
border-top: 1px solid #00e673;
}
table {
background-color: #6666ff;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: #6666ff;
}
* {
color: #00e673;
border-color: #00e673;
border-top: #00e673;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #6666ff;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #00e673;
word-break: break-all;
word-wrap: break-word;
background-color: #6666ff;
border: 1px solid #00e673;
border-radius: 4px;
font-family: sans-serif;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #6666ff;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #6666ff;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: lightblue;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #ff0000;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: #6666ff;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid dark#00e673;
color:#00e673;
}
.btn {
background-color: #6666ff;
font-family: sans-serif;
}
.alert-info {
color: #00e673;
background-color: springgreen;
border-color: #00e673;
}
p {
color: #00e673;
font-family: sans-serif;
}
.text-muted {
color:#00e673;
}
.h3 h3 {
color:#00e673;
}
.h2, h2 {
font-size: 30px;
color:#00e673;
}
.h1, h1 {
font-size: 30px;
color:#00e673;
}
.btn-default {
color:#00e673;
border-color: #00e673;
}
.btn-default:hover {
color: #00e673;
background-color: #00e673;
border-color: #00e673;
}
.sidebar .active {
background-color: #00e673;
color:black
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #6666ff;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #6666ff;
opacity: 1;
color: #00e673;
}
.panel-footer {
padding: 10px 15px;
background-color: #6666ff;
border-top: 1px solid dark#00e673;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #6666ff;
opacity: 1;
color: #00e673;
font-family: sans-serif;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #6666ff;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000038 !important;
word-wrap: break-word !important;
border: 1px solid #000038 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:#00e673;
}
.alert-danger {
color: #00e673;
background-color: #6666ff;
border-color: #00e673;
}
.panel-title {
background-color:#6666ff;
color: #00e673;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: #00e673;
}
.panel-body {
background-color:#6666ff;
font-family:sans-serif;
}
.panel-heading {
background-color:#6666ff;
}
.panel-default>.panel-heading {
color: #00e673;
background-color: #6666ff;
border-color: #00e673;
border-bottom-color: #00e673;
border-bottom: #00e673;
}
td {
background-color:#6666ff;
}
.nav {
background-color:#6666ff;
}
.sidebar-nav.navbar-collapse {
background-color:#6666ff;
}
.navbar-default{
background-color:#6666ff;
}
.navbar-static-top {
background-color:#6666ff;
border-color: #00e673;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: sans-serif;
background-color: #00e673;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: #6666ff;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid #00e673;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #00e673;
}
.modal-content {
position: relative;
background-color: #6666ff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: darkslategray;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: #6666ff;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: #00e673;
}
input:focus + .slider {
box-shadow: 0 0 1px #00e673;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

525
Themes/css/starstuff.css Normal file
View File

@ -0,0 +1,525 @@
.truncated {
text-overflow: ellipsis;
overflow: hidden
}
a {
color:gold;
font-family: sans-serif;
}
i {
color: gold;
font: sans-serif;
}
b, strong {
font-weight: 700;
font-family: sans-serif;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
font-family: sans-serif;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
.input-group-addon {
padding: 6px 12px;
font-size: 14px;
font-weight: 400;
line-height: 1;
color: gold;
text-align: center;
background-color: #000038;
border: 1px solid gold;
border-radius: 4px;
}
.panel-default {
border-color: gold;
}
.panel>.panel-body+.table, .panel>.panel-body+.table-responsive, .panel>.table+.panel-body, .panel>.table-responsive+.panel-body {
border-top: 1px solid gold;
}
.dropdown-menu>li>a {
display:block;
padding: 3px 20px;
clear: both;
font-weight: 400;
line-height: 1.42857143;
color: gold;
white-space:nowrap;
background-color: #000038;
border: gold;
}
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: gold;
background-color: #000038;
background-image: none;
border: 1px solid gold;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075);
-webkit-transition: border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s,box-shadow ease-in-out .15s;
}
hr {
margin-top: 20px;
margin-bottom: 20px;
border: 0;
border-bottom: 1px solid gold;
border-top: 1px solid gold;
}
table {
background-color: #000038;
}
.table-responsive {
min-height: .01%;
overflow-x: auto;
background-color: #000038;
}
* {
color: gold;
border-color: gold;
border-top: gold;
}
.uppercase {
text-transform: uppercase;
}
.table-layout-fixed {
table-layout: fixed;
}
.module-icon {
display: inline;
height: 24px;
width: 24px;
}
.fixed-addon-width {
min-width: 70px;
text-align: left;
}
.fixed-addon-width-2 {
min-width: 90px;
text-align: left;
}
.fixed-addon-width-3 {
min-width: 110px;
text-align: left;
}
.fixed-width-200 {
min-width: 200px;
}
.caret-reversed {
border-top-width: 0;
border-bottom: 4px solid #000038;
}
.image-small-18 {
height: 18px;
}
.center-text {
text-align: center;
}
.scrollable-pre {
overflow: auto;
word-wrap: normal;
white-space: pre;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: gold;
word-break: break-all;
word-wrap: break-word;
background-color: #000038;
border: 1px solid gold;
border-radius: 4px;
font-family: sans-serif;
}
.log-pre {
max-height: 300px;
}
.btn-fixed-length {
width: 70px;
}
.title-message {
margin-left: 10px;
padding-left: 5px;
padding-right: 5px;
height: 9px;
border-radius: 3px;
}
.padding-left {
margin-left: 10px;
}
.select-inline {
font-weight: normal;
}
body {
background-color: #000038;
}
.logout {
cursor: pointer;
}
.module-nav li a {
margin-left: 30px;
}
.module-nav li:hover {
background-color: #000038;
}
.nav>li>a:focus, .nav>li>a:hover {
text-decoration: none;
background-color: lightblue;
}
.sidebar .sidebar-nav.navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.progress {
height: 20px;
margin-bottom: 20px;
overflow: hidden;
background-color: #ff0000;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
box-shadow: inset 0 1px 2px rgba(0,0,0,.1);
}
.table>tbody>tr.active>td, .table>tbody>tr.active>th, .table>tbody>tr>td.active, .table>tbody>tr>th.active, .table>tfoot>tr.active>td, .table>tfoot>tr.active>th, .table>tfoot>tr>td.active, .table>tfoot>tr>th.active, .table>thead>tr.active>td, .table>thead>tr.active>th, .table>thead>tr>td.active, .table>thead>tr>th.active {
background-color: #000038;
}
.sidebar ul li {
cursor: pointer;
border-bottom: 1px solid darkgold;
color:gold;
}
.btn {
background-color: #000038;
font-family: sans-serif;
}
.alert-info {
color: gold;
background-color: blue;
border-color: gold;
}
p {
color: gold;
font-family: sans-serif;
}
.text-muted {
color:darkgold;
}
.h3 h3 {
color:gold;
}
.h2, h2 {
font-size: 30px;
color:gold;
}
.h1, h1 {
font-size: 30px;
color:gold;
}
.btn-default {
color:gold;
border-color: gold;
}
.btn-default:hover {
color: gold;
background-color: gold;
border-color: gold;
}
.sidebar .active {
background-color: #13033a;
}
@media(min-width:768px) {
.sidebar {
z-index: 1;
position: absolute;
width: 250px;
margin-top: 51px;
}
.module-content {
position: inherit;
margin: 0 0 0 250px;
padding: 15px 30px;
border-left: 1px solid #000038;
}
.navbar-top-links {
margin-left: 10px;
}
}
.navbar-top-links {
margin-right: 5px;
margin-left: 10px;
}
.navbar-top-links li {
display: inline-block;
}
.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
background-color: #000038;
opacity: 1;
color: gold;
}
.panel-footer {
padding: 10px 15px;
background-color: #000038;
border-top: 1px solid darkgold;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
textarea.form-control {
height: auto;
background-color: #000038;
opacity: 1;
color: gold;
font-family: sans-serif;
}
.navbar {
margin-bottom: 0;
}
.navbar-top-links .dropdown-menu li {
display: block;
}
.module-content {
padding: 15px 15px;
background-color: #000038;
}
.pointer {
cursor: pointer;
}
.dropdown-menu {
cursor: pointer;
}
.dropdown-menu-top {
max-height: 300px !important;
overflow-y: auto !important;
}
@media(max-width:768px) {
.dropdown-menu-top {
margin: auto !important;
position: absolute !important;
background-color: #000038 !important;
word-wrap: break-word !important;
border: 1px solid #000038 !important;
width: 300px !important;
max-width: 300px !important;
}
.dropdown-menu-top li a {
white-space: normal !important;
}
.dropdown-menu-logout {
max-width: 50px !important;
}
}
.login-logo {
margin: 0 auto;
padding-bottom: 10px;
max-width: 150px;
}
.brand-logo {
content: url('/img/logo.png');
max-height: 30px;
padding-bottom: 5px;
}
.brand-text::after {
content: "pineapple";
padding-top: 3px;
padding-left: 5px;
float: right;
color:gold;
}
.alert-danger {
color: gold;
background-color: #000038;
border-color: gold;
}
.panel-title {
background-color:#000038;
color: gold;
}
.panel-default>.panel-heading+.panel-collapse>.panel-body {
border-top-color: gold;
}
.panel-body {
background-color:#000038;
font-family:sans-serif;
}
.panel-heading {
background-color:#000038;
}
.panel-default>.panel-heading {
color: gold;
background-color: #000038;
border-color: gold;
border-bottom-color: gold;
border-bottom: gold;
}
td {
background-color:#000038;
}
.nav {
background-color:#000038;
}
.sidebar-nav.navbar-collapse {
background-color:#000038;
}
.navbar-default{
background-color:#000038;
}
.navbar-static-top {
background-color:#000038;
border-color: gold;
}
.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child>.btn, .input-group-btn:first-child>.btn-group>.btn, .input-group-btn:first-child>.dropdown-toggle, .input-group-btn:last-child>.btn-group:not(:last-child)>.btn, .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle) {
font-family: sans-serif;
background-color: gold;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
color: #000038;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid gold;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid gold;
}
.modal-content {
position: relative;
background-color: #000038;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #999;
border: 1px solid rgba(0,0,0,.2);
border-radius: 6px;
outline: 0;
-webkit-box-shadow: 0 3px 9px rgba(0,0,0,.5);
box-shadow: 0 3px 9px rgba(0,0,0,.5);
}
.switch {
position: relative;
display: inline-block;
width: 46px;
height: 20px;
}
.switch input {display:none;}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: darkgray;
-webkit-transition: .4s;
transition: .4s;
}
.slider:before {
position: absolute;
content: "";
height: 12px;
width: 12px;
left: 4px;
bottom: 4px;
background-color: #000038;
-webkit-transition: .4s;
transition: .4s;
}
input:checked + .slider {
background-color: gold;
}
input:focus + .slider {
box-shadow: 0 0 1px gold;
}
input:checked + .slider:before {
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
}
/* Rounded sliders */
.slider.round {
border-radius: 34px;
}
.slider.round:before {
border-radius: 50%;
}

BIN
Themes/img/favicon-dark.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 B

BIN
Themes/img/logo-dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

604
Themes/js/module.js Normal file
View File

@ -0,0 +1,604 @@
registerController("ThemesController", ['$api', '$scope','$window','$route', '$http', function ($api, $scope, $window, $route, $http) {
getThemes();
getCurrentTheme();
backupFiles();
$scope.debug = false;
$scope.themes = [];
$scope.themeToDelete = null;
$scope.themeDeleteValidation = '';
$scope.messages = [];
$scope.newThemeName = '';
$scope.throbber = true;
$scope.running = false;
$scope.current = '';
$scope.library = true;
$scope.editor = true;
$scope.workshopTheme = {themeName: "", file: "", code: "", title: ""};
$scope.editThemeFile = {themeName: "", file: "", code: ""};
$scope.colors = ['dark', 'light', 'red', 'blue', 'green', 'purple', 'orange', 'yellow', 'pink'];
$scope.brightness = ['light', 'normal', 'dark'];
$scope.working = false;
$scope.autoRefresh = true;
// Dark and White
$scope.throbbercontrast = true; // true == light -> false == dark
$scope.logocontrast = true;
$scope.faviconcontrast = true;
$scope.reconcontrast = true;
$scope.logocontrastText = 'light';
$scope.faviconcontrastText = 'light';
$scope.throbbercontrastText = 'light';
// Color and brightness
$scope.allcontrastText = 'light';
$scope.allcontrastBrightness = 'normal';
$scope.dashboardcontrastText = 'light';
$scope.dashboardcontrastBrightness = 'normal';
$scope.reconcontrastText = 'light';
$scope.reconcontrastBrightness = 'normal';
$scope.profilingcontrastText = 'light';
$scope.profilingcontrastBrightness = 'normal';
$scope.clientscontrastText = 'light';
$scope.clientscontrastBrightness = 'normal';
$scope.modulescontrastText = 'light';
$scope.modulescontrastBrightness = 'normal';
$scope.filterscontrastText = 'light';
$scope.filterscontrastBrightness = 'normal';
$scope.pineapcontrastText = 'light';
$scope.pineapcontrastBrightness = 'normal';
$scope.trackingcontrastText = 'light';
$scope.trackingcontrastBrightness = 'normal';
$scope.loggingcontrastText = 'light';
$scope.loggingcontrastBrightness = 'normal';
$scope.reportingcontrastText = 'light';
$scope.reportingcontrastBrightness = 'normal';
$scope.networkingcontrastText = 'light';
$scope.networkingcontrastBrightness = 'normal';
$scope.configurationcontrastText = 'light';
$scope.configurationcontrastBrightness = 'normal';
$scope.advancedcontrastText = 'light';
$scope.advancedcontrastBrightness = 'normal';
$scope.helpcontrastText = 'light';
$scope.helpcontrastBrightness = 'normal';
$scope.switchOn = {
"position" : "relative",
"display" : "block",
"width" : "50px",
"height" : "25px",
"cursor" : "pointer",
"border" : "2px solid darkgray",
"background-color" : "darkgray",
"border-radius" : "40px"
}
$scope.switchOff = {
"position" : "relative",
"display" : "block",
"width" : "50px",
"height" : "25px",
"cursor" : "pointer",
"border" : "2px solid darkgray",
"background-color" : "white",
"border-radius" : "40px"
}
$scope.selectOptions = {
"position" : "relative",
"display" : "block",
"width" : "100px",
"height" : "25px",
"cursor" : "pointer",
"border" : "2px solid darkgray",
"background-color" : "white",
"color" : "black",
"border-radius" : "40px"
}
$scope.changeThrobber = function(){
$scope.throbbercontrast = !$scope.throbbercontrast;
$scope.throbbercontrastText = 'light';
if (!$scope.throbbercontrast) {
$scope.throbbercontrastText = 'dark';
}
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Throbber',
light: $scope.throbbercontrast
}, function(response) {
$scope.sendMessage("Throbber", "set to " + $scope.throbbercontrastText);
log("changeThrobber", response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeLogo = function(){
$scope.logocontrast = !$scope.logocontrast;
$scope.logocontrastText = 'light';
if (!$scope.logocontrast) {
$scope.logocontrastText = 'dark';
}
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Logo',
light: $scope.logocontrast
}, function(response) {
$scope.sendMessage("Logo", "set to " + $scope.logocontrastText);
log("changeLogo", response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeFavicon = function(){
$scope.faviconcontrast = !$scope.faviconcontrast;
$scope.faviconcontrastText = 'light';
if (!$scope.faviconcontrast) {
$scope.faviconcontrastText = 'dark';
}
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Icon',
light: $scope.faviconcontrast
}, function(response) {
$scope.sendMessage("Icon", "set to " + $scope.faviconcontrastText);
log("changeFavicon", response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeAllIcons = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'All',
color: $scope.allcontrastText,
brightness: $scope.allcontrastBrightness
}, function(response) {
for (msg in response) {
$scope.sendMessage("All Icons", "set to " + $scope.allcontrastText + "(" + $scope.allcontrastBrightness + ")");
log("changeAllIcons", "Success? " + response.success + " " + response.message);
}
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeDashboard = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Dashboard',
color: $scope.dashboardcontrastText,
brightness: $scope.dashboardcontrastBrightness
}, function(response) {
$scope.sendMessage("Dashboard Icon", "set to " + $scope.dashboardcontrastText + " (" + $scope.dashboardcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeRecon = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Recon',
color: $scope.reconcontrastText,
brightness: $scope.reconcontrastBrightness
}, function(response) {
$scope.sendMessage("Recon Icon", "set to " + $scope.reconcontrastText + " (" + $scope.reconcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeProfiling = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Profiling',
color: $scope.profilingcontrastText,
brightness: $scope.profilingcontrastBrightness
}, function(response) {
$scope.sendMessage("Profiling Icon", "set to " + $scope.profilingcontrastText + " (" + $scope.profilingcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeClients = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Clients',
color: $scope.clientscontrastText,
brightness: $scope.clientscontrastBrightness
}, function(response) {
$scope.sendMessage("Clients Icon", "set to " + $scope.clientscontrastText + " (" + $scope.clientscontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeModules = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'ModuleManager',
color: $scope.modulescontrastText,
brightness: $scope.modulescontrastBrightness
}, function(response) {
$scope.sendMessage("ModuleManager Icon", "set to " + $scope.modulescontrastText + " (" + $scope.modulescontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeFilters = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Filters',
color: $scope.filterscontrastText,
brightness: $scope.filterscontrastBrightness
}, function(response) {
$scope.sendMessage("Filters Icon", "set to " + $scope.filterscontrastText + " (" + $scope.filterscontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changePineap = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'PineAP',
color: $scope.pineapcontrastText,
brightness: $scope.pineapcontrastBrightness
}, function(response) {
$scope.sendMessage("Filters Icon", "set to " + $scope.pineapcontrastText + " (" + $scope.pineapcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeTracking = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Tracking',
color: $scope.trackingcontrastText,
brightness: $scope.trackingcontrastBrightness
}, function(response) {
$scope.sendMessage("Tracking Icon", "set to " + $scope.trackingcontrastText + " (" + $scope.trackingcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeLogging = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Logging',
color: $scope.loggingcontrastText,
brightness: $scope.loggingcontrastBrightness
}, function(response) {
$scope.sendMessage("Logging Icon", "set to " + $scope.loggingcontrastText + " (" + $scope.loggingcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeReporting = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Reporting',
color: $scope.reportingcontrastText,
brightness: $scope.reportingcontrastBrightness
}, function(response) {
$scope.sendMessage("Reporting Icon", "set to " + $scope.reportingcontrastText + " (" + $scope.reportingcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeNetworking = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Networking',
color: $scope.networkingcontrastText,
brightness: $scope.networkingcontrastBrightness
}, function(response) {
$scope.sendMessage("Networking Icon", "set to " + $scope.networkingcontrastText + " (" + $scope.networkingcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeConfiguration = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Configuration',
color: $scope.configurationcontrastText,
brightness: $scope.configurationcontrastBrightness
}, function(response) {
$scope.sendMessage("Configuration Icon", "set to " + $scope.configurationcontrastText + " (" + $scope.configurationcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeAdvanced = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Advanced',
color: $scope.advancedcontrastText,
brightness: $scope.advancedcontrastBrightness
}, function(response) {
$scope.sendMessage("Advanced Icon", "set to " + $scope.advancedcontrastText + " (" + $scope.advancedcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.changeHelp = function(){
$api.request({
module: "Themes",
action: "replaceImage",
img: 'Help',
color: $scope.helpcontrastText,
brightness: $scope.helpcontrastBrightness
}, function(response) {
$scope.sendMessage("Help Icon", "set to " + $scope.helpcontrastText + " (" + $scope.helpcontrastBrightness + ")");
log("changeDashboard", "Success? " + response.success + " " + response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
function log(fn, message) {
if ($scope.debug === true) {
console.log("fn[" + fn + "]-> " + message);
}
};
function backupFiles() {
$api.request({
module: "Themes",
action: "backupFiles"
}, function(response) {
log('backupFiles', response.message);
for (i=0; i<response.modules.length; i++) {
log('backupFiles', response.modules[i]);
}
});
};
function getCurrentTheme() {
$api.request({
module: "Themes",
action: "getCurrentTheme"
}, function(response) {
$scope.current = response.current;
$scope.logocontrastText = response.logo;
$scope.faviconcontrastText = response.icon;
$scope.throbbercontrastText = response.throbber;
$scope.dashboardcontrastText = response.dashboard;
$scope.dashboardcontrastBrightness = response.dashboardbrightness;
$scope.reconcontrastText = response.recon;
$scope.reconcontrastBrightness = response.reconbrightness;
$scope.profilingcontrastText = response.profiling;
$scope.profilingcontrastBrightness = response.profilingbrightness;
$scope.clientscontrastText = response.clients;
$scope.clientscontrastBrightness = response.clientsbrightness;
$scope.modulescontrastText = response.modulemanager;
$scope.modulescontrastBrightness = response.modulemanagerbrightness;
$scope.filterscontrastText = response.filters;
$scope.filterscontrastBrightness = response.filtersbrightness;
$scope.pineapcontrastText = response.pineap;
$scope.pineapcontrastBrightness = response.pineapbrightness;
$scope.trackingcontrastText = response.tracking;
$scope.trackingcontrastBrightness = response.trackingbrightness;
$scope.loggingcontrastText = response.logging;
$scope.loggingcontrastBrightness = response.loggingbrightness;
$scope.reportingcontrastText = response.reporting;
$scope.reportingcontrastBrightness = response.reportingbrightness;
$scope.networkingcontrastText = response.networking;
$scope.networkingcontrastBrightness = response.networkingbrightness;
$scope.configurationcontrastText = response.configuration;
$scope.configurationcontrastBrightness = response.configurationbrightness;
$scope.advancedcontrastText = response.advanced;
$scope.advancedcontrastBrightness = response.advancedbrightness;
$scope.helpcontrastText = response.help;
$scope.helpcontrastBrightness = response.helpbrightness;
$scope.throbbercontrast = true;
$scope.faviconcontrast = true;
$scope.logocontrast = true;
if (response.throbber === 'dark') {
$scope.throbbercontrast = false;
}
if (response.icon === 'dark') {
$scope.faviconcontrast = false;
}
if (response.logo === 'dark') {
$scope.logocontrast = false;
}
log("getCurrentTheme", "Current theme is " + $scope.current);
log("getCurrentTheme", "Current throbber is " + response.throbber);
log("getCurrentTheme", "Current icon is " + response.icon);
log("getCurrentTheme", "Current logo is " + response.logo);
log("getCurrentTheme", "Current Dashboard is " + response.dashboard);
});
};
$scope.file_changed = function(element) {
$scope.$apply(function(scope) {
var photofile = element.files[0];
var reader = new FileReader();
reader.onload = function(e) {
$scope.$apply(function() {
$scope.prev_img = e.target.result;
});
};
reader.readAsDataURL(photofile);
});
};
$scope.restoreDefault = function() {
$scope.working = "Working..";
console.log("Restore Default Function Called");
$scope.throbber = true;
$api.request({
module: "Themes",
action: "restoreDefault"
}, function (response) {
log("restoreDefault", "default CSS restored");
$scope.sendMessage("Restore", "Default CSS restored");
$scope.throbber = false;
log("restoreDefault", "Successful? "+ response.success + ". " + response.message);
$scope.working = "Done!";
if ($scope.autoRefresh) {
$window.location.reload();
}
});
};
$scope.sendMessage = function (t, m) {
// Add a new message to the top of the list
$scope.messages.unshift({title: t, msg: m});
log("sendMessage", m);
// if there are 4 items in the list remove the 4th item
if ($scope.messages.length == 4) {
$scope.dismissMessage(3);
}
};
$scope.dismissMessage = function ($index) {
//var index = $scope.messages.indexOf(message);
$scope.messages.splice($index, 1);
log("dismissMessage", "message at index " + $index + " dismissed" );
};
$scope.createNewTheme = function () {
$api.request({
module: "Themes",
action: "createNewTheme",
themeName: $scope.newThemeName
}, function (response) {
if (response.create_success) {
log("createNewTheme", "success! new theme '"+ $scope.newThemeName + "' created");
getThemes();
$scope.newThemeName = '';
} else {
$scope.sendMessage("Error Creating Theme", response.create_message);
log("createNewTheme", "error! " + response.create_message);
}
});
};
$scope.deleteTheme = function (theme) {
$api.request({
module: "Themes",
action: "deleteTheme",
name: theme.title
}, function (response) {
$scope.sendMessage("Delete", response.message);
getThemes();
});
log('deleteTheme', 'Deleting Theme: ' + theme.title );
};
$scope.activateTheme = function (theme) {
$api.request({
module: "Themes",
action: "activateTheme",
name: theme.title
}, function (response) {
if (response.return === true) {
$scope.currentTheme = theme.title;
getThemes();
$scope.sendMessage("Activated", response.message);
if ($scope.autoRefresh) {
$window.location.reload();
}
}
});
};
$scope.editTheme = function (theme) {
console.log("action: edit " + theme.name);
$api.request({
module: "Themes",
action: "getThemeCode",
name: theme.name
}, function (response) {
$scope.editThemeFile.code = response.code;
$scope.editThemeFile.file = response.file;
$scope.editThemeFile.themeName = theme.name;
});
};
$scope.saveThemeCode = function (editFile) {
console.log("action: save " + editFile.themeName);
$api.request({
module: "Themes",
action: "submitThemeCode",
themeCode: editFile.code,
name: editFile.themeName,
fileName: editFile.file
}, function (response) {
$scope.sendMessage("Saved", editFile.themeName);
});
if ($scope.current === editFile.themeName)
{
$api.request({
module: "Themes",
action: "activateTheme",
name: editFile.themeName
}, function (response) {
if (response.return === true) {
$scope.currentTheme = editFile.themeName;
$scope.sendMessage("Activated", response.message);
}
});
log('saveThemeCode', "Theme code saved, also current so set to inactive");
}
};
$scope.getThemeFields = function (theme) {
$api.request({
module: "Themes",
action: "themeFields",
name: theme.title
}, function (response) {
$scope.workshopTheme.themeName = theme.title;
$scope.workshopTheme.title = theme.title;
$scope.workshopTheme.code = response.code;
console.log(response);
$scope.library = false;
});
};
function getThemes() {
$api.request({
module: "Themes",
action: "getThemeList"
}, function (response) {
$scope.themes = [];
for (var i = 0; i < response.length; i++) {
$scope.themes.unshift({
title: response[i].title,
storage: response[i].location,
active: response[i].active
});
}
});
}
}]);

786
Themes/module.html Normal file
View File

@ -0,0 +1,786 @@
<div class="row" ng-controller="ThemesController">
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">
<a href="javascript:;" data-toggle="collapse" data-target="#collapseControls" class="text-muted"><h4
class="panel-title"><b>Theme:</b> {{ current.substring(0, current.length - 4); }}</h4></a>
</div>
<div id="collapseControls" class="panel-collapse collapse in">
<div class="panel-body">
<table style="width:100%">
<tr>
<td>
Auto Refresh
</td>
<td>
<label class="switch" >
<input type="checkbox" ng-model="autoRefresh">
<span class="slider round">
</span>
</label>
</td>
<td style="text-align:right;">
<button class="btn btn-default"
data-toggle="modal"
data-target="#loadingModal"
type="button"
ng-click="restoreDefault()">Restore Default</button>
</td>
</tr>
<tr>
</tr>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<a href="javascript:;" data-toggle="collapse" data-target="#collapseMessages" class="text-muted"><h4
class="panel-title">Themes Messages</h4></a>
</div>
<div id="collapseMessages" class="panel-collapse collapse in">
<div class="panel-body">
<p ng-show="(messages.length == 0)" class="text-muted"><i>No Messages...</i></p>
<a ng-hide="(messages.length < 2)" ng-click="messages = []" class="pull-right" href="javascript:;">Clear
All</a>
<table style="width:100%" ng-hide="(messages.length == 0)">
<tr ng-repeat="message in messages">
<td>
<hr/>
<h5><b>{{ message.title }}</b> <a ng-click="dismissMessage($index)" href="javascript:;"
class="pull-right">Dismiss</a></h5>
<p class="text-muted"><i>{{ message.msg }}</i></p>
</td>
</tr>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<a href="javascript:;" data-toggle="collapse" data-target="#collapseIconColors" class="text-muted"><h4
class="panel-title">Icon Colors</h4></a>
</div>
<div id="collapseIconColors" class="panel-collapse collapse in">
<div class="panel-body">
<table class="table table-striped" align="left">
<thead>
<th>Icon</th>
<th>Color</th>
<th>Brightness</th>
</thead>
<tbody>
<tr><td>Throbber</td><td> {{ throbbercontrastText }}</td><td> N/A </td> </tr>
<tr><td>Logo</td><td> {{ logocontrastText }}</td><td> N/A </td> </tr>
<tr><td>Favicon</td><td> {{ faviconcontrastText }}</td><td> N/A </td> </tr>
<tr><td>Dashboard</td><td> {{ dashboardcontrastText }}</td><td> {{ dashboardcontrastBrightness }}</td> </tr>
<tr><td>Recon</td><td> {{ reconcontrastText }}</td><td> {{ reconcontrastBrightness }}</td> </tr>
<tr><td>Profiling</td><td> {{ profilingcontrastText }}</td><td> {{ profilingcontrastBrightness }}</td> </tr>
<tr><td>Clients</td><td> {{ clientscontrastText }}</td><td> {{ clientscontrastBrightness }}</td> </tr>
<tr><td>Modules</td><td> {{ modulescontrastText }}</td><td> {{ modulescontrastBrightness }}</td> </tr>
<tr><td>Filters</td><td> {{ filterscontrastText }}</td><td> {{ filterscontrastBrightness }}</td> </tr>
<tr><td>PineAP</td><td> {{ pineapcontrastText }}</td><td> {{ pineapcontrastBrightness }}</td> </tr>
<tr><td>Tracking</td><td> {{ trackingcontrastText }}</td><td> {{ trackingcontrastBrightness }}</td> </tr>
<tr><td>Logging</td><td> {{ loggingcontrastText }}</td><td> {{ loggingcontrastBrightness }}</td> </tr>
<tr><td>Reporting</td><td> {{ reportingcontrastText }}</td><td> {{ reportingcontrastBrightness }}</td> </tr>
<tr><td>Networking</td><td> {{ networkingcontrastText }}</td><td> {{ networkingcontrastBrightness }}</td> </tr>
<tr><td>Configuration</td><td> {{ configurationcontrastText }}</td><td> {{ configurationcontrastBrightness }}</td> </tr>
<tr><td>Advanced</td><td> {{ advancedcontrastText }}</td><td> {{ advancedcontrastBrightness }}</td> </tr>
<tr><td>Help</td><td> {{ helpcontrastText }}</td><td> {{ helpcontrastBrightness }}</td> </tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="panel-group" id="accordion">
<div class="col-md-9">
<!-- Library panel -->
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a href="javascript:;" data-toggle="collapse" data-parent="#accordion"
data-target="#collapseLibrary" class="text-muted">Themes</a></h5>
</div>
<div id="collapseLibrary" class="panel-collapse collapse in">
<div class="panel-body">
<div class="input-group" ng-show="library">
<input type="text" class="form-control" placeholder="Theme Name" name="themeName"
ng-model="newThemeName">
<span class="input-group-btn">
<button ng-disabled="newThemeName == ''" class="btn btn-default" type="button" ng-click="createNewTheme()">Create New Theme</button>
</span>
</div>
<hr ng-show="library"/>
<div ng-show="themes.length > 0 && library == true">
<div class="table-responsive">
<table class="table table-striped" align="center">
<thead>
<th>Theme Name</th>
<th>Location</th>
<th>Activate</th>
<th>Delete</th>
</thead>
<tbody>
<tr ng-repeat="theme in themes">
<td><a href="javascript:;" ng-click="getThemeFields(theme)">
<b>{{ theme.title.substring(0, theme.title.length - 4); }}</b></a></td>
<td class="text-muted"><i>{{ theme.storage }}</i></td>
<td><a href="javascript:;"
ng-click="activateTheme(theme)">Activate</a>
</td>
<td><a href="javascript:;" data-toggle="modal"
ng-click="deleteTheme(theme)"
> Delete</a>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div ng-hide="themes.length > 0 || library == false">
<p class="text-muted text-center">
<i>No Themes in Library to Display.</i>
</p>
</div>
<div ng-show="library == false">
<button type="submit" class="btn btn-default btn-sm" ng-click="library = true">Back To
Library
</button>
<hr />
<h3>Theme Editor | {{ workshopTheme.themeName }}</h3>
<div class="table-responsive">
<table class="table table-striped" align="center">
<thead>
<th>CSS Editor</th>
</thead>
<tbody>
<textarea class="form-control" rows="30" ng-model="workshopTheme.code"> </textarea>
<div class="modal-footer">
<div style="padding-right:5em" >
<button type="button" ng-click="saveThemeCode(workshopTheme)" class="btn btn-success pull-left"
data-dismiss="modal">Save
</button>
</div>
<div style="padding-left:5em" >
<button type="button" ng-click="saveThemeCode(workshopTheme); activateTheme(workshopTheme)" class="btn btn-success pull-left"
data-dismiss="modal" >Save and Activate
</button>
</div>
<button type="button" class="btn btn-default pull-right" data-dismiss="modal"
ng-click="library = true">Cancel
</button>
</div>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a href="javascript:;" data-toggle="collapse" data-parent="#accordion"
data-target="#collapseImages" class="text-muted">Icons</a></h5>
</div>
<div id="collapseImages" class="panel-collapse collapse">
<div class="panel-body">
<hr style="height:1px;border:none;color:#333;background-color:#333;">
<h3>Generic</h3>
<hr style="height:1px;border:none;color:#333;background-color:#333;">
<table class="table table-striped" align="center">
<thead>
<th>Type</th>
<th>Image</th>
<th>Light Theme</th>
<th>Dark Theme</th>
</thead>
<tbody>
<tr>
<td>
<b>Throbber</b>
</td>
<td>
<img src="/img/throbber.gif"/>
</td>
<td>
<div class="btn-switch"
ng-hide="throbbercontrast == false"
ng-style="switchOff"
ng-model="throbbercontrast"
ng-click="changeThrobber()">
</div>
</td>
<td>
<div class="btn-switch"
ng-hide="throbbercontrast == true"
ng-style="switchOn"
ng-model="throbbercontrast"
ng-click="changeThrobber()">
</div>
</td>
</tr>
<tr>
<td>
<b>Logo</b>
</td>
<td>
<img src="/img/logo.png" width="30" height="30" />
</td>
<td>
<div class="btn-switch"
ng-hide="logocontrast == false"
ng-style="switchOff"
ng-model="logocontrast"
ng-click="changeLogo()">
</div>
</td>
<td>
<div class="btn-switch"
ng-hide="logocontrast == true"
ng-style="switchOn"
ng-model="logocontrast"
ng-click="changeLogo()">
</div>
</td>
</tr>
<tr>
<td>
<b>Icon</b>
</td>
<td>
<img src="/img/favicon.ico"/>
</td>
<td>
<div class="btn-switch"
ng-hide="faviconcontrast == false"
ng-style="switchOff"
ng-model="faviconcontrast"
ng-click="changeFavicon()">
</div>
</td>
<td>
<div class="btn-switch"
ng-hide="faviconcontrast == true"
ng-style="switchOn"
ng-model="faviconcontrast"
ng-click="changeFavicon()">
</div>
</td>
</tr>
</tbody>
</table>
<hr style="height:1px;border:none;color:#333;background-color:#333;">
<h3>Modules</h3>
<hr style="height:1px;border:none;color:#333;background-color:#333;">
<table class="table table-striped" align="center">
<thead>
<th>Type</th>
<th>Image</th>
<th>Color</th>
<th>Brightness</th>
<th></th>
</thead>
<tbody>
<tr>
<td>
<b>ALL</b>
</td>
<td>
</td>
<td>
<select ng-model="allcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ allcontrastText }}"
>
</select>
</td>
<td>
<select ng-model="allcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ allcontrastBrightness }}"
>
</select>
</td>
<td>
<button class="btn btn-default"
type="button"
ng-click="changeAllIcons()">
Apply
</button>
</td>
</tr>
<tr>
<td>
<b>Dashboard</b>
</td>
<td>
<img src="/modules/Dashboard/module_icon.svg" width="30" height="30" />
</td>
<td>
<select ng-model="dashboardcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ dashboardcontrastText }}"
>
</select>
</td>
<td>
<select ng-model="dashboardcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ dashboardcontrastBrightness }}"
>
</select>
</td>
<td>
<button class="btn btn-default"
type="button"
ng-click="changeDashboard()">
Apply
</button>
</td>
</tr>
<tr>
<td><b>Recon</b></td>
<td><img src="/modules/Recon/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="reconcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ reconcontrastText }}"
>
</select>
</td>
<td><select ng-model="reconcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ reconcontrastBrightness }}"
>
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeRecon()">
Apply
</button>
</td>
</tr>
<td><b>Profiling</b></td>
<td><img src="/modules/Profiling/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="profilingcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ profilingcontrastText }}"
>
</select>
</td>
<td><select ng-model="profilingcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ profilingcontrastBrightness }}"
>
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeProfiling()">
Apply
</button>
</td>
</tr>
<td><b>Clients</b></td>
<td><img src="/modules/Clients/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="clientscontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ clientscontrastText }}"
>
</select>
</td>
<td><select ng-model="clientscontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ clientscontrastBrightness }}"
>
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeClients()">
Apply
</button>
</td>
</tr>
<tr>
<td><b>Modules</b></td>
<td><img src="/modules/ModuleManager/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="modulescontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ modulescontrastText }}"
>
</select>
</td>
<td><select ng-model="modulescontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ modulescontrastBrightness }}"
>
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeModules()">
Apply
</button>
</td>
</tr>
<tr>
<td><b>Filters</b></td>
<td><img src="/modules/Filters/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="filterscontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ filterscontrastText }}">
</select>
</td>
<td><select ng-model="filterscontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ filterscontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeFilters()">
Apply
</button>
</td>
</tr>
<tr>
<td><b>PineAP</b></td>
<td><img src="/modules/PineAP/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="pineapcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ pineapcontrastText }}">
</select>
</td>
<td><select ng-model="pineapcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ pineapcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changePineap()">Apply
</button>
</td>
</tr>
<tr>
<td><b>Tracking</b></td>
<td><img src="/modules/Tracking/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="trackingcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ trackingcontrastText }}">
</select>
</td>
<td><select ng-model="trackingcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ trackingcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeTracking()">Apply</button>
</td>
</tr>
<tr>
<td><b>Logging</b></td>
<td><img src="/modules/Logging/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="loggingcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ loggingcontrastText }}">
</select>
</td>
<td><select ng-model="loggingcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ loggingcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeLogging()">Apply
</button>
</td>
</tr>
<tr>
<td><b>Reporting</b></td>
<td><img src="/modules/Reporting/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="reportingcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ reportingcontrastText }}">
</select>
</td>
<td><select ng-model="reportingcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ reportingcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeReporting()">Apply
</button>
</td>
</tr>
<tr>
<td><b>Networking</b></td>
<td><img src="/modules/Networking/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="networkingcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ networkingcontrastText }}">
</select>
</td>
<td><select ng-model="networkingcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ networkingcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeNetworking()">Apply</button>
</td>
</tr>
<tr>
<td><b>Configuration</b></td>
<td><img src="/modules/Configuration/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="configurationcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ configurationcontrastText }}">
</select>
</td>
<td><select ng-model="configurationcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ configurationcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeConfiguration()">Apply
</button>
</td>
</tr>
<tr>
<td><b>Advanced</b></td>
<td><img src="/modules/Advanced/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="advancedcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ advancedcontrastText }}">
</select>
</td>
<td><select ng-model="advancedcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ advancedcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeAdvanced()">Apply
</button>
</td>
</tr>
<tr>
<td><b>Help</b></td>
<td><img src="/modules/Help/module_icon.svg" width="30" height="30" /></td>
<td><select ng-model="helpcontrastText"
ng-style="selectOptions"
ng-options="x for x in colors"
ng-value="{{ helpcontrastText }}">
</select>
</td>
<td><select ng-model="helpcontrastBrightness"
ng-style="selectOptions"
ng-options="x for x in brightness"
ng-value="{{ helpcontrastBrightness }}">
</select>
</td>
<td><button class="btn btn-default"
type="button"
ng-click="changeHelp()">Apply
</button>
</td>
</tr>
</tbody>
</table>
</ul>
</div>
</div>
</div>
<!-- Contribution Pannel -->
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a href="javascript:;" data-toggle="collapse" data-parent="#accordion"
data-target="#collapseContribution" class="text-muted">How To</a></h5>
</div>
<div id="collapseContribution" class="panel-collapse collapse">
<div class="panel-body">
<ul>
<li><b>Share your new theme</b></li>
<ul>
<li class="text-muted">Navigate to the wifi pineapple modules repository</li>
<li class="text-muted">Add your theme .css file in the css directory of this module</li>
<li class="text-muted">Create a new pull request</li>
<li class="text-muted">Update the version number</li>
<li class="text-muted">Update the module version in module.info</li>
</ul>
</ul>
<ul>
<li><b>Fix Images appearing broken/unable to be loaded</b></li>
<ul>
<li class="text-muted">Refresh the page</li>
<li class="text-muted">If the problem persists, see "Submit a Bug"</li>
</ul>
</ul>
<ul>
<li><b>Fix a messy looking page after a save/refresh</b></li>
<ul>
<li class="text-muted">Reselect 'Activate' beside your theme</li>
<li class="text-muted">Refresh the page</li>
</ul>
</ul>
<ul>
<li><b>Select the proper Image type</b></li>
<ul>
<li class="text-muted">Beside each Image type are two options "Light" and "Dark"</li>
<li class="text-muted">"Dark" images are intended for dark backgrounds </li>
<li class="text-muted">"Light" images are intended for light backgrounds </li>
</ul>
</ul>
<ul>
<li><b>Use a theme once without a module</b></li>
<ul>
<li class="text-muted">Navigate to https://github.com/kbeflo/pineapple-themes</li>
<li class="text-muted">Select a theme and run the install.sh script</li>
</ul>
</ul>
<ul>
<li><b>Submit a Bug</b></li>
<ul>
<li class="text-muted">Navigate to https://github.com/hak5/wifipineapple-modules/issues</li>
<li class="text-muted">Select the "New Issue" button </li>
<li class="text-muted">Tag @trashbo4t in your issue description </li>
</ul>
</ul>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a href="javascript:;" data-toggle="collapse" data-parent="#accordion"
data-target="#collapseTips" class="text-muted">Community Tips</a></h5>
</div>
<div id="collapseTips" class="panel-collapse collapse">
<div class="panel-body">
<ul>
<li><b>Creating a New Theme</b></li>
<ul>
<li class="text-muted">
The set of .css files bundled with the Themes module are already configured to handle
undefined colors from the standard bootstrap .css file in the default settings.
</li>
<li class="text-muted">
A reccommended method to ensure larger coverage is to create a new .css file with the theme creator
then copy another .css files code.
</li>
<li class="text-muted">
Once you copied the code do a search and replace for the colors of your choosing!
</li>
</ul>
</ul>
<ul>
<li><b>Working with .css files in a browser</b></li>
<ul>
<li class="text-muted">Modyfing a .css file with active updating is possible in modern browsers.</li>
<li class="text-muted">Select 'ctrl'+'shift'+'I', then select the sourses tab.</li>
<li class="text-muted">Select the 'css' folder, then the main.css file</li>
<li class="text-muted">Modify the main.css file until you like the appearance of the page.</li>
<li class="text-muted">From there select all of the code ('ctrl'+'a') and paste it into your theme files CSS Editor box</li>
<li class="text-muted">Then select "Save" and "Activate"</li>
</ul>
</ul>
<ul>
<li><b>Dark Theme vs Light Theme Icons</b></li>
<ul>
<li class="text-muted">If your background is dark, its best to choose a "Dark Theme" icon.</li>
<li class="text-muted">Overlooked transparency pixels will be harder to see this way!</li>
</ul>
</ul>
</div>
</div>
</div>
<!-- Change Log Pannel -->
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title"><a href="javascript:;" data-toggle="collapse" data-parent="#accordion"
data-target="#collapseChangelog" class="text-muted">Themes Change Log</a></h5>
</div>
<div id="collapseChangelog" class="panel-collapse collapse">
<div class="panel-body">
<ul>
<li><b>1.0</b></li>
<ul>
<li class="text-muted">Pending release of 1.0</li>
</ul>
</ul>
</div>
</div>
</div>
</div>
</div>
<div id="loadingModal" class="modal fade" role="dialog" >
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Loading</h4>
</div>
<div class="modal-body">
<div class="panel-title"><img src="/img/throbber.gif" ng-show="throbber"/>
<p><b>{{ working }}</b></p>
</div>
</div>
</div>
</div>
</div>

6
Themes/module.info Normal file
View File

@ -0,0 +1,6 @@
{
"title": "Themes",
"description": "Create, download, and share custom themes",
"version": "1.0",
"author": "trashbo4t"
}

52
Themes/module_icon.svg Normal file
View File

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="370.589px" height="370.589px" viewBox="0 0 370.589 370.589" style="enable-background:new 0 0 370.589 370.589;"
xml:space="preserve" fill="#808080">
<g>
<g>
<path d="M5.806,224.753c-7.741,7.741-7.741,20.291,0.002,28.034l10.114,10.114l24.18-9.46L30.99,277.97l50.811,50.812
l39.014-22.66l-19.858,41.815l16.843,16.844c7.743,7.743,20.293,7.743,28.034,0.002l91.812-91.812L97.618,132.941L5.806,224.753z"
/>
<path d="M358.83,11.841l-0.082-0.083c-9.66-9.66-21.981-13.478-35.631-11.043c-27.59,4.924-56.519,34.861-77.384,80.087
c-5.788,12.546-13.997,19.607-25.101,21.588c-21.311,3.803-48.293-11.741-64.344-27.792c-3.362-3.362-8.814-3.361-12.176,0.001
l-16.685,16.686l24.651,24.651c3.202,3.202,3.202,8.392,0,11.594c-3.202,3.202-8.393,3.202-11.594,0l-24.651-24.651l-6.178,6.178
c-3.364,3.364-3.364,8.815-0.002,12.178l139.703,139.703c3.361,3.361,8.812,3.36,12.177-0.002l34.458-34.458
c3.361-3.362,3.362-8.814,0.001-12.177c-16.051-16.051-31.595-43.034-27.792-64.344c1.98-11.103,9.042-19.312,21.588-25.1
c45.226-20.865,75.163-49.793,80.087-77.383C372.309,33.822,368.49,21.501,358.83,11.841z M343.056,48.746
c-5.857,5.857-15.354,5.857-21.213,0c-5.856-5.858-5.856-15.355,0-21.213c5.858-5.858,15.355-5.858,21.213,0
C348.914,33.391,348.914,42.888,343.056,48.746z"/>
</g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB