* Thu Mar 20 2025 Brian Read <brianr@koozali.org> 11.0.0-71.sme

- Sort out navigation menu error on startup [SME: 12946]
- More places where floating panel needed
- Adjust floating panel to make space around it the same
- clean up some css
This commit is contained in:
Brian Read 2025-03-20 12:15:50 +00:00
parent 750ab7dd11
commit 36de44fcef
10 changed files with 462 additions and 664 deletions

View File

@ -38,405 +38,240 @@
bottom, commented out. These can be removed at the end of the 6.0 cycle */ bottom, commented out. These can be removed at the end of the 6.0 cycle */
/* general page properties */ /* general page properties */
body, body.main { body, body.main {
margin-top: 5px; margin-top: 5px;
margin-right: 20px; margin-right: 20px;
margin-bottom: 5px; margin-bottom: 5px;
margin-left: 5px; margin-left: 5px;
} }
/* Table properties ****************************************/ /* Table properties ****************************************/
/* There are THREE types of tables /* There are THREE types of tables 1. *.sme-layout* is used for layout purposes. It is the "master container" on a page. It controls the top-level table inside of which everything else is put. 2. *.sme-noborders* is used for layout, and defines a borderless table and cells used within it. 2. *.sme-border* is used for tabular data, and defines a header row and borders for tables that need borders */
1. *.sme-layout* is used for layout purposes. It is the "master
container" on a page. It controls the top-level table
inside of which everything else is put.
2. *.sme-noborders* is used for layout, and defines a borderless table and
cells used within it.
2. *.sme-border* is used for tabular data, and defines a header row and borders
for tables that need borders
*/
/*First, some defaults */ /*First, some defaults */
td { td {
text-align: left; text-align: left;
} }
/* sme-layout* : Used for top-level layout */
table.sme-layout {
/* border-collapse: collapse;
sme-layout* : Used for top-level layout margin-bottom: 2px;
*/ margin-top: 2px;
table.sme-layout {
border-collapse: collapse;
margin-bottom: 2px;
margin-top: 2px;
} }
tr.sme-layout {
tr.sme-layout { border: 1px solid #dddddd;
border: 1px solid #dddddd;
} }
td.sme-layout {
td.sme-layout { border: 1px solid #dddddd;
border: 1px solid #dddddd;
} }
/*This special style is actually used only for the button row along the bottom of each page*/ /*This special style is actually used only for the button row along the bottom of each page*/
th.sme-layout { th.sme-layout {
border: 1px solid #dddddd; border: 1px solid #dddddd;
background-color: #e8f3e1; background-color: #e8f3e1;
font-family: Verdana, Arial, Helvetica, sans-serif; font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 9pt; font-size: 9pt;
font-weight: bold; font-weight: bold;
color: #000000; color: #000000;
text-align: right; text-align: right;
padding: 4px; padding: 4px;
} }
/* sme-noborders* : Used for mid-level layout */
/* table.sme-noborders {
sme-noborders* : Used for mid-level layout padding: 0px;
*/ margin-top: 0px;
table.sme-noborders { margin-bottom: 20px;
padding: 0px; margin-left: 0px;
margin-top: 0px; margin-right: 0px;
margin-bottom: 20px; font-family: Verdana, Arial, Helvetica, sans-serif;
margin-left: 0px; font-size: 11px;
margin-right: 0px;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
} }
td.sme-noborders-label { td.sme-noborders-label {
font-weight: bold; font-weight: bold;
/*width: 250px;*/ /*width: 250px;
text-align: right; */
/*vertical-align: top;*/ text-align: right;
background-color: #e8f3e1; /*vertical-align: top;
font-family: Verdana, Arial, Helvetica, sans-serif; */
font-size: 11px; background-color: #e8f3e1;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
} }
td.sme-noborders-content { td.sme-noborders-content {
text-align: left; text-align: left;
vertical-align: top; vertical-align: top;
font-family: Verdana, Arial, Helvetica, sans-serif; font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px; font-size: 11px;
} }
td.sme-noborders-info, div.sme-noborders-info { td.sme-noborders-info, div.sme-noborders-info {
text-align: left; text-align: left;
vertical-align: top; vertical-align: top;
} }
/* Used for a left-most column of radio buttons (see date/time panel) */ /* Used for a left-most column of radio buttons (see date/time panel) */
td.sme-radiobutton { td.sme-radiobutton {
width: 30px; width: 30px;
} }
/* /* sme-border* : Used for tabular data */
sme-border* : Used for tabular data table.sme-border {
*/ border-collapse: collapse;
table.sme-border { border: 2px solid #cccccc;
border-collapse: collapse; empty-cells: show;
border: 2px solid #cccccc; margin: 5px 5px 5px 2px;
empty-cells: show;
margin: 5px 5px 5px 2px;
} }
td.sme-border, td.sme-border, td.sme-border-warning, td.sme-border-right, td.sme-border-center {
td.sme-border-warning, border: 1px solid #cccccc;
td.sme-border-right, font-family: Verdana, Arial, Helvetica, sans-serif;
td.sme-border-center { font-size: 10px;
border: 1px solid #cccccc; font-weight: normal;
font-family: Verdana, Arial, Helvetica, sans-serif; color: #000000;
font-size: 10px; text-align: left;
font-weight: normal; padding-left: 2px;
color: #000000; padding-right: 2px;
text-align: left; padding-top: 3px;
padding-left: 2px; padding-bottom: 3px;
padding-right: 2px;
padding-top: 3px;
padding-bottom: 3px;
} }
td.sme-border-warning { td.sme-border-warning {
color: red; color: red;
} }
td.sme-border-right {text-align: right;} td.sme-border-right {
td.sme-border-center {text-align: center;} text-align: right;
th.sme-border { }
border: 1px solid #cccccc; td.sme-border-center {
background-color: #bee6a2;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
color: #000000;
text-align: center; text-align: center;
vertical-align: bottom;
padding-left: 2px;
padding-right: 2px;
padding-left: 3px;
padding-right: 3px;
padding-top: 3px;
padding-bottom: 3px;
/*border-width: 1px;
border-style: solid;
border-color: #F2F0EE #75736E #75736E #F2F0EE ;*/
} }
td.sme-border a, td.sme-border-right a, td.sme-border-center a { th.sme-border {
font-size: 10px; border: 1px solid #cccccc;
background-color: #bee6a2;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
font-weight: bold;
color: #000000;
text-align: center;
vertical-align: bottom;
padding-left: 3px;
padding-right: 3px;
padding-top: 3px;
padding-bottom: 3px;
/*border-width: 1px;
border-style: solid;
border-color: #F2F0EE #75736E #75736E #F2F0EE ;
*/
}
td.sme-border a, td.sme-border-right a, td.sme-border-center a {
font-size: 10px;
} }
/* misc layout stuff*/ /* misc layout stuff*/
/* these two are for any error messages that pop up*/ /* these two are for any error messages that pop up*/
div.error, div.sme-error, span.error, span.sme-error { div.error, div.sme-error, span.error, span.sme-error {
color: red; color: red;
background-color: #ffffff; background-color: #ffffff;
border-width: 1px; border-width: 1px;
border-style: solid; border-style: solid;
border-color: red ; border-color: red ;
padding: 2px; padding: 2px;
margin-left: 20px; /* margin-left: 20px;
margin-right: 20px; /*margin-right: 20px;*/
margin-top:0px; /(margin-top:0;*/
margin-bottom:0px; /*margin-bottom:0;*/
*/
} }
div.error-noborders, div.sme-error-noborders, span.error-noborders, span.sme-error-noborders {
div.error-noborders, div.sme-error-noborders, color: red;
span.error-noborders, span.sme-error-noborders background-color: #ffffff;
{ border-width: 0px;
color: red;
background-color: #ffffff;
border-width: 0px;
} }
div.error h2, span.error h2, div.error p, span.error p {
div.error h2, span.error h2, color: red;
div.error p, span.error p
{
color: red;
} }
/* These are for the special case of a link being inside an error message */ /* These are for the special case of a link being inside an error message */
div.sme-error a, div.error a, span.error a, span.sme-error a, div.sme-error a, div.error a, span.error a, span.sme-error a, div.error-noborders a, div.sme-error-noborders a, span.error-noborders a, span.sme-error-noborders a {
div.error-noborders a, div.sme-error-noborders a, color: #ff0000;
span.error-noborders a, span.sme-error-noborders a font-weight: bold;
{ text-decoration: underline;
color: #ff0000;
font-weight: bold;
text-decoration: underline;
} }
/* For when a link is the error message */ /* For when a link is the error message */
a.error:link, a.error:visited, a.error:hover, a.error:active { a.error:link, a.error:visited, a.error:hover, a.error:active {
color: #ff0000; color: #ff0000;
font-weight: normal; font-weight: normal;
text-decoration: underline; text-decoration: underline;
} }
/* these two are for any success messages that pop up*/ /* these two are for any success messages that pop up*/
div.success, span.success { div.success, span.success {
color: #006400; color: #006400;
/* /* background-color: #ffffff;
background-color: #ffffff; border-width: 1px;
border-width: 1px; border-style: solid;
border-style: solid; border-color: #006400 ;
border-color: #006400 ; padding: 2px;
padding: 2px; /*
margin-left: 20px; margin-left: 20px;
margin-right: 20px; margin-right: 20px;
margin-top:0px; /*
*/ /*margin-top:0;*/
margin-bottom:4px; /*margin-bottom:4px;*/
*/
} }
/* These two are for the special case of a link being inside a success message */ /* These two are for the special case of a link being inside a success message */
div.success a, span.success a div.success a, span.success a {
{ color: #006400;
color: #006400; font-weight: bold;
font-weight: bold; text-decoration: underline;
text-decoration: underline;
} }
div.success h2, span.success h2, div.success p, span.success p {
div.success h2, span.success h2, color: green;
div.success p, span.success p
{
color: green;
} }
/*These two define the copyright footer styles, one for the line and one for the text*/ /*These two define the copyright footer styles, one for the line and one for the text*/
hr.sme-copyrightbar { hr.sme-copyrightbar {
} }
.sme-copyright { .sme-copyright {
} }
/* These ones define styles for the links that are made to look like standard form submit buttons */
/* These ones define styles for the links that are made to look like a.button-like:link, a.button-like:visited, a.button-like:hover, a.button-like:active, a.button-like-small:link, a.button-like-small:visited, a.button-like-small:hover, a.button-like-small:active {
standard form submit buttons */ font-family: sans-serif;
a.button-like:link, font-size: 13px;
a.button-like:visited, color: black;
a.button-like:hover, background: #D4D0C8;
a.button-like:active, text-decoration: none;
a.button-like-small:link, text-align: left;
a.button-like-small:visited, border-color: #F2F0EE #75736E #75736E #F2F0EE ;
a.button-like-small:hover, margin-top: 10px;
a.button-like-small:active { margin-right: 2px;
font-family: sans-serif; margin-bottom: 10px;
font-size: 13px; margin-left: 2px;
color: black; border-style: solid;
background: #D4D0C8; border-top-width: 2px;
text-decoration: none; border-right-width: 2px;
text-align: left; border-bottom-width: 2px;
border-color: #F2F0EE #75736E #75736E #F2F0EE ; border-left-width: 2px;
margin-top: 10px; padding-top: 2px;
margin-right: 2px; padding-bottom: 2px;
margin-bottom: 10px; padding-left: 6px;
margin-left: 2px; padding-right: 6px;
border-style: solid;
border-top-width: 2px;
border-right-width: 2px;
border-bottom-width: 2px;
border-left-width: 2px;
padding-top: 2px;
padding-bottom: 2px;
padding-left: 6px;
padding-right: 6px;
}
a.button-like-small:link,
a.button-like-small:visited,
a.button-like-small:hover,
a.button-like-small:active {
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
font-size: 10px;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 1px;
padding-right: 1px;
} }
a.button-like:active, a.button-like-small:link, a.button-like-small:visited, a.button-like-small:hover, a.button-like-small:active {
a.button-like-small:active { border-top-width: 1px;
border-color: #75736E #F2F0EE #F2F0EE #75736E ; border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
font-size: 10px;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 1px;
padding-right: 1px;
}
a.button-like:active, a.button-like-small:active {
border-color: #75736E #F2F0EE #F2F0EE #75736E ;
} }
/* EXPERIMENTAL SECTION */ /* EXPERIMENTAL SECTION */
/* These are styles used to experiment with. */ /* These are styles used to experiment with. */
/* class for links, similar to the class in sme_menu.css, but for a red button */ /* class for links, similar to the class in sme_menu.css, but for a red button */
a.button-like-red:link, a.button-like-red:link, a.button-like-red:visited, a.button-like-red:hover, a.button-like-red:active {
a.button-like-red:visited, border-left: #F1726C 2px solid;
a.button-like-red:hover, border-right: #B42025 2px solid;
a.button-like-red:active { border-top: #F1726C 2px solid;
border-left: #F1726C 2px solid; border-bottom: #B42025 2px solid;
border-right: #B42025 2px solid; }
border-top: #F1726C 2px solid; a.button-like-red:active {
border-bottom: #B42025 2px solid; border-color: #75736E #F2F0EE #F2F0EE #75736E ;
}
a.button-like-red:active {
border-color: #75736E #F2F0EE #F2F0EE #75736E ;
} }
/*These are style definitions found in the UI but not defined in any file I
could locate. They're listed here for historical purposes, but have been
removed from the UI
pagedescription (used in the first paragraph of text on a page) [HTML.pm]
label (used in forms) [HTML.pm]
field (used in forms) [HTML.pm]
fielddescription (used ???)[HTML.pm]
buttons (used in forms) [HTML.pm]
*/
/*td.sme-submitbutton {
text-align: right;
}
*/
/*These style definitions were found int he old css file (manager.css)
but don't seem to ever be referenced in the code. They're here
for reference.
.banner {
background: #000000;
color: #ffffff;
}
.banner-right {
font-family: Verdana, Arial, Helvetica, sans-serif;
background: #e17200;
color: #ffffff;
}
.border {
background: #000000;
color: #000000;
border-color: #000000;
}
.sidebar {
width: 200px;
background: #ffffff;
font-size: smaller;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: normal;
}
.sidebar-title {
background: #1e385b;
color: #ffffff;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.newsitem {
background: #ffffff;
color: #000000;
font-family: Verdana, Arial, Helvetica, sans-serif;
margin-left: 5px;
margin-right: 5px;
margin-top: 5px;
margin-bottom: 5px;
}
.newsitem-title {
background: #cccccc;
color: #ffffff;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
}
.newsitem-footer {
background: #cccccc;
color: #000000;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: smaller;
text-align: right;
}
.newsitem-detail {
font-size: smaller;
font-weight: normal;
}
.formlabel {
background: #c0c0c0;
color: #000000;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: small;
font-weight: bold;
text-align: right;
}
.welcome-link {
background: #ffffff;
color: #1e385b;
}
.littlelink {
font-family: Verdana, Arial, Helvetica, sans-serif;
}
#textlayer {
position: absolute;
visibility: inherit;
top: 160px;
left: 50px;
z-index: 2;
}
#para {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
color: #000000;
}
#title {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-weight: bold;
padding: 7px 7px 7px 7px;
color: #ffffff;
}
*/
EOF EOF
} }

View File

@ -54,348 +54,305 @@
/* This is the basic stylesheet originally used in the mojo version. /* This is the basic stylesheet originally used in the mojo version.
*/ */
body{ body{
background-color: #FFF; background-color: #FFF;
} }
#container{
#container{ max-width: 100%;
max-width: 100%; position: relative;
position: relative; margin: auto;
margin: auto;
} }
#header2 {
#header2 { width:94.2%;
width:96.5%; margin-left:1px;
margin-left:1px; /*margin-right:0;*/
margin-right:0px; margin-top:4px;
margin-top:4px;
} }
.module {
.module { padding: 20px;
padding: 20px; border: 1px solid #ccc;
border: 1px solid #ccc; border-radius: 10px;
border-radius: 10px; background-color: #f9f9f9;
background-color: #f9f9f9; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); margin-left:10px!important;
margin-top:10px!important;
/*margin-right:10px !important;*/
} }
#navigation{
#navigation{ width: 190px;
width: 190px; position: absolute;
position: absolute; /*margin-left: 0px;*/
margin-left: 0px; padding: 5px;
padding: 5px; background-color: #E8F3E1;
background-color: #E8F3E1; /* height: 600px;
/* height: 600px; */ */
overflow: auto; overflow: auto;
} }
#main{
#main{ margin-left: 195px;
margin-left: 195px; padding: 10px;
padding: 10px;
} }
#central{
#central{ /*margin-left: 0px;*/
margin-left: 0px; padding: 5px;
padding: 5px;
} }
#footer{
#footer{ /*margin-left: 0px;
margin-left: 0px; */
padding: 5px; padding-left : 5px;
} }
#header {
#header { /*background: #bee6a2;
/*background: #bee6a2;*/ */
width:100% width:100%;
margin:auto; margin:auto;
} }
#header h1, a:link, a:visited {
#header h1, a:link, a:visited { color: black;
color: black; text-decoration: none;
text-decoration: none; /* contribs.org styling */
/* contribs.org styling */
} }
a:link {
a:link { color: #006921; text-decoration: none; } color: #006921;
a:visited { color: #063; text-decoration: none; } text-decoration: none;
a:hover { color: #F00; text-decoration: none; }
a:active { color: #606060; text-decoration: none; }
.sme-error {
color: red;
display:block;
background-color: #ffffff;
border-width: 1px;
border-style: solid;
border-color: red ;
padding: 2px;
margin-left: 10px;
margin-right: 10px;
margin-top:0px;
margin-bottom:0px;
} }
a:visited {
.sme-warning { color: #063;
color: orange; text-decoration: none;
display:block;
background-color: #ffffff;
border-width: 1px;
border-style: solid;
border-color: orange ;
padding: 4px;
margin-left: 20px;
margin-right: 20px;
margin-top:2px;
margin-bottom:2px;
} }
a:hover {
#footer img { color: #F00;
float: right; text-decoration: none;
position: fixed;
margin-left: 40%;
} }
a:active {
label.field-with-error { color: #606060;
color: #dd7e5e text-decoration: none;
} }
.sme-error {
input.field-with-error { color: red;
background-color: #fd9e7e display:block;
background-color: #ffffff;
border-width: 1px;
border-style: solid;
border-color: red ;
padding: 2px;
/* margin-left: 10px;*/
/* margin-right: 10px;*/
/*margin-top:0;*/
/*margin-bottom:0;*/
} }
.sme-warning {
span.label { color: orange;
display: inline-block; display:block;
font-weight: bold; background-color: #ffffff;
background-color: #e8f3e1; /*lightgreen;*/ border-width: 1px;
width: 30%; border-style: solid;
text-align: right; border-color: orange ;
padding: 2px;
/* margin-left: 20px;
/* margin-right: 20px;*/
/*margin-top:2px;*/
/*margin-bottom:2px;*/
} }
#footer img {
td.label { float: right;
font-weight: bold; position: fixed;
background-color: #e8f3e1; /*lightgreen;*/ /*margin-left: 40%;*/
width: 30%;
text-align: right;
} }
label.field-with-error {
span.label2 { color: #dd7e5e
display: inline-block;
font-weight: bold;
background-color: #e8f3e1; /*lightgreen;*/
text-align: right;
} }
input.field-with-error {
span.data { background-color: #fd9e7e
padding: 2px;
font-weight: bold;
margin-left: 0%;
/* background-color: lightblue;*/
} }
span.label {
span.data2 { display: inline-block;
padding: 2px; font-weight: bold;
/* background-color: lightblue; */ background-color: #e8f3e1;
/*lightgreen;
*/
width: 30%;
text-align: right;
} }
td.label {
input.action { font-weight: bold;
margin-left: 0px; background-color: #e8f3e1;
background-color: #bee6a2; /*lightgreen;*/ /*lightgreen;
color: darkgreen; */
border-radius: 8px; width: 30%;
border: 2px solid #4CAF50; /* Green */ text-align: right;
display: flex;
justify-content: center;
align-items: center;
} }
span.label2 {
input.action:hover {background-color: #3e8e41; color:white;} display: inline-block;
font-weight: bold;
input.action:active { background-color: #e8f3e1;
background-color: #3e8e41; /*lightgreen;
transform: translate(-2px,2px); */
text-align: right;
} }
span.data {
.center { padding: 2px;
display: flex; font-weight: bold;
justify-content: center; margin-left:0;
/* background-color: lightblue;
*/
} }
span.data2 {
input.action2 { padding: 2px;
margin-left: 0px; /* background-color: lightblue;
color: black; */
background-color: #d4d0c8;
display: flex;
justify-content: center;
} }
input.action {
margin-left: 0px;
#modul.desc { background-color: #bee6a2;
padding: 3px; /*lightgreen;
background-color: grey; */
color: darkgreen;
border-radius: 8px;
border: 2px solid #4CAF50;
/* Green */
display: flex;
justify-content: center;
align-items: center;
} }
input.action:hover {
[type = 'text'] { background-color: #3e8e41;
margin-left: 0px; color:white;
/*background-color: lightblue;*/
} }
input.action:active {
.a, .return { background-color: #3e8e41;
color: #661866; transform: translate(-2px,2px);
font-weight: bold;
} }
.center {
a.section { display: flex;
justify-content: center;
} }
.a, .item { input.action2 {
line-height: 12px; margin-left: 0px;
color: black;
background-color: #d4d0c8;
display: flex;
justify-content: center;
} }
#modul.desc {
a.section-title { padding: 3px;
display: inline-block; background-color: grey;
color: #6CA345; /*#888;*/
padding-left: 5px;
padding-right: 5px;
line-height: 18px;
font-weight: bold;
} }
[type = 'text'] {
a.menu-title { margin-left: 0px;
display: inline-block; /*background-color: lightblue;
color: #1A6D1A; /*#666;*/ */
padding-left: 1px;
padding-right: 1px;
font-weight: bold;
} }
.a, .return {
color: #661866;
#module { font-weight: bold;
/* height: 600px; */
/* overflow: auto; */
} }
a.section {
#h2l1 {
height: 40px;
width: 100%;
} }
#h2e11 { .a, .item {
width: 50%; line-height: 12px;
float: left;
} }
#h2e12 { a.section-title {
background-color: #C0E7A6; display: inline-block;
float: left; color: #6CA345;
text-align: right; /*#888;
*/
padding-left: 5px;
padding-right: 5px;
line-height: 18px;
font-weight: bold;
} }
.toggle-password {
#h2l2 { margin-left: -30px;
/* background-color: #A8F9E7;*/
border-top: solid white 3px;
border-bottom: solid white 2px;
height: 14px;
width: 100%;
padding: 1px;
} }
.tg-icon {
#h2e21 { position: relative;
float: left; top: 5px;
width: 70%; left: 2px;
} }
.roundcube div {
#h2e22,#h2e23,#h2e12 { height:462px;
float: left; width:85%;
width: 14em; margin-bottom:1%;
text-align: center;
} }
.roundcube object {
.toggle-password { margin-top:1%;
margin-left: -30px; height:95%;
width:100%;
} }
#help-button {
.tg-icon { text-decoration: none;
position: relative; /* Remove underline from link */
top: 5px; font-size: 20px;
left: 2px; /* Adjust font size as needed */
padding: 8px 12px;
/* Add padding to the help link */
background-color: #98d36e;
/* Background for visibility */
border-radius: 4px;
/* Rounded corners */
color: #000;
/* Button text color */
} }
#help-button:hover {
.roundcube div { background-color: #82c961;
height:462px; /* Change background on hover */
width:85%;
margin-bottom:1%;
} }
.gradient-panel {
.roundcube object { width: 100%;
margin-top:1%; height: 40px;
height:95%; /* Fixed height for the panel */
width:100%; background: linear-gradient(to right, white , #c0e7a5 );
/* Deep green to light green */
display: flex;
align-items: center;
position:relative;
} }
.logo {
#help-button { height: 142%;
text-decoration: none; /* Remove underline from link */ /* Fixed height for the logo */
font-size: 20px; /* Adjust font size as needed */ width: auto;
padding: 8px 12px; /* Add padding to the help link */ /* Width will adjust to maintain aspect ratio */
background-color: #98d36e; /* Background for visibility */ margin-left: -16px;
border-radius: 4px; /* Rounded corners */
color: #000; /* Button text color */
} }
.login-button {
#help-button:hover { position: absolute;
background-color: #82c961; /* Change background on hover */ left: 7%;
/* Positions the button 2/3 across the panel */
transform: translateX(-50%);
/* Centers the button on its position */
background-color: #4caf50b8;
color: white !important;
border: none;
padding: 8px 16px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
cursor: pointer;
border-radius: 4px;
margin-left:77%
} }
.login-button:hover {
.gradient-panel { background-color: #45a049;
width: 100%;
height: 40px; /* Fixed height for the panel */
background: linear-gradient(to right, white , #c0e7a5 ); /* Deep green to light green */
display: flex;
align-items: center;
postion:relative;
}
.logo {
height: 142%; /* Fixed height for the logo */
width: auto; /* Width will adjust to maintain aspect ratio */
margin-left: -16px;
}
.login-button {
position: absolute;
left: 7%; /* Positions the button 2/3 across the panel */
transform: translateX(-50%); /* Centers the button on its position */
background-color: #4caf50b8;
color: white !important;
border: none;
padding: 8px 16px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 14px;
cursor: pointer;
border-radius: 4px;
margin-left:77%
}
.login-button:hover {
background-color: #45a049;
}
.flag-style {
position: absolute;
transform: translateY(-50%);
left: 95%;
/*right: 20px;*/
width: 24px;
height: 14px;
display: inline-block;
vertical-align: middle;
} }
.flag-style {
.no-visited-state:visited { position: absolute;
color: inherit; /* Or specify the desired color */ transform: translateY(-50%);
text-decoration: none; /* Or any other style you want to reset */ left: 95%;
/*right: 20px;
*/
width: 24px;
height: 14px;
display: inline-block;
vertical-align: middle;
}
.no-visited-state:visited {
color: inherit;
/* Or specify the desired color */
text-decoration: none;
/* Or any other style you want to reset */
} }
/*end*/ /*end*/
EOF EOF
} }

View File

@ -31,7 +31,7 @@ use SrvMngr::Plugin::WithoutCache;
use esmith::I18N; use esmith::I18N;
#this is overwrittrn with the "release" by the spec file - release can be "99.el8.sme" #this is overwrittrn with the "release" by the spec file - release can be "99.el8.sme"
our $VERSION = '51.el8.sme'; our $VERSION = '70.el8.sme';
#Extract the release value #Extract the release value
if ($VERSION =~ /^(\d+)/) { if ($VERSION =~ /^(\d+)/) {
$VERSION = $1; # $1 contains the matched numeric digits $VERSION = $1; # $1 contains the matched numeric digits
@ -565,8 +565,8 @@ sub getNavigation {
# Determine the directory where the functions are kept # Determine the directory where the functions are kept
#----------------------------------------------------- #-----------------------------------------------------
my $navigation_ctlr_ignore = my $navigation_ctlr_ignore =
"(\.\.?|Swttheme\.pm|Login\.pm|Request\.pm|Modules\.pm|Legacypanel\.pm(-.*)?)"; "(\.\.?|.*\-Custom\.pm|Swttheme\.pm|Login\.pm|Request\.pm|Modules\.pm|Legacypanel\.pm(-.*)?)";
# "(\.\.?|Initial\.pm|Manual\.pm|Swttheme\.pm|Request\.pm|Modules\.pm(-.*)?)"; # "(\.\.?|Initial\.pm|.*Manual\.pm|Swttheme\.pm|Request\.pm|Modules\.pm(-.*)?)";
my $navigation_cgi_ignore = my $navigation_cgi_ignore =
"(\.\.?|navigation|noframes|online-manual|(internal|pleasewait)(-.*)?)"; "(\.\.?|navigation|noframes|online-manual|(internal|pleasewait)(-.*)?)";
@ -925,4 +925,4 @@ sub get_reg_mask {
} }
1; 1;

View File

@ -2,7 +2,7 @@
% content_for 'module' => begin % content_for 'module' => begin
<div id="central module" class="sme-error"> <div id="central" class="sme-error module">
<p><br>dev<br> Oups !!! <p><br>dev<br> Oups !!!
The page you were requesting The page you were requesting
"<%= $self->req->url->path || '/' %>" "<%= $self->req->url->path || '/' %>"

View File

@ -2,7 +2,7 @@
% content_for 'module' => begin % content_for 'module' => begin
<div id="central module" class="sme-error"> <div id="central" class="sme-error module">
<p><br>dev<br> Oups !!! <p><br>dev<br> Oups !!!
The page you were requesting The page you were requesting
"<%= $self->req->url->path || '/' %>" "<%= $self->req->url->path || '/' %>"

View File

@ -1,5 +1,5 @@
% layout 'defaultlight', title => 'Sme server 2 - Error P'; % layout 'defaultlight', title => 'Sme server 2 - Error P';
<div id='central' class='central not_found-panel'> <div id='central' class='central not_found-panel module'>
<p><br><br> <p><br><br>
The page you were requesting The page you were requesting
"<%= $self->req->url->path || '/' %>" "<%= $self->req->url->path || '/' %>"
@ -7,4 +7,4 @@
<br><br> <br><br>
%= link_to Welcome => '/' %= link_to Welcome => '/'
</p> </p>
</div> </div>

View File

@ -3,7 +3,7 @@
% content_for 'module' => begin % content_for 'module' => begin
<div id='roundcube' class='roundcube roundcube-panel'> <div id='roundcube' class='roundcube roundcube-panel module'>
% if (config->{debug} == 1) { % if (config->{debug} == 1) {
<p> <p>
%= dumper $c->current_route %= dumper $c->current_route
@ -37,4 +37,4 @@
</div> </div>
%end %end

View File

@ -1,7 +1,7 @@
% layout 'default', title => 'Sme server 2 - IndexT'; % layout 'default', title => 'Sme server 2 - IndexT';
% content_for 'module' => begin % content_for 'module' => begin
<div id='central' class='central welcome-panel'> <div id='central' class='central welcome-panel module'>
<p>Index on line - Welcome page<br> <p>Index on line - Welcome page<br>
</p> </p>
<p> <p>

View File

@ -2,7 +2,7 @@
% content_for 'module' => begin % content_for 'module' => begin
<div id="central module" class="sme-error"> <div id="central " class="sme-error module">
<p><br>dev<br> What else !!! <p><br>dev<br> What else !!!
The page you were requesting The page you were requesting
"<%= $self->req->url->path || '/' %>" "<%= $self->req->url->path || '/' %>"

View File

@ -2,7 +2,7 @@ Summary: Sme server navigation module : manager 2
%define name smeserver-manager %define name smeserver-manager
Name: %{name} Name: %{name}
%define version 11.0.0 %define version 11.0.0
%define release 70 %define release 71
Version: %{version} Version: %{version}
Release: %{release}%{?dist} Release: %{release}%{?dist}
License: GPL License: GPL
@ -143,6 +143,12 @@ true
%defattr(-,root,root) %defattr(-,root,root)
%changelog %changelog
* Thu Mar 20 2025 Brian Read <brianr@koozali.org> 11.0.0-71.sme
- Sort out navigation menu error on startup [SME: 12946]
- More places where floating panel needed
- Adjust floating panel to make space around it the same
- clean up some css
* Wed Mar 19 2025 Brian Read <brianr@koozali.org> 11.0.0-70.sme * Wed Mar 19 2025 Brian Read <brianr@koozali.org> 11.0.0-70.sme
- Re-cast the default theme - use proper koozali logo image, unwind multiple divs - Re-cast the default theme - use proper koozali logo image, unwind multiple divs
- Enhance responsiveness - Enhance responsiveness