mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-09-21 02:07:23 -04:00
Introduce a lightweight job scheduling system built on CI4 Tasks,
allowing due tasks to run via normal web traffic instead of relying
solely on external cron/Task Scheduler processes.
- Add JobRunner filter: runs TaskRunner after response send via
shutdown function, throttled per-minute via cache, respects
jobs_mode config ('auto'/'web'/'manual') and max-seconds budget
- Register jobrunner filter globally (app/Config/Filters.php),
disabled during testing to avoid heartbeat log spam
- Add Config/Tasks.php with jobs_heartbeat scheduled task (debug
log every minute) as scaffolding for future job commands
- Add Config/Jobs.php for mode/webMaxSeconds defaults
- Add Jobs controller + views (manage, settings_config,
utilities_config, partial/job_throttles) for configuring mode,
web max seconds, and per-period throttles; process-all/selected
actions stubbed for a later phase
- Add gulp task to copy jobs.svg menubar icon
- Fix tooltip clipping: use container: 'body' for bootstrap
tooltips and add max-width/text-align rules for tooltip-inner /
ui-tooltip in ospos.css
- Fix missing closing div in partial/footer.php layout
Signed-off-by: objecttothis <17935339+objecttothis@users.noreply.github.com>
192 lines
2.7 KiB
CSS
192 lines
2.7 KiB
CSS
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
html,
|
|
body {
|
|
height: 100%;
|
|
}
|
|
|
|
a.none {
|
|
text-decoration: none;
|
|
}
|
|
|
|
.topbar {
|
|
color: #eee;
|
|
font-size: 12px;
|
|
background: #182735;
|
|
padding: 0.2em;
|
|
}
|
|
|
|
/* Add container-xxl width from Bootstrap 5 */
|
|
@media (min-width: 1400px) {
|
|
.container {
|
|
width: 1320px;
|
|
}
|
|
}
|
|
|
|
.navbar {
|
|
border-radius: 0;
|
|
}
|
|
|
|
.tab-pane {
|
|
padding-top: 10px;
|
|
}
|
|
|
|
.navbar-default .navbar-nav>.active>a,
|
|
.navbar-default .navbar-nav>.active>a:hover,
|
|
.navbar-default .navbar-nav>.active>a:focus {
|
|
color: #2C3E50;
|
|
background-color: #FFFFFF;
|
|
}
|
|
|
|
.jumbotron.push-spaces {
|
|
margin: 0; /* Add this */
|
|
}
|
|
|
|
.navbar .menu-icon {
|
|
text-align: center;
|
|
font-size: 12px;
|
|
}
|
|
|
|
.navbar .menu-icon img {
|
|
width: 24px;
|
|
}
|
|
|
|
.wrapper {
|
|
font-size: 13px;
|
|
}
|
|
|
|
#title_bar {
|
|
position: relative;
|
|
width: 100%;
|
|
height: 3em;
|
|
}
|
|
|
|
#page_title {
|
|
font-size: 22px;
|
|
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
font-weight: 400;
|
|
}
|
|
|
|
#page_subtitle {
|
|
margin-bottom: 0.5em;
|
|
font-size: 16px;
|
|
font-weight: bold;
|
|
text-align: center;
|
|
}
|
|
|
|
#home_module_list,
|
|
#office_module_list {
|
|
position: relative;
|
|
padding: 2em 0;
|
|
text-align: center;
|
|
}
|
|
|
|
.module_item {
|
|
min-width: 7em;
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
|
|
.module_item a {
|
|
display: block;
|
|
}
|
|
|
|
#config_wrapper {
|
|
text-align: center;
|
|
}
|
|
|
|
#config_info {
|
|
text-align: left;
|
|
}
|
|
|
|
#config_info .wide {
|
|
width: 30%;
|
|
}
|
|
|
|
#integrations_header {
|
|
margin: 10px 0;
|
|
text-align: center;
|
|
font-size: 1.4em;
|
|
font-weight: normal;
|
|
padding: 10px 0
|
|
}
|
|
|
|
#footer {
|
|
margin-top: 5em;
|
|
position: relative;
|
|
text-align: center;
|
|
font-size: 11px;
|
|
color: #777777;
|
|
clear: both;
|
|
}
|
|
|
|
a.rollover img {
|
|
padding: 3px;
|
|
}
|
|
|
|
#filters.btn-group {
|
|
vertical-align: none;
|
|
}
|
|
|
|
button.btn.dropdown-toggle.btn-sm {
|
|
background-color: white;
|
|
color: black;
|
|
border: 2px solid #dce4ec;
|
|
}
|
|
|
|
.dropdown-menu {
|
|
font-size: 13px;
|
|
}
|
|
|
|
.bootstrap-tagsinput {
|
|
background-color: white;
|
|
color: black;
|
|
border: 2px solid #dce4ec;
|
|
box-shadow: none;
|
|
}
|
|
|
|
label.required {
|
|
color: red;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.navbar-nav>li>a {
|
|
padding: 10px 10px 9px;
|
|
}
|
|
|
|
.modal-dlg .modal-dialog {
|
|
width: 500px;
|
|
}
|
|
|
|
.modal-dlg-wide .modal-dialog {
|
|
width: 750px;
|
|
}
|
|
}
|
|
|
|
.modal-body {
|
|
max-height: calc(100vh - 212px);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.no-gutter [class*="-1"] {
|
|
padding-right: 0;
|
|
padding-left: 0;
|
|
}
|
|
|
|
/* Recreate font-monospace class from Bootstrap 5 */
|
|
.font-monospace {
|
|
font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
|
|
}
|
|
|
|
.tooltip-inner {
|
|
max-width: 350px;
|
|
text-align: left;
|
|
}
|
|
|
|
.ui-tooltip {
|
|
max-width: 350px;
|
|
}
|