From a9c5c19aee8db8f4aa301eb9c26a498f2fd3ec0c Mon Sep 17 00:00:00 2001
From: cfoe <cfoe@ispconfig3>
Date: Wed, 11 Jul 2012 08:05:05 +0000
Subject: [PATCH] rc1 of default-v2

---
 interface/web/themes/default-v2/CHANGELOG     |   5 +-
 interface/web/themes/default-v2/TODO          |   4 +-
 .../web/themes/default-v2/css/styles.css      | 656 +++++++++---------
 .../{images => icons}/button_sprite.png       | Bin
 .../themes/default-v2/icons/device_sprite.png | Bin 0 -> 10582 bytes
 .../default-v2/icons/x16/printer__plus.png    | Bin 715 -> 0 bytes
 .../{images => icons}/x16_sprite.png          | Bin
 .../{images => icons}/x32_sprite.png          | Bin
 .../themes/default-v2/icons/x64/network.png   | Bin 5546 -> 0 bytes
 .../themes/default-v2/icons/x64/server.png    | Bin 3527 -> 0 bytes
 .../web/themes/default-v2/images/loading.gif  | Bin 0 -> 1460 bytes
 .../themes/default-v2/images/x64_sprite.png   | Bin 10019 -> 0 bytes
 .../templates/dashboard/dashboard.htm         |  27 +-
 13 files changed, 350 insertions(+), 342 deletions(-)
 rename interface/web/themes/default-v2/{images => icons}/button_sprite.png (100%)
 create mode 100644 interface/web/themes/default-v2/icons/device_sprite.png
 delete mode 100644 interface/web/themes/default-v2/icons/x16/printer__plus.png
 rename interface/web/themes/default-v2/{images => icons}/x16_sprite.png (100%)
 rename interface/web/themes/default-v2/{images => icons}/x32_sprite.png (100%)
 delete mode 100644 interface/web/themes/default-v2/icons/x64/network.png
 delete mode 100644 interface/web/themes/default-v2/icons/x64/server.png
 create mode 100644 interface/web/themes/default-v2/images/loading.gif
 delete mode 100644 interface/web/themes/default-v2/images/x64_sprite.png

diff --git a/interface/web/themes/default-v2/CHANGELOG b/interface/web/themes/default-v2/CHANGELOG
index 239514f64f..7e3a0e7f18 100644
--- a/interface/web/themes/default-v2/CHANGELOG
+++ b/interface/web/themes/default-v2/CHANGELOG
@@ -2,6 +2,7 @@ CHANGELOG
 default -> default-v2
 source: default $3241 07/06/2012 @ 12:00 UTC+2
 
+- changed doctype to <!DOCTYPE html> (HTML5)
 - rm yaml/*
 - rm css/patches/*
 - cp yaml/patches/iehacks.css css/*
@@ -18,10 +19,10 @@ source: default $3241 07/06/2012 @ 12:00 UTC+2
 - mv css media-recognition from css-files to <head>-link tag
 - change most div-containers to new html5 tags in main.tpl.htm
 - rm dom elements from main.tpl.htm
-- add html5shiv.js
+- add html5shiv.js (https://github.com/aFarkas/html5shiv) for better HTML5-compatibility
 - reduction of dom elements
 - reduction of css rules
 - removed all single icons
     - all icons separate:  https://github.com/downloads/foe-services/ispc-larry/ispc-default_separate.zip
     - all used icons as layers and sprite as .psd: https://github.com/downloads/foe-services/ispc-larry/ispc-default_psd.zip
-- added sprites for all used icons
+- added sprites for (nearly) all used icons where suitable
diff --git a/interface/web/themes/default-v2/TODO b/interface/web/themes/default-v2/TODO
index 3e531e914f..8470d4599b 100644
--- a/interface/web/themes/default-v2/TODO
+++ b/interface/web/themes/default-v2/TODO
@@ -1,2 +1,4 @@
+TODO
 - css/print.css is useless in current state
-- css/iehacks.css is useless in current state
\ No newline at end of file
+- css/iehacks.css is useless in current state
+- some more icons need to be changed into sprites
\ No newline at end of file
diff --git a/interface/web/themes/default-v2/css/styles.css b/interface/web/themes/default-v2/css/styles.css
index c29cb1309a..2aa3e264e1 100644
--- a/interface/web/themes/default-v2/css/styles.css
+++ b/interface/web/themes/default-v2/css/styles.css
@@ -23,25 +23,20 @@ body {
     background: url("../images/screen_bg.png") repeat-x top left fixed #EEEEEE;
     padding: 10px 0;
 }
-
-header, #nav, #main, footer {
-    clear: both;
-}
-ul, ol, dl {
-    margin: 0 0 1em 1em;
-}
-.skip, .hideme, .print {
-    height: 1px;
-    left: -1000em;
-    position: absolute;
-    top: -1000em;
-    width: 1px;
+ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em }
+li { margin-left: 1.5em; line-height: 1.5em }
+dt { font-weight: bold }
+dd { margin: 0 0 1em 2em }
+a {
+    color: #4D87C7;
+    text-decoration:none;
 }
-a {color: #4D87C7; text-decoration:none;}
 a:focus,
 a:hover,
-a:active {color:#182E7A; text-decoration:underline;}
-
+a:active {
+    color:#182E7A;
+    text-decoration:underline;
+}
 hr {
     color: #fff;
     background:transparent;
@@ -50,10 +45,43 @@ hr {
     border:0;
     border-bottom: 1px #eee solid;
 }
+textarea, pre, tt, code {
+    font-family: Consolas,"Lucida Console","Courier New",monospace;
+    font-size: 0.9em;	
+}
+
+h1,h2,h3,h4,h5,h6 { 
+    font-family: "Trebuchet MS", sans-serif;
+    font-weight:bold; 
+    color:#666;
+    margin: 0 0 0.25em 0; 
+}
+h1 { font-size: 200% }                        /* 24px */
+h2 { font-size: 200% }                        /* 24px */
+h3 { font-size: 150% }                        /* 18px */
+h4 { font-size: 133.33% }                     /* 16px */
+h5 { font-size: 116.67% }                     /* 14px */
+h6 { font-size: 116.67%; font-style:italic }  /* 14px */
 
+p { line-height: 1.5em; margin: 0 0 1em 0; }
 
+cite, blockquote { font-style:italic }
+blockquote { margin: 0 0 1em 1.5em }
 
+strong,b { font-weight: bold }
+em,i { font-style:italic }
+
+pre, code { font-family: monospace; font-size: 1.1em; }
 
+acronym, abbr {
+    letter-spacing: .07em;
+    border-bottom: .1em dashed #c00;
+    cursor: help;
+}
+
+header, #nav, #main, footer {
+    clear: both;
+}
 #page {
     min-width: 980px;
     max-width: 80%;
@@ -62,6 +90,13 @@ hr {
     margin: 0 auto;
     padding: 10px;
 }
+.skip, .hideme, .print {
+    height: 1px;
+    left: -1000em;
+    position: absolute;
+    top: -1000em;
+    width: 1px;
+}
 
 /* header
 -------------------------------------------------------------- */
@@ -89,10 +124,18 @@ header span {
     right: 10px;
     text-align: right;
 }
-#topsubnav a { color: #f0f8ff; font-weight: normal; background:transparent; text-decoration:none; }
+#topsubnav a { 
+    color: #f0f8ff;
+    font-weight: normal;
+    background:transparent;
+    text-decoration:none;
+}
 #topsubnav a:focus, 
 #topsubnav a:hover,
-#topsubnav a:active { text-decoration:underline; background-color: transparent;}
+#topsubnav a:active {
+    text-decoration:underline;
+    background-color: transparent;
+}
 
 /* nav
     TODO: sprite image
@@ -110,7 +153,7 @@ header span {
 }
 
 #topNav a {
-    background: url("../images/x32_sprite.png") no-repeat #D3D3D3;
+    background: url("../icons/x32_sprite.png") no-repeat #D3D3D3;
     color:black;
     display:inline-block;
     height:20px;
@@ -129,20 +172,19 @@ header span {
     color: black;
     background-color: #ffffff;
 }
-
+.topnav-tools { background-position: 22px -10px !important; }
 .topnav-admin { background-position: 22px -74px !important; }
-.topnav-client { background-position: 22px -1098px !important; }
-.topnav-mail { background-position: 22px -780px !important; }
-.topnav-mailuser { background-position: 22px -780px !important; }
-.topnav-monitor { background-position: 22px -585px !important; }
 .topnav-sites { background-position: 22px -523px !important; }
-.topnav-dns { background-position: 22px -970px !important; }
-.topnav-tools { background-position: 22px -10px !important; }
-.topnav-help { background-position: 22px -715px !important; }
+.topnav-monitor { background-position: 22px -585px !important; }
 .topnav- { background-position: 22px -650px !important; }
+.topnav-help { background-position: 22px -715px !important; }
+.topnav-mail { background-position: 22px -780px !important; }
+.topnav-mailuser { background-position: 22px -780px !important; }
+.topnav-vm { background-position: 22px -842px !important; }
 .topnav-domain { background-position: 22px -905px !important; }
+.topnav-dns { background-position: 22px -970px !important; }
 .topnav-dashboard { background-position: 22px -1035px !important; }
-.topnav-vm { background-position: 22px -842px !important; }
+.topnav-client { background-position: 22px -1098px !important; }
 .topnav-billing { background-position: 22px -1162px !important; }
 
 /* main
@@ -154,9 +196,10 @@ header span {
 
 /* main/sideNav + submenu
 -------------------------------------------------------------- */
-#sideNav { width: 200px; 
-           float:left;
-           padding: 0 10px 0 0; 
+#sideNav { 
+    width: 200px; 
+    float:left;
+    padding: 0 10px 0 0; 
 }
 
 #submenu {
@@ -167,8 +210,18 @@ header span {
     border-bottom: 2px #ddd solid;
 }
 
-#submenu ul { list-style-type: none; margin:0; padding: 0; }
-#submenu li { float:left; width: 100%; margin:0; padding: 0; font-size:0.9em; }
+#submenu ul {
+    list-style-type: none;
+    margin:0;
+    padding: 0;
+}
+#submenu li {
+    float:left;
+    width: 100%;
+    margin:0;
+    padding: 0;
+    font-size:0.9em;
+}
 
 #submenu a,
 #submenu strong {
@@ -219,10 +272,18 @@ header span {
     border-bottom: 1px #eee solid;
 }
 
-#submenu li a { width: 90%; padding-left: 10%; background-color:#fff; color: #444; }
+#submenu li a {
+    width: 90%;
+    padding-left: 10%;
+    background-color:#fff;
+    color: #444;
+}
 #submenu li a:focus,
 #submenu li a:hover,
-#submenu li a:active { background-color:#f63; color: #fff; }
+#submenu li a:active {
+    background-color:#f63;
+    color: #fff;
+}
 
 /* Form-Elements in the Menu*/
 #submenu * select#server_id {
@@ -251,68 +312,17 @@ footer {
     font-size: 0.8em;
     text-align: center;
 }
-footer a { color: #999; background:transparent; font-weight: bold;}
+footer a {
+    color: #999;
+    background:transparent;
+    font-weight: bold;
+}
 footer a:hover, footer a:active {
     color: #4D87C7; 
     background-color: transparent; 
     text-decoration:underline;
 }
 
-
-
-
-
-textarea, pre, tt, code {
-    font-family: Consolas,"Lucida Console","Courier New",monospace;
-    font-size: 0.9em;	
-}
-
-/* (en) base layout gets standard font size 12px */
-/* (de) Basis-Layout erhält Standardschriftgröße von 12 Pixeln */
-
-
-h1,h2,h3,h4,h5,h6 { 
-    font-family: "Trebuchet MS", sans-serif;
-    font-weight:bold; 
-    color:#666;
-    margin: 0 0 0.25em 0; 
-}
-
-h1 { font-size: 200% }                        /* 24px */
-h2 { font-size: 200% }          /* 24px */
-h3 { font-size: 150% }                        /* 18px */
-h4 { font-size: 133.33% }                     /* 16px */
-h5 { font-size: 116.67% }                     /* 14px */
-h6 { font-size: 116.67%; font-style:italic }  /* 14px */
-
-
-
-p { line-height: 1.5em; margin: 0 0 1em 0; }
-
-/* ### Lists | Listen  #### */
-
-ul, ol, dl { line-height: 1.5em; margin: 0 0 1em 1em }
-li { margin-left: 1.5em; line-height: 1.5em }
-
-dt { font-weight: bold }
-dd { margin: 0 0 1em 2em }
-
-/* ### text formatting | Textauszeichnung ### */
-
-cite, blockquote { font-style:italic }
-blockquote { margin: 0 0 1em 1.5em }
-
-strong,b { font-weight: bold }
-em,i { font-style:italic }
-
-pre, code { font-family: monospace; font-size: 1.1em; }
-
-acronym, abbr {
-    letter-spacing: .07em;
-    border-bottom: .1em dashed #c00;
-    cursor: help;
-}
-
 /* Set a background-color, no system backgorund used anymore */
 select, input, textarea {
     background: #FFFFFF;
@@ -325,35 +335,43 @@ table { width: auto; border-collapse:collapse; margin-bottom: 0.5em; }
 table.full { width: 100%; }
 table.fixed { table-layout:fixed }
 
-table.list td{max-width:350px;min-width: 32px;white-space: nowrap;overflow:hidden;text-overflow: ellipsis; -o-text-overflow: ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis;}
-th,td { padding: 0.5em;text-align:left;}
-thead th { background: #444 url("../images/lists_thead_bg.png") repeat-x; color: #fff }
-tbody th { background: #ccc; color: #333 }
-tbody th.sub { background: #ddd; color: #333 }
-
-/**
- * Miscellaneous | Sonstiges
- *
- * @section content-misc
-*/
-
-
-
-/* Sorting cusror and backgorund */
-.pnl_listarea th[class^="tbl_col"]{cursor:pointer}
-.pnl_listarea th[class^="tbl_col"]:hover{background-position:0 -15px!important}
+table.list td {
+    max-width: 350px;
+    min-width: 32px;
+    white-space: nowrap;
+    overflow:hidden;
+    text-overflow: ellipsis;
+    -o-text-overflow: ellipsis;
+    -icab-text-overflow: ellipsis;
+    -khtml-text-overflow: ellipsis;
+    -moz-text-overflow: ellipsis;
+    -webkit-text-overflow: ellipsis;
+}
+th,
+td {
+    padding: 0.5em;
+    text-align:left;
+}
+thead th {
+    background: #444 url("../images/lists_thead_bg.png") repeat-x;
+    color: #fff;
+}
+tbody th {
+    background: #ccc;
+    color: #333;
+}
+tbody th.sub {
+    background: #ddd;
+    color: #333;
+}
 
-/* content_ispc
--------------------------------------------------------------- */
+.pnl_listarea th[class^="tbl_col"] { cursor:pointer; }
+.pnl_listarea th[class^="tbl_col"]:hover { background-position:0 -15px!important; }
 
-.pageForm_description {
-    font-size: 12px;
-}
+.pageForm_description { font-size: 12px; }
 
 /* Tab-Box */
-.tabbox_tabs {
-    border-bottom: 1px solid #d3d3d3;
-}
+.tabbox_tabs { border-bottom: 1px solid #d3d3d3; }
 .tabbox_tabs ul {
     list-style: none;
     padding: 0;
@@ -379,7 +397,6 @@ tbody th.sub { background: #ddd; color: #333 }
     color: #ff6600;
     background: #ffffff;
 }
-
 .pnl_toolsarea fieldset, .pnl_listarea fieldset, .pnl_formsarea fieldset {
     border-top: 1px solid #949494;
     margin: 20px 0;
@@ -391,11 +408,9 @@ tbody th.sub { background: #ddd; color: #333 }
 .pnl_formarea fieldset {
     font-weight: bold;
 }
-
 /* hide line and legend when inside tabbed content */
 #tabbox_content * .pnl_toolsarea fieldset, #tabbox_content * .pnl_listarea fieldset, #tabbox_content * .pnl_formsarea fieldset { border: none !important; }
 #tabbox_content * .pnl_toolsarea fieldset legend, #tabbox_content * .pnl_listarea fieldset legend, #tabbox_content * .pnl_formsarea fieldset legend { display: none !important; }
-
 .codeview {
     margin:20px 0;
     padding:2px;
@@ -404,7 +419,6 @@ tbody th.sub { background: #ddd; color: #333 }
     font-family: Consolas, "Lucida Console", "Courier New", monospace;
     font-size: 0.9em;
 }
-
 /* Lists */
 table.list {
     width: 100%;
@@ -432,6 +446,8 @@ table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; }
 }
 
 /* Systemmonitor */
+.systemmonitor-server,
+.systemmonitor-ve,
 .systemmonitor-state {
     margin: 10px 5px;
     font-family: Consolas, "Lucida Console", "Courier New", monospace;
@@ -439,113 +455,87 @@ table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; }
     float: left;
     width: 100%;
 }
-.systemmonitor-state.state-no_state {
+.systemmonitor-server:hover,
+.systemmonitor-vm:hover { background-color: #FFFACD; }
+.state-no_state,
+.state-no_state-ve {
     border-top: 4px solid #95A19F;
     background-color: #f8f8ff;
 }
-.systemmonitor-state.state-unknown {
+.state-unknown,
+.state-unknown-ve {
     border-top: 4px solid #30302e;
     background-color: #cecfc5;
 }
-.systemmonitor-state.state-ok {
+.state-ok,
+.state-ok-ve {
     border-top: 4px solid #23fb00;
     background-color: #adffa2;
 }
-.systemmonitor-state.state-info {
+.state-info,
+.state-info-ve {
     border-top: 4px solid #183e99;
     background-color: #d4e2ff;
 }
-.systemmonitor-state.state-warning {
+.state-warning,
+.state-warning-ve {
     border-top: 4px solid #ffa800;
     background-color: #ffda93;
 }
-.systemmonitor-state.state-critical {
+.state-critical,
+.state-critical-ve {
     border-top: 4px solid #ff0000;
     background-color: #ffb9b9;
 }
-.systemmonitor-state.state-error {
+.state-error,
+.state-error-ve {
     border-top: 4px solid #ff0000;
     background-color: #ff7f7f;
-}
-.systemmonitor-state.state-no_state-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #95A19F;
-    background-color: #f8f8ff;
-}
-.systemmonitor-state.state-unknown-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #30302e;
-    background-color: #cecfc5;
-}
-.systemmonitor-state.state-ok-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #23fb00;
-    background-color: #adffa2;
-}
-.systemmonitor-state.state-info-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #183e99;
-    background-color: #d4e2ff;
-}
-.systemmonitor-state.state-warning-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #ffa800;
-    background-color: #ffda93;
-}
-.systemmonitor-state.state-critical-ve {
+}       
+div.icoDevice {
     float: left;
-    width: 213px;
-    border-top: 4px solid #ff0000;
-    background-color: #ffb9b9;
-}
-.systemmonitor-state.state-error-ve {
-    float: left;
-    width: 213px;
-    border-top: 4px solid #ff0000;
-    background-color: #ff7f7f;
-}
-.systemmonitor-state:hover {
-    background-color: #FFFACD;
-}
-.systemmonitor-state p {
-    float:left;
+    width: 64px;
+    height: 64px;
     margin: 5px;
-}
-.systemmonitor-device {
-    background-position: -6px 4px;
-    background-repeat: no-repeat;
-    min-height: 80px;
-}
-.systemmonitor-device.device-system { background-image: url("../icons/x64/network.png"); }
-.systemmonitor-device.device-server { 
-    background-image: url("../icons/x64/server.png");
-}
-.systemmonitor-device.device-ve {
-    background-image: url("../icons/x64/server.png");
-    width: 213px;
+    background: url("../icons/device_sprite.png") no-repeat transparent;
+}
+.systemmonitor-server div.icoDevice { background-position: 0 0; }
+.systemmonitor-ve div.icoDevice { background-position: -64px 0; }
+.systemmonitor-network div.icoDevice { background-position: -128px 0; }
+div.statusDevice,
+div.statusMsg { float: left; }
+div.statusMsg p { 
     float: left;
-    border: 1px dashed #aaaaaa;
-    border-top: none;
+    padding: 5px;
 }
-
-.systemmonitor-content.icons32 {
-    padding:2px 10px 2px 56px;
-    background-repeat: no-repeat;
-    background-position: 12px 4px;
+.systemmonitor-state .status {
+    margin: 5px;
 }
-.systemmonitor-content.icons32.ico-no_state { /*background-image:url("../icons/x32/state_no.png"); */ }
-.systemmonitor-content.icons32.ico-unknown { background-image:url("../icons/x32/state_unknown.png"); }
-.systemmonitor-content.icons32.ico-ok { background-image:url("../icons/x32/state_ok.png"); }
-.systemmonitor-content.icons32.ico-info { background-image:url("../icons/x32/state_info.png"); }
-.systemmonitor-content.icons32.ico-warning { background-image:url("../icons/x32/state_warning.png"); }
-.systemmonitor-content.icons32.ico-critical { background-image:url("../icons/x32/state_critical.png"); }
-.systemmonitor-content.icons32.ico-error { background-image:url("../icons/x32/state_error.png"); }
-
+.status {
+    float: right;
+    width: 32px;
+    height: 32px;
+    background: url("../icons/x32_sprite.png") no-repeat transparent;
+}
+div.status {
+    float: left !important;
+}
+.state-warning .status,
+.state-warning-ve .status { background-position: 0 -143px; }
+.state-no_state .status,
+.state-no_state-ve .status,
+.state-unknown .status,
+.state-unknown-ve .status { background-position: 0 -207px; }
+.state-ok .status,
+.state-ok-ve .status { background-position: 0 -270px; }
+.state-info .status,
+.state-info-ve .status { background-position: 0 -336px; }
+.state-error .status,
+.state-error-ve .status { background-position: 0 -400px; }
+.state-critical .status,
+.state-critical-ve .status { background-position: 0 -463px; }
+
+/* Usage unknown  
 .systemmonitor-content table {
     border: none;
     margin-top: 10px;
@@ -562,7 +552,7 @@ table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; }
     background-color: #d12f19; 
     color:#ffffff;
     padding:0px 5px;
-}
+}*/
 
 /* Dashboard */
 .dashboard-modules {
@@ -576,10 +566,9 @@ table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; }
     background-repeat: no-repeat;
     text-align: center;
 }
-
 .dashboard-modules a, 
 .dashboard-modules a:hover {
-    background: url("../images/x32_sprite.png") no-repeat transparent;
+    background: url("../icons/x32_sprite.png") no-repeat transparent;
     color:Black;
     display:block;
     font-weight:bold;
@@ -588,29 +577,36 @@ table.list td.tbl_col_buttons { word-wrap:normal;white-space:normal; }
     width:60px;
     text-decoration: none;
 }
-
+.dashboard-modules.tools a { background-position: 12px -9px; }
 .dashboard-modules.admin a { background-position: 12px -73px; }
-.dashboard-modules.vm a { background-position: 14px -842px; }
-.dashboard-modules.client a { background-position: 13px -1096px; }
-.dashboard-modules.mail a { background-position: 12px -776px; }
+.dashboard-modules.sites a { background-position: 12px -520px; }
 .dashboard-modules.monitor a { background-position: 13px -585px; }
-.dashboard-modules.dns a { background-position: 12px -970px; }
-.dashboard-modules.tools a { background-position: 12px -9px; }
 .dashboard-modules.help a { background-position: 13px -716px; }
+.dashboard-modules.mail a { background-position: 12px -776px; }
+.dashboard-modules.vm a { background-position: 14px -842px; }
 .dashboard-modules.domain a { background-position: 12px -905px; }
-.dashboard-modules.sites a { background-position: 12px -520px; }
+.dashboard-modules.dns a { background-position: 12px -970px; }
+.dashboard-modules.client a { background-position: 13px -1096px; }
 .dashboard-modules.billing a { background-position: 14px -1162px; }
 
-.panel_dashboard h2 {
-    font-size:20px;
-}
+.panel_dashboard h2 { font-size:20px; }
 
 /* Image-Replacement */
 .swap { background-repeat:no-repeat; }
 .swap span { display:none; height:16px; } 
-#ir-HeaderLogo { background-image:url("../images/header_logo.png"); height:32px;margin:0 0 0.2em; } 
-#ir-Yes { background-image:url("../icons/x16/tick_circle.png"); height:16px; } 
-#ir-No { background-image:url("../icons/x16/cross_circle.png"); height:16px; } 
+#ir-HeaderLogo {
+    background-image: url("../images/header_logo.png");
+    height:32px;
+    margin:0 0 0.2em;
+} 
+#ir-Yes {
+    background-image: url("../icons/x16/tick_circle.png");
+    height:16px;
+} 
+#ir-No {
+    background-image: url("../icons/x16/cross_circle.png");
+    height:16px;
+} 
 
 /* BUTTONS */
 a.button,
@@ -640,7 +636,6 @@ input.button:focus,
     -o-box-shadow: 0 0 2px 1px rgba(71,135,177, 0.6);
     outline: none;
 }
-
 .buttons button[type]{
     padding:5px 10px 5px 7px; /* Firefox */
     line-height:17px; /* Safari */
@@ -648,7 +643,8 @@ input.button:focus,
 *:first-child+html button[type]{
     padding:4px 10px 3px 7px; /* IE7 */
 }
-.buttons button img, .buttons a img{
+.buttons button img,
+.buttons a img {
     margin:0 3px -3px 0 !important;
     padding:0;
     border:none;
@@ -657,49 +653,52 @@ input.button:focus,
 }
 
 /* BUTTONS STANDARD */
-button:hover, .buttons a:hover{
+button:hover,
+.buttons a:hover {
     background-color:#dff4ff;
     border:1px solid #c2e1ef;
     color:#336699;
 }
-.buttons a:active{
+.buttons a:active {
     background-color:#6299c5;
     border:1px solid #6299c5;
     color:#fff;
 }
 
 /* BUTTONS POSITIVE */
-button.positive, .buttons a.positive{
-    color:#529214;
-}
-.buttons a.positive:hover, button.positive:hover{
+button.positive,
+.buttons a.positive { color:#529214; }
+.buttons a.positive:hover,
+button.positive:hover {
     background-color:#E6EFC2;
     border:1px solid #C6D880;
     color:#529214;
 }
-.buttons a.positive:active{
+.buttons a.positive:active {
     background-color:#529214;
     border:1px solid #529214;
     color:#fff;
 }
 
 /* BUTTONS NEGATIVE */
-.buttons a.negative, button.negative{
+.buttons a.negative,
+button.negative {
     color:#d12f19;
 }
-.buttons a.negative:hover, button.negative:hover{
+.buttons a.negative:hover,
+button.negative:hover {
     background-color:#fbe3e4;
     border:1px solid #fbc2c4;
     color:#d12f19;
 }
-.buttons a.negative:active{
+.buttons a.negative:active {
     background-color:#d12f19;
     border:1px solid #d12f19;
     color:#fff;
 }
 
 /* Button with icon and text */
-.iconstxt { background: url("../images/button_sprite.png") no-repeat transparent; }
+.iconstxt { background: url("../icons/button_sprite.png") no-repeat transparent; }
 .iconstxt span { padding-left: 20px; font-weight: bold; }
 .iconstxt.icoPositive { background-position: 6px -130px; }
 .iconstxt.icoNegative { background-position: 6px -98px; }
@@ -715,32 +714,30 @@ a.icons16 {
     height: 18px;
     width: 18px;
     padding: 0;
-    background: url("../images/x16_sprite.png") no-repeat transparent;
+    background: url("../icons/x16_sprite.png") no-repeat transparent;
 }
 button.icons16 {
     height: 20px;
     width: 20px;
     padding: 0;
-    background: url("../images/x16_sprite.png") no-repeat transparent;
+    background: url("../icons/x16_sprite.png") no-repeat transparent;
 }
-
-.icons16.icoDelete { background-position: -1px -141px; }
-.icons16.icoFilter { background-position: -1px -161px; }
 .icons16.icoEdit { background-position: -1px -1px; }
-.icons16.icoDbAdmin { background-position: -1px -221px; }
 .icons16.icoLoginAs { background-position: -1px -21px; }
-.icons16.icoWebmailer { background-position: -1px -81px; }
 .icons16.icoPDF { background-position: -1px -61px; }
+.icons16.icoWebmailer { background-position: -1px -81px; }
+.icons16.icoDelete { background-position: -1px -141px; }
+.icons16.icoFilter { background-position: -1px -161px; }
+.icons16.icoDbAdmin { background-position: -1px -221px; }
 .icons16.icoAction { background-position: -1px -241px; }
 
 #ajaxloader {
     text-align:center;
     margin-top: 180px;
 }
-
 .blockLabel.email_at {
     width: 20px !important;
-    margin: 1.6em 0.3em 0 0 !important
+    margin: 1.6em 0.3em 0 0 !important;
 }
 .textDisplay { display: block; }
 
@@ -758,14 +755,20 @@ button.icons16 {
 .formLengthDouble { width: 50% !important; }
 
 /* Individual Form Lengths */
-.textInput#username, .textInput#password, .textInput#passwort, .textInput#source_password { width: 100px; }
+.textInput#username, 
+.textInput#password,
+.textInput#passwort,
+.textInput#source_password { width: 100px; }
 .selectInput#language {	width: 75px; }
 .selectInput#client_group_id, .selectInput#default_group { width: 125px; }
 input#refresh, input#retry, input#expire, input#minimum, input#ttl { width: 50px !important; }
 
 /* --- */
 
-a[href $="#logout"] { padding-right: 20px; background: url("../images/x16_sprite.png") no-repeat right -123px transparent !important; }
+a[href $="#logout"] {
+    padding-right: 20px;
+    background: url("../icons/x16_sprite.png") no-repeat right -123px transparent !important;
+}
 
 /* Select Menu with Images */
 select.withicons option {
@@ -778,7 +781,6 @@ select.flags option {
     background-repeat: no-repeat;
     padding: 1px 0 1px 30px;
 }
-
 select.flags option[value=EL] {background-position:0 -1475px}
 select.flags option[value=AD], select.flags option[value=ad] {background-position:0 -1px}
 select.flags option[value=AE], select.flags option[value=ae] {background-position:0 -23px}
@@ -1026,7 +1028,6 @@ select.flags option[value=ZW], select.flags option[value=zw] {background-positio
     max-width: 80%;
     min-width: 680px;
 }
-
 div.subsectiontoggle {
     border:1px solid #ccc;
     font-weight:bold;
@@ -1045,18 +1046,18 @@ div.subsectiontoggle {
     -ms-border-radius:5px;
     border-radius:5px;
 }
-div.subsectiontoggle span{
+div.subsectiontoggle span {
     display:inline-block;
     margin-bottom:-3px;
     margin-right:10px;
     width:16px;
     height:16px;
-    background:url(../icons/x16/plus_circle_frame.png) top left no-repeat;
+    background:url("../icons/x16/plus_circle_frame.png") top left no-repeat;
 }
 div.subsectiontoggle span.showing{
-    background:url(../icons/x16/minus_circle_frame.png) top left no-repeat;
+    background:url("../icons/x16/minus_circle_frame.png") top left no-repeat;
 }
-div.subsectiontoggle em{
+div.subsectiontoggle em {
     display:block;
     position:relative;
     left:425px;
@@ -1084,7 +1085,7 @@ div.subsectiontoggle em{
     -ms-transition-property: -ms-transform;
     transition-property: transform;
 }
-div.subsectiontoggle em.showing{
+div.subsectiontoggle em.showing {
     display:block;
     position:relative;
     left:425px;
@@ -1099,7 +1100,7 @@ div.subsectiontoggle em.showing{
     -ms-transform:rotate(90deg);
     transform:rotate(90deg);
 }
-div.subsectiontoggle:hover em{
+div.subsectiontoggle:hover em {
     -webkit-transform:rotate(90deg);
     -moz-transform:rotate(90deg);
     -khtml-transform:rotate(90deg);
@@ -1108,18 +1109,19 @@ div.subsectiontoggle:hover em{
     transform:rotate(90deg);
 }
 
-div.gs-container{
+
+div.gs-container {
     margin-top:10px;
 }
-div.gs-container *{
+div.gs-container * {
     margin: 0;
     padding: 0;
     background-position: 0 0;
     text-decoration: none;
     font-size: 1em;
 }
-div.gs-container input{
-    background: url("../images/x16_sprite.png") no-repeat 2px -99px #FFFFFF;
+div.gs-container input {
+    background: url("../icons/x16_sprite.png") no-repeat 2px -99px #FFFFFF;
     height:20px;
     border:1px solid #444;
     padding:0 22px 2px;
@@ -1131,12 +1133,12 @@ div.gs-container input{
     -ms-border-radius:5px;
     border-radius:5px;
 }
-input.gs-loading{
+input.gs-loading {
     background-image: url("../images/loading.gif");
     background-repeat: no-repeat;
     background-position: center right;
 }
-ul.gs-resultbox{
+ul.gs-resultbox {
     margin: 0 !important;
     padding: 0 !important;
     width: 300px;
@@ -1158,13 +1160,13 @@ ul.gs-resultbox{
     -ms-border-radius:5px;
     border-radius:5px;
 }
-ul.gs-resultbox li{
+ul.gs-resultbox li {
     float: left;
     width: 100%;
     clear: both;
     cursor: pointer;
 }
-ul.gs-resultbox li.gs-cheader{
+ul.gs-resultbox li.gs-cheader {
     height: 13px;
     overflow: hidden;
     padding: 5px 0;
@@ -1173,51 +1175,51 @@ ul.gs-resultbox li.gs-cheader{
     cursor:default;
     padding-bottom:10px;
 }
-ul.gs-resultbox li.gs-cheader p.gs-cheader-title{
+ul.gs-resultbox li.gs-cheader p.gs-cheader-title {
     margin: 0 !important;
     padding: 0 0 0 10px !important;
     float: left;
     font-size: 12px;
     font-weight: bold;
 }
-ul.gs-resultbox li.gs-cheader p.gs-cheader-limit{
+ul.gs-resultbox li.gs-cheader p.gs-cheader-limit {
     margin: 0 !important;
     padding: 0 10px 0 0 !important;
     float: right;
     font-size: 11px;
     font-weight: normal;
 }
-ul.gs-resultbox li.gs-cdata{
+ul.gs-resultbox li.gs-cdata {
     margin: 0 !important;
     padding: 0 !important;
     border-bottom: 1px solid #c5c5c5;
 }
-ul.gs-resultbox li.gs-cdata:last-child{
+ul.gs-resultbox li.gs-cdata:last-child {
     border-bottom: none;
 }
-ul.gs-resultbox li.gs-cdata:hover{
+ul.gs-resultbox li.gs-cdata:hover {
     background: #eaf4fd;
 }
-ul.gs-resultbox li.gs-cdata a{
+ul.gs-resultbox li.gs-cdata a {
     display: block;
     padding: 5px 10px;
     text-decoration: none !important;
     background: #fff;
 }
-ul.gs-resultbox li.gs-cdata a:hover{
+ul.gs-resultbox li.gs-cdata a:hover {
     background: #cde0ff;
 }
-ul.gs-resultbox li.gs-cdata img{
+ul.gs-resultbox li.gs-cdata img {
     margin-right: 12px;
 }
-ul.gs-resultbox li.gs-cdata p{
+ul.gs-resultbox li.gs-cdata p {
     margin: 0 !important;
     padding: 0 !important;
     color: #444;
     font-size: 10px;
     min-height:30px;
 }
-ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{
+ul.gs-resultbox li.gs-cdata p span.gs-cdata-title {
     display: inline !important;
     margin: 0 !important;
     padding: 0 !important;
@@ -1225,7 +1227,7 @@ ul.gs-resultbox li.gs-cdata p span.gs-cdata-title{
     font-weight: bold;
     color: #000;
 }
-ul.gs-resultbox li:first-child{
+ul.gs-resultbox li:first-child {
     -moz-border-radius:5px 5px 0 0;
     -webkit-border-radius:5px 5px 0 0;
     -khtml-border-radius:5px 5px 0 0;
@@ -1233,7 +1235,7 @@ ul.gs-resultbox li:first-child{
     -ms-border-radius:5px 5px 0 0;
     border-radius:5px 5px 0 0;
 }
-ul.gs-resultbox li:last-child{
+ul.gs-resultbox li:last-child {
     -moz-border-radius:0 0 5px 5px;
     -webkit-border-radius:0 0 5px 5px;
     -khtml-border-radius:0 0 5px 5px;
@@ -1242,23 +1244,23 @@ ul.gs-resultbox li:last-child{
     border-radius:0 0 5px 5px;
 }
 
-div.df-container{
+div.df-container {
 }
-div.df-container *{
+div.df-container * {
     margin: 0;
     padding: 0;
     background-position: 0 0;
     text-decoration: none;
     font-size: 1em;
 }
-div.df-container input{
+div.df-container input {
 }
-input.df-loading{
+input.df-loading {
     background-image: url("../images/loading.gif");
     background-repeat: no-repeat;
     background-position: center right;
 }
-ul.df-resultbox{
+ul.df-resultbox {
     margin: 0 !important;
     padding: 0 !important;
     min-width: 250px;
@@ -1281,13 +1283,13 @@ ul.df-resultbox{
     -ms-border-radius:5px;
     border-radius:5px;
 }
-ul.df-resultbox li{
+ul.df-resultbox li {
     float: left;
     width: 100%;
     clear: both;
     cursor: pointer;
 }
-ul.df-resultbox li.df-cheader{
+ul.df-resultbox li.df-cheader {
     height: 13px;
     overflow: hidden;
     padding: 5px 0;
@@ -1296,51 +1298,51 @@ ul.df-resultbox li.df-cheader{
     cursor:default;
     padding-bottom:10px;
 }
-ul.df-resultbox li.df-cheader p.df-cheader-title{
+ul.df-resultbox li.df-cheader p.df-cheader-title {
     margin: 0 !important;
     padding: 0 0 0 10px !important;
     float: left;
     font-size: 12px;
     font-weight: bold;
 }
-ul.df-resultbox li.df-cheader p.df-cheader-limit{
+ul.df-resultbox li.df-cheader p.df-cheader-limit {
     margin: 0 !important;
     padding: 0 10px 0 0 !important;
     float: right;
     font-size: 11px;
     font-weight: normal;
 }
-ul.df-resultbox li.df-cdata{
+ul.df-resultbox li.df-cdata {
     margin: 0 !important;
     padding: 0 !important;
     border-bottom: 1px solid #c5c5c5;
 }
-ul.df-resultbox li.df-cdata:last-child{
+ul.df-resultbox li.df-cdata:last-child {
     border-bottom: none;
 }
-ul.df-resultbox li.df-cdata:hover{
+ul.df-resultbox li.df-cdata:hover {
     background: #eaf4fd;
 }
-ul.df-resultbox li.df-cdata a{
+ul.df-resultbox li.df-cdata a {
     display: block;
     padding: 5px 10px;
     text-decoration: none !important;
     background: #fff;
 }
-ul.df-resultbox li.df-cdata a:hover{
+ul.df-resultbox li.df-cdata a:hover {
     background: #cde0ff;
 }
-ul.df-resultbox li.df-cdata img{
+ul.df-resultbox li.df-cdata img {
     margin-right: 12px;
 }
-ul.df-resultbox li.df-cdata p{
+ul.df-resultbox li.df-cdata p {
     margin: 0 !important;
     padding: 0 !important;
     color: #444;
     font-size: 10px;
     min-height:30px;
 }
-ul.df-resultbox li.df-cdata p span.df-cdata-title{
+ul.df-resultbox li.df-cdata p span.df-cdata-title {
     display: inline !important;
     margin: 0 !important;
     padding: 0 !important;
@@ -1348,7 +1350,7 @@ ul.df-resultbox li.df-cdata p span.df-cdata-title{
     font-weight: bold;
     color: #000;
 }
-ul.df-resultbox li:first-child{
+ul.df-resultbox li:first-child {
     -moz-border-radius:5px 5px 0 0;
     -webkit-border-radius:5px 5px 0 0;
     -khtml-border-radius:5px 5px 0 0;
@@ -1356,7 +1358,7 @@ ul.df-resultbox li:first-child{
     -ms-border-radius:5px 5px 0 0;
     border-radius:5px 5px 0 0;
 }
-ul.df-resultbox li:last-child{
+ul.df-resultbox li:last-child {
     -moz-border-radius:0 0 5px 5px;
     -webkit-border-radius:0 0 5px 5px;
     -khtml-border-radius:0 0 5px 5px;
@@ -1365,7 +1367,7 @@ ul.df-resultbox li:last-child{
     border-radius:0 0 5px 5px;
 }
 
-span.icons16-empty{
+span.icons16-empty {
     float:left;
     display:block;
     height:20px;
@@ -1373,11 +1375,11 @@ span.icons16-empty{
     margin:0 7px 0 0;
 }
 
-.ttip{
+.ttip {
     width:16px;
     height:16px;
     cursor:pointer;
-    background: url("../images/x16_sprite.png") no-repeat center center transparent;
+    background: url("../icons/x16_sprite.png") no-repeat center center transparent;
     float:right;
     display:inline;
     position:relative;
@@ -1401,17 +1403,37 @@ p.value {
 
 /* content_ispc
 -------------------------------------------------------------- */
-.tipsy { font-size: 10px; position: absolute; padding: 5px; z-index: 100000; }
-.tipsy-inner { background-color: #000; color: #FFF; max-width: 350px; padding: 5px 8px 4px 8px; text-align: left; }
+.tipsy {
+    font-size: 10px;
+    position: absolute;
+    padding: 5px;
+    z-index: 100000;
+}
+.tipsy-inner {
+    background-color: #000;
+    color: #FFF;
+    max-width: 350px;
+    padding: 5px 8px 4px 8px;
+    text-align: left;
+}
 
 /* Rounded corners */
-.tipsy-inner { border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; }
+.tipsy-inner {
+    border-radius: 5px;
+    -moz-border-radius: 5px;
+    -webkit-border-radius: 5px;
+}
 
 /* Uncomment for shadow */
 /*.tipsy-inner { box-shadow: 0 0 5px #000000; -webkit-box-shadow: 0 0 5px #000000; -moz-box-shadow: 0 0 5px #000000; }*/
 
-.tipsy-arrow { position: absolute; width: 0; height: 0; line-height: 0; border: 5px dashed #000; }
-
+.tipsy-arrow {
+    position: absolute;
+    width: 0;
+    height: 0;
+    line-height: 0;
+    border: 5px dashed #000;
+}
 /* Rules to colour arrows */
 .tipsy-arrow-n { border-bottom-color: #000; }
 .tipsy-arrow-s { border-top-color: #000; }
@@ -1434,8 +1456,6 @@ p.value {
 /* Some rights reserved - http: //creativecommons.org/licenses/by-sa/2.5/ */
 /* Do not edit this file directly, make your changes to uni-form.css in the same folder */
 
-/* ------------------------------------------------------------------------------ */
-
 .uniForm{ margin: 0; padding: 0; position: relative; z-index: 1; } /* reset stuff */
 
 /* Some generals and more resets */
@@ -1463,8 +1483,6 @@ p.value {
 .uniForm .inlineLabels .inlineLabel input,
 .uniForm .blockLabels .inlineLabel input{ border: none; padding: 0; margin: 0; }
 
-/* ------------------------------------------------------------------------------ */
-
 /* Styles for form controls where labels are above the input elements */
 /* Set the class of the parent (preferably to a fieldset) to .blockLabels */
 
@@ -1501,8 +1519,6 @@ p.value {
 .uniForm .blockLabels .multiField .blockLabel .selectInput,
 .uniForm .blockLabels .multiField .blockLabel select{ width: 100%; margin: 0; }
 
-/* ------------------------------------------------------------------------------ */
-
 /* Styles for form controls where labels are in line with the input elements */
 /* Set the class of the parent (preferably to a fieldset) to .inlineLabels */
 .uniForm .inlineLabels label,
@@ -1525,8 +1541,6 @@ p.value {
 .uniForm .inlineLabels .multiField .blockLabel select{ display: block; width: 100%; float: none; }
 .uniForm .inlineLabels .multiField select{ float: left; }
 
-/* ------------------------------------------------------------------------------ */
-
 /* Required fields asterisk styling for .blockLabels */
 .uniForm label em,
 .uniForm .label em,
@@ -1538,28 +1552,16 @@ p.value {
 .uniForm .inlineLabels .label em{ display: block; position: absolute; left: auto; right: 0; font-style: normal; font-weight: bold; }
 .uniForm .inlineLabel em{ position: absolute; left: 7px; }
 
-/* ------------------------------------------------------------------------------ */
-
 /* Messages */
 .uniForm #errorMsg,
-.uniForm .error{
-}
+.uniForm .error{}
 .uniForm #errorMsg dt,
-.uniForm #errorMsg h3{
-}
-.uniForm #errorMsg dd{
-}
-.uniForm #errorMsg ol{
-}
-.uniForm #errorMsg ol li{
-}
-.uniForm .errorField{
-}
-
-.uniForm #OKMsg{
-}
-
-/* ------------------------------------------------------------------------------ */
+.uniForm #errorMsg h3{}
+.uniForm #errorMsg dd{}
+.uniForm #errorMsg ol{}
+.uniForm #errorMsg ol li{}
+.uniForm .errorField{}
+.uniForm #OKMsg{}
 
 /* Columns */
 
@@ -1684,12 +1686,6 @@ p.value {
 .uniForm #OKMsg, .confirmpasswordok{ background: #C8FFBF; border: 1px solid #A2EF95; border-width: 1px 0; margin: 1.5em 0 1.5em 0; padding: 7px; }
 .uniForm #OKMsg p{ margin: 0; }
 
-/*
-IT IS STRONGLY ADVISED TO MAKE YOUR CHANGES AFTER THIS COMMENT BY REPEATING (COPYING) THE SELECTOR FROM ABOVE, 
-AND MODIFYING IT WITH YOUR OWN PROPERTIES/VALUES. THIS IS RECOMMENDED BECAUSE IF YOU HAPPEN TO RUN INTO TROUBLE, 
-YOU CAN VERY EASILY REVERT TO A GENERIC STYLE OF UNI-FORM. BEST OF LUCK... 
-*/
-
 /* ------------------------------------------------------------------------------ */
 
 /* This is the main unit that contains our form elements */
diff --git a/interface/web/themes/default-v2/images/button_sprite.png b/interface/web/themes/default-v2/icons/button_sprite.png
similarity index 100%
rename from interface/web/themes/default-v2/images/button_sprite.png
rename to interface/web/themes/default-v2/icons/button_sprite.png
diff --git a/interface/web/themes/default-v2/icons/device_sprite.png b/interface/web/themes/default-v2/icons/device_sprite.png
new file mode 100644
index 0000000000000000000000000000000000000000..af531d7fba6139a1a0e5afb176e43a4b65376ced
GIT binary patch
literal 10582
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

literal 0
HcmV?d00001

diff --git a/interface/web/themes/default-v2/icons/x16/printer__plus.png b/interface/web/themes/default-v2/icons/x16/printer__plus.png
deleted file mode 100644
index 4608a84025ee3104ae1a9baf49f5eff565107d0b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 715
zcmV;+0yO=JP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV0007#Nkl<ZILm#~
zZAep57zgl!uBbG%;U`BqB0mfb@*U?Shf_10FrBbPGLhQd2c@KDYi@NxL>-hgaG*g7
zQ+z>CsmU-@jKqyTh4mr9BJrveS!jYN`tO`uimyHJyKwJ${?EDRa>?V~Ub2Jl>(f%^
zV_b4}cN2SO=RSlz+=KhMxd~xy4Rfoj_`0$pdNVx@wnoJr8t~BT-HZFRzK*%&Wqev%
z!pDULd=LZ-PfdXpTd(qXV#}MF2*WuXgp`z&5OZxUv9`A}mX(bSe51SW9n$IZ?Mf{x
ztENa%MTM9ZFM7S6lyMxXZfmprrUQP^BODyU-h>^8^{`%+*%=T*Z;B{RB9T0?TCMmW
z*28*PhGmIPr;E1R?feqm$zrjfuC5MFr}Gep!vUV>#h&^3dDv_=o@Gg4VWGn9c6ZFo
z%)nqUpr)n<X0sV4lL<OqF>-P=$jnqBEiD}d1=q!%k&$t_QGEx?lKlMq?Ee1#@nA3r
zjYdPm9P;uCpi*Vi;MILJnrmXu(9ml%H+#lemZ;TgLm&{C9UB`%VqzjnOK;L9?U7`B
zJkC6ef#O{%dU|}bEK8J1WtHFWM^{%D<Z?Om`f_NsH;xqLzKC1PR>-|qFfcFxmL<u_
z$<~R9w-_Asqq6c2TrLk98(YxO;MtYnQbE?5AS(TCMw~ZYbguS%fG89S`{?K-{V<a-
z8jVMiHeG;vvG|Y^E~!8wBO~uhrP6vPG&HnPpg&AbgMg<m1+=`HfbyOZQMOcs*DG-O
zMFtY)vJmnpVo_uY8zHpLQZY<yZti^?sIBd7(dO0`lAdQF=1V*XANKxVhGqZODVdB!
xq@)<blad}BM`DN$hTJ~=nN*!@B^eSi_Xi2D7CXNQ(;xr<002ovPDHLkV1jZ@Oy>Xq

diff --git a/interface/web/themes/default-v2/images/x16_sprite.png b/interface/web/themes/default-v2/icons/x16_sprite.png
similarity index 100%
rename from interface/web/themes/default-v2/images/x16_sprite.png
rename to interface/web/themes/default-v2/icons/x16_sprite.png
diff --git a/interface/web/themes/default-v2/images/x32_sprite.png b/interface/web/themes/default-v2/icons/x32_sprite.png
similarity index 100%
rename from interface/web/themes/default-v2/images/x32_sprite.png
rename to interface/web/themes/default-v2/icons/x32_sprite.png
diff --git a/interface/web/themes/default-v2/icons/x64/network.png b/interface/web/themes/default-v2/icons/x64/network.png
deleted file mode 100644
index e9aa4a22980d781de7a6a80f75c192d93703c55a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 5546
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

diff --git a/interface/web/themes/default-v2/icons/x64/server.png b/interface/web/themes/default-v2/icons/x64/server.png
deleted file mode 100644
index bcde9dcc5ca190c446b86ae32be731dc2e712f1a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3527
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
B`E39I

diff --git a/interface/web/themes/default-v2/images/loading.gif b/interface/web/themes/default-v2/images/loading.gif
new file mode 100644
index 0000000000000000000000000000000000000000..19afda1a39b4543b4745fe34a973988b77787f4d
GIT binary patch
literal 1460
zcmZ9LYfuws7=^#xY+w^2ECJ)98QhSI!A1xeYZ%(;5<*BQNI+95RGV-SO0^TJRysrN
z=0Ywu2vRSolp&xMZDjzR798zt5D|J2tkzM+YGBkVc3P%R75!sZXr`Bc-=FV2@AIB>
zvJE<Qngs(GcoYRDCMI_5*Z}}AnM?x%12Hi%EiEl7m1=r=+U0U-wOX-QeC*h<ii!#r
zi#0ntD|#NWCTrc=%nV~zYLb!#F+W955rhk#0|oPDhGGC9H8Z2`swLZ}!v&-r7!M<8
z#FS^G3o1*Hywqy&q&hAs>ptg^zYzUaQfRMHPpLTdW5y1myP)1)d}iZGC%vL8L&D`&
zey8Rrc=r$<-QJTXrfswm+{uqYSx{8iI$)IoNbKe#Wl{t&MZegB%>_~OTSU!mv0-NP
zspeD98tDOq-DwE#Q_~4pXSt$YWW9okFIYI5{RUP5Qi`yW)7KoAQKaZww`IJF>|A>O
z{%VUntb|VXn+YC|dM3Z70>~p%%=oZ$t53A`W8uDP@&6PtMj9Z+jACv_(aXmLnrvAb
z>qn8pvktzJ5<}_(0V=0i2sfdx=7|=r1ng5Be{Uf-iEqCIM(VnK)Eh$|(P#GRI&Q2&
zP!xW4qFDm02<1!pJ{Xnu<dd<r3I7G0KQjZExZqqWp}HE6JQfzaRe0(`Z8j>0^#&G^
zW5#z;xZOS-P5dl#)_ZCp`aRTc3t+3b?C`3}mJN&TGd6xTd?}M0?9+ZwaqF(~Ox#zT
zQ+Xv*KmERJ=b{iG8ZtJL0n}lmUQK&ZWFj(l^O}e)XTz7{G=>Fi8|uDm>XdCRT888C
z_mmL6yWNqzX`r0@&0&Nph)$tTH0}x>s*6jmCt455LZc%?qhDlZ^Z4ik)PG&%GIBS7
zay>2ee(j4J2XdnX4}dlcJ6xmSdXqEAT#T{>>1KfA&cX2qpj+p&D2<Zt>pn}bTqVE3
z37S0{6Z36^e8`l}&L}kMD{+{`Hx|T3z>6d}fVado?hGyPcU<PL`8H!7XfNVBeUmy_
z92l%~CFFPw%Xyn>c$T<^BX{`b%7#JU=r=Fs?QRyAsunx;_Z?RY;V(uB??^Rb*R7AO
zQXn2zuxB~Shri5sT9-6zbJJ6vlNc+!EH<RcKtljx;xZSQaRY^k_KmJET-2VgAs|(o
zqiabJ&ZR(R;SUdSVW4HJ_iB|M#aErrt1`ZxgLO^vW)KB(ZV%a{mkT^j5*kVpg#Cu~
zuw%KN%w`dNwlc!<?n=FGu9yEbVjj`VAYvUw#Rw%`f3GIq?8LJZI89rW0ljz6QC->X
zmdQVGvJ`Cv@W?@D4`D8jr8LC#yx4l@ut*J%2v(<`#03ky0YkbFH;p#-k^RxE@Uh7^
zg%a*7BK_)rF#?8hz7%gU#x`Y9)$d4eO#Hcp-VPls^96?_NXOCGhpMbwRBpb|-VT>5
znRaK|WGSbGy_}93YmUGkR_ebm4MPVB!ZOZdvHf%x73onWSV6Rae_>|$ri4#~1m}zl
z2{N@XEIm=1V1zExSsabMwabYu&EVcfdQ61!Gx>_T#~4Y|1#%>n91af{&DMQTqRgOb
zZ*&lpkw>{)5_1zKah0?~>e+ZUyR<>6&Ui8$+*bD*uLA#{;=GL;XAFhZ*;#&X-vI|*
zSNH_jgV4ypk>OgAVv}0y`c?nFe3#Q51`vVX-#s!B9oBYJLC9-y&S27BQUzzZY=ZPW
et`q6Ee0W;o$?RN2DyQ3A+H)(LB)n8cGW{>_T-+J}

literal 0
HcmV?d00001

diff --git a/interface/web/themes/default-v2/images/x64_sprite.png b/interface/web/themes/default-v2/images/x64_sprite.png
deleted file mode 100644
index 26ee099365a6fbdbad840e5bb5a6647ba0cd7606..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10019
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

diff --git a/interface/web/themes/default-v2/templates/dashboard/dashboard.htm b/interface/web/themes/default-v2/templates/dashboard/dashboard.htm
index 383d6b95c8..09aa158706 100644
--- a/interface/web/themes/default-v2/templates/dashboard/dashboard.htm
+++ b/interface/web/themes/default-v2/templates/dashboard/dashboard.htm
@@ -4,23 +4,32 @@
     <div>
         <tmpl_if name='error'>
             <div class="systemmonitor-state state-error">
-                <tmpl_loop name="error">
-                    <p>{tmpl_var name='error_msg'}</p>
-                </tmpl_loop>
+                <div class="status"></div>
+                <div class="statusMsg">
+                    <tmpl_loop name="error">
+                        {tmpl_var name='error_msg'}
+                    </tmpl_loop>
+                </div>
             </div>
         </tmpl_if>
         <tmpl_if name='warning'>
             <div class="systemmonitor-state state-warning">
-                <tmpl_loop name="warning">
-                    <p>{tmpl_var name='warning_msg'}</p>
-                </tmpl_loop>
+                <div class="status"></div>
+                <div class="statusMsg">
+                    <tmpl_loop name="warning">
+                        {tmpl_var name='warning_msg'}
+                    </tmpl_loop>
+                </div>
             </div>
         </tmpl_if>
         <tmpl_if name='info'>
             <div class="systemmonitor-state state-info">
-                <tmpl_loop name="info">
-                    <p>{tmpl_var name='info_msg'}</p>
-                </tmpl_loop>
+                <div class="status"></div>
+                <div class="statusMsg">
+                    <tmpl_loop name="info">
+                        {tmpl_var name='info_msg'}
+                    </tmpl_loop>
+                </div>
             </div>
         </tmpl_if>
     </div>
-- 
GitLab