Tue, 05 Jan 2021 19:19:31 +0100
migrates the utility classes for the AbstractServlet
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2018 Mike Becker. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * */ html { font-family: sans-serif; font-size: 11pt; background: white; color: #1c204e; margin: 0; padding: 0; } body { height: 100%; margin: 0; padding: 0; } a { color: #3060f8; text-decoration: none; } #mainMenu { position: fixed; z-index: 2; width: 100%; display: flex; flex-flow: row wrap; border-image-source: linear-gradient(to right, #606060, rgba(60, 60, 60, .25)); border-image-slice: 1; border-bottom-style: solid; border-bottom-width: thin; } #sideMenu { display: flex; z-index: 1; flex-flow: column; position: fixed; height: 100%; width: 40ch; /* adjust with sidebar-spacing.margin-left */ padding-top: 2.25rem; color: #3060f8; border-image-source: linear-gradient(to bottom, #606060, rgba(60, 60, 60, .25)); border-image-slice: 1; border-right-style: solid; border-right-width: thin; } #content-area.sidebar-spacing { margin-left: 40ch; /* adjust with sideMenu.width */ } #mainMenu { font-size: 1.2rem; background: #e0e0e5; } #sideMenu { background: #f7f7ff; overflow-x: scroll; } #mainMenu .menuEntry { padding: .25em 1em .25em 1em; border-right-style: solid; border-right-width: thin; border-right-color: #9095a1; } #sideMenu .menuEntry { padding-top: .25em; padding-bottom: .25em; border-bottom-style: solid; border-bottom-width: thin; border-bottom-color: #d7d7df; } #mainMenu .menuEntry[data-active] { background: #d0d0d5; } #sideMenu .menuEntry[data-active] { background: #e7e7ef } #sideMenu .level-0 { padding-left: .25em; } #sideMenu .level-1 { padding-left: .75em; } #sideMenu .level-2 { padding-left: 2em; } #content-area { padding: 2.75rem 1em 1em; } button, a.button { display: inline-block; font-size: medium; border-style: solid; border-width: thin; border-color: #606060; color: inherit; background: #f0f0f0; padding: .25em .5em .25em .5em; cursor: default; text-decoration: none; } button:hover, a.button:hover { background: #f0f0ff; } button[type=submit], a.button.submit { background: #20a0ff; color: white; } button[type=submit]:hover, a.button.submit:hover { background: #1090cf; } th { text-align: left; } table.datatable { border-style: solid; border-width: thin; border-color: silver; border-collapse: collapse; } table.datatable th { white-space: nowrap; font-weight: bold; background: #f7f7ff; } table.datatable th, table.datatable td { border-style: solid; border-width: thin; border-color: lightgray; padding: .4em; } table.datatable tr:nth-child(2n) { background: #faffff; } table.formtable { border-style: none; border-collapse: separate; border-spacing: 1em; } table.formtable th { font-weight: bold; text-align: left; vertical-align: center; white-space: nowrap; } table.formtable tbody td > * { width: 100%; box-sizing: border-box; } table.formtable input[type=date] { width: auto; } table.formtable tfoot td { text-align: right; } .fullwidth { width: 100%; } .vtop { vertical-align: top; } .hcenter { text-align: center; } .hright { text-align: right; } .smalltext { font-size: smaller; } .nowrap { white-space: nowrap; } .medskip { margin-top: .5em; } .info-box, .error-box, .warn-box { margin: 2em; border-style: dashed; border-width: thin; border-color: deepskyblue; padding: 1em; } .error-box { border-color: red; } .warn-box { border-color: gold; } .table { display: table; border-spacing: .5em; margin: -.5em; } .row { display: table-row; } .caption { font-weight: bold; } .row > div { display: table-cell; } /* MARKDOWN STYLES */ div.markdown-styled p:first-child { margin-top: 0; } div.markdown-styled table { border-collapse: collapse; } div.markdown-styled td, div.markdown-styled th { padding: 0.25em; border-style: solid; border-color: darkgray; border-width: thin; }