mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Review feedback on #306. The value used to ride in /information.json and the picker fetched /vlanlist separately, so the page needed both requests to mean anything. /vlanlist now answers {"mgmt":N,"vlan":[...]} and the picker reads both from the one response. Both consumers in vlan.js were taught the new shape, and /information.json no longer carries mgmt_vlan. The truncation guard now reserves 141 bytes instead of 139: the closing grew to two bytes with the wrapping object, and the comma in front of a non-first entry was never counted, so the worst case could land one byte past outbuf even before this change. char_to_html() does not check. The comments added on this branch are gone as well, style.css and system.js both, since these files are served byte for byte. page_impl.rel stays at DSEG 5, OSEG 0, BSEG 3 and the image reports the same 10183 bytes of XDATA before and after.
168 lines
3.7 KiB
CSS
168 lines
3.7 KiB
CSS
h1, h2, h3 {
|
|
color: #226;
|
|
}
|
|
ul {
|
|
list-style-type: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
width: 12%;
|
|
height: calc(100% - 50px);
|
|
position: fixed;
|
|
top: 50px;
|
|
overflow: auto;
|
|
}
|
|
|
|
li a {
|
|
background-color: #aaf;
|
|
display: block;
|
|
color: #000;
|
|
padding: 8px 16px;
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* Change the link color on hover */
|
|
li a:hover {
|
|
background-color: #226;
|
|
color: white;
|
|
}
|
|
|
|
table, th, td {
|
|
border: 1px solid #226;
|
|
padding: 8px;
|
|
}
|
|
table {
|
|
border-collapse: collapse;
|
|
width: 60%;
|
|
}
|
|
|
|
td {
|
|
text-align: right;
|
|
}
|
|
|
|
input[type=submit] { padding: 8px 16px;background-color:#aaf;color:#000; margin-bottom: 2em;border-radius: 15px;width: 100%;}
|
|
input[type=submit]:hover { background-color: #226; color: white;}
|
|
input[type=file] { padding: 8px 16px;background-color:#aaf;color:#000; margin-bottom: 2em;border-radius: 15px;width: 60%;}
|
|
input[type=file]:hover { background-color: #226; color: white;}
|
|
b
|
|
button {padding: 8px; background-color:#99f; color:#000;border-radius: 15px;}
|
|
button:hover { background-color: #226; color: white;}
|
|
.action{padding: 8px 16px;margin-top: 2em;margin-right: 3em; background-color: #aaf;color: #000;border-radius: 15px; width: 100%;}
|
|
.action:hover { background-color: #226; color: white;}
|
|
|
|
/* Port selection inputs */
|
|
.psel {
|
|
position: absolute;
|
|
opacity: 0;
|
|
width: 0;
|
|
height: 0;
|
|
margin-top: 1em;
|
|
}
|
|
.psel + img {
|
|
cursor: pointer;
|
|
opacity: 0.4;
|
|
padding: 8px;
|
|
}
|
|
.psel:checked + img {
|
|
/* outline: 2px solid #f00;*/
|
|
opacity: 1.0;
|
|
}
|
|
object, img {
|
|
margin: 0.5em 0.5em;
|
|
}
|
|
.cbgroup {
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
.cbgroup label {
|
|
display: block;
|
|
}
|
|
|
|
.disabled{ opacity: .4; background-color: #f88; color: #000}
|
|
.isSFP{ opacity: .4; background-color: #660;}
|
|
.isNOK{ color: #900;}
|
|
.isOK{ color: #090;}
|
|
.ip{padding:8px 16px;margin-bottom: 1em;margin-left: 1em}
|
|
.rotext{display:inline-block;padding:8px 16px;margin-bottom: 1em;margin-left: 1em}
|
|
.row {display: flex;}
|
|
.rcol {flex: 90%;}
|
|
.lcol {flex: 10%;}
|
|
|
|
/* Login page */
|
|
.login_page {margin: 0; padding: 0; background: #aaf; height: 100vh; overflow: hidden;}
|
|
.center{
|
|
position: absolute; top: 50%; left: 50%;
|
|
transform: translate(-50%, -40% );
|
|
width: 500px; height: 400px;
|
|
background: white;
|
|
border-radius: 2px;
|
|
}
|
|
|
|
.center h1 {
|
|
text-align: center;
|
|
border-bottom: 1px solid silver;
|
|
}
|
|
|
|
.center form {
|
|
padding: 0 60px;
|
|
box-sizing: border-box;
|
|
}
|
|
form .txt_field{
|
|
position: relative;
|
|
border-bottom: 2px solid #adadad;
|
|
margin: 30px 0;
|
|
}
|
|
.txt_field input { width: 100%; padding: 0 5px; height: 40px; font-size: 16px; border: none;
|
|
background: none;
|
|
outline: none;}
|
|
.txt_field label { position: absolute; top: 50%; left: 5px; color:#adadad; transform: translateY(-50%);
|
|
font-size: 16px; pointer-events: none;transition: .5s; }
|
|
.txt_field span::before{ content:''; position: absolute; top: 40px; left:0; width: 100%; height: 2px; background: #aaf;}
|
|
.txt_field input:focus ~ label,
|
|
.txt_field input:valid ~ label { top: -5px; color: #aaf; }
|
|
|
|
.tooltip {
|
|
position: relative; display: inline-block; cursor: pointer;
|
|
}
|
|
|
|
|
|
.tooltiptext {
|
|
visibility: hidden;
|
|
width: 260px;
|
|
background-color: #226;
|
|
color: #fff;
|
|
text-align: center;
|
|
border-radius: 6px;
|
|
padding: 5px 0;
|
|
position: absolute;
|
|
z-index: 1;
|
|
top: 80%;
|
|
left: 50%;
|
|
margin-left: -130px;
|
|
}
|
|
|
|
.tooltiptext::after {
|
|
content: "";
|
|
position: absolute;
|
|
bottom: 100%;
|
|
left: 50%;
|
|
margin-left: -5px;
|
|
border-width: 5px;
|
|
border-style: solid;
|
|
border-color: transparent transparent black transparent;
|
|
}
|
|
|
|
|
|
.tooltip:hover .tooltiptext {
|
|
visibility: visible;
|
|
opacity: 1;
|
|
}
|
|
.tt_table {
|
|
width: 100%; font-size:90%;
|
|
}
|
|
.tt_table td {
|
|
text-align: left;
|
|
}
|
|
select { text-align-last: right; font-family: monospace}
|
|
option { direction: rtl; font-family: sans-serif}
|
|
#vlanTable td { text-align: left; }
|