mirror of
https://github.com/ShaYmez/FreeSTAR-Status-Engine.git
synced 2025-04-24 04:10:32 -04:00
first steps for bootstrap v5.0
This commit is contained in:
parent
b2cfd66fc9
commit
ec86fe224b
@ -40,14 +40,14 @@ Template::render_header(_("Dashboard"), true);
|
||||
<div class="timeline">
|
||||
<div class="line text-muted"></div>
|
||||
<h3><?php echo _("New incident");?></h3>
|
||||
<form id="new-incident" action="<?php echo WEB_URL;?>/admin/?new=incident" method="POST" class="clearfix">
|
||||
<div class="panel">
|
||||
<form id="new-incident" action="<?php echo WEB_URL;?>/admin/?new=incident" method="POST" class="">
|
||||
<div class="card">
|
||||
<?php if (isset($message))
|
||||
{?>
|
||||
<p class="alert alert-danger"><?php echo $message?></p>
|
||||
<?php
|
||||
} ?>
|
||||
<div id="status-container" class="clearfix">
|
||||
<div id="status-container" class="">
|
||||
<?php
|
||||
if (isset($_POST['services']) && !is_array($_POST['services']))
|
||||
{
|
||||
@ -58,33 +58,42 @@ Template::render_header(_("Dashboard"), true);
|
||||
|
||||
foreach($services as $service){
|
||||
?>
|
||||
<div class="item clearfix">
|
||||
<div class="service"><?php if ($service->get_status()!=-1){?><input type="checkbox" name="services[]" value="<?php echo $service->get_id(); ?>" <?php echo (in_array($service->get_id(), $post_services))?"checked":'';?> id="service-<?php echo $service->get_id(); ?>"><?php } ?><label for="service-<?php echo $service->get_id(); ?>"><?php echo $service->get_name(); ?></label></div>
|
||||
<div class="status <?php if ($service->get_status()!=-1){echo $classes[$service->get_status()];}?>"><?php if ($service->get_status()!=-1){echo $statuses[$service->get_status()];}?></div>
|
||||
<div class="input-group mb-3">
|
||||
<?php if ($service->get_status()!=-1){?>
|
||||
<div class="input-group-text service">
|
||||
<input type="checkbox" name="services[]" value="<?php echo $service->get_id(); ?>" <?php echo (in_array($service->get_id(), $post_services))?"checked":'';?> id="service-<?php echo $service->get_id(); ?>">
|
||||
</div>
|
||||
<label id="name" class="input-group-text form-control" for="service-<?php echo $service->get_id(); ?>"><?php echo $service->get_name(); ?></label>
|
||||
<label id="status" class="input-group-text btn-<?php if ($service->get_status()!=-1){echo $classes[$service->get_status()];}?>" for="service-<?php echo $service->get_id(); ?>"><?php echo $statuses[$service->get_status()];?></label >
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel new panel-primary">
|
||||
<div class="panel-heading icon">
|
||||
<i class="glyphicon glyphicon-info-sign"></i>
|
||||
</div>
|
||||
<div class="panel-heading clearfix">
|
||||
<input type="text" name="title" id="title" placeholder="<?php echo _("Title");?>" value="<?php echo (isset($_POST['title'])?htmlspecialchars($_POST['title']):''); ?>" required> <span id="time"><input id="time_input" type="text" pattern="(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))" name="time" value="<?php echo (isset($_POST['time'])?htmlspecialchars($_POST['time']):''); ?>" class="pull-right" title="Use ISO 8601 format (e.g. 2017-11-23T19:50:51+00:00)" placeholder="<?php echo _("Time");?>">
|
||||
<input id="time_input_js" name="time_js" type="hidden" class="pull-right">
|
||||
</span>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<textarea name="text" placeholder="<?php echo _("Here goes your text...");?>" required><?php echo (isset($_POST['text'])?htmlspecialchars($_POST['text']):''); ?></textarea>
|
||||
</div>
|
||||
<div class="panel-footer clearfix">
|
||||
<small><?php echo _("Posted by");?>: <?php echo $user->get_username();?> <span class="pull-right" id="end_time_wrapper"><?php echo _("Ending");?>: <input id="end_time" title="Use ISO 8601 format (e.g. 2017-11-23T19:50:51+00:00)" type="text" pattern="(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))" name="end_time" class="pull-right" placeholder="<?php echo _("End time");?>" value="<?php echo (isset($_POST['end_time'])?htmlspecialchars($_POST['end_time']):''); ?>"></span></small>
|
||||
<input id="end_time_js" name="end_time_js" type="hidden" class="pull-right">
|
||||
</div>
|
||||
<article class="card new border-primary mb-3">
|
||||
<div class="card-colore icon bg-primary"><i class="fa fa-info"></i></div>
|
||||
<div class="card-colore card-header bg-primary border-primary">
|
||||
<input type="text" name="title" id="title" placeholder="<?php echo _("Title");?>" value="<?php echo (isset($_POST['title'])?htmlspecialchars($_POST['title']):''); ?>" required>
|
||||
<span id="time" class="float-end">
|
||||
<input id="time_input" type="text" pattern="(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))" name="time" value="<?php echo (isset($_POST['time'])?htmlspecialchars($_POST['time']):''); ?>" class="pull-right" title="Use ISO 8601 format (e.g. 2017-11-23T19:50:51+00:00)" placeholder="<?php echo _("Time");?>">
|
||||
<input id="time_input_js" name="time_js" type="hidden" class="pull-right">
|
||||
</span>
|
||||
</div>
|
||||
<select class="form-control pull-left" id="type" name="type">
|
||||
<div class="card-body text-primary">
|
||||
<p class="card-text"><textarea name="text" placeholder="<?php echo _("Here goes your text...");?>" required><?php echo (isset($_POST['text'])?htmlspecialchars($_POST['text']):''); ?></textarea></p>
|
||||
</div>
|
||||
<div class="card-footer bg-transparent border-primary">
|
||||
<small><?php echo _("Posted by");?>: <?php echo $user->get_username();?></small>
|
||||
<span class="float-end" id="end_time_wrapper"><?php echo _("Ending");?>:
|
||||
<input id="end_time" title="Use ISO 8601 format (e.g. 2017-11-23T19:50:51+00:00)" type="text" pattern="(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))" name="end_time" class="pull-right" placeholder="<?php echo _("End time");?>" value="<?php echo (isset($_POST['end_time'])?htmlspecialchars($_POST['end_time']):''); ?>">
|
||||
<input id="end_time_js" name="end_time_js" type="hidden" class="pull-right">
|
||||
</span>
|
||||
</div>
|
||||
</article>
|
||||
<div class="input-group">
|
||||
<select class="form-select" id="type" name="type">
|
||||
<?php
|
||||
if (isset($_POST['type']))
|
||||
{
|
||||
@ -99,7 +108,8 @@ Template::render_header(_("Dashboard"), true);
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<button type="submit" class="btn btn-primary pull-right"><?php echo _("Submit");?></button>
|
||||
<button class="btn btn-outline-secondary" type="submit"><?php echo _("Submit");?></button>
|
||||
</div>
|
||||
</form>
|
||||
<?php
|
||||
$constellation->render_incidents(true,$offset,5,true);
|
||||
|
@ -193,31 +193,28 @@ class Incident implements JsonSerializable
|
||||
$admin = $admin && (($user->get_rank()<=1) || ($user->get_username() == $this->username));
|
||||
$Parsedown = new Parsedown();
|
||||
?>
|
||||
<article class="panel panel-<?php echo $classes[$this->type];?>">
|
||||
<div class="panel-heading icon">
|
||||
<i class="<?php echo $icons[$this->type];?>"></i>
|
||||
</div>
|
||||
<div class="panel-heading clearfix">
|
||||
<h2 class="panel-title"><?php echo $this->title; ?></h2>
|
||||
<?php if ($admin){
|
||||
echo '<a href="'.WEB_URL.'/admin/?delete='.$this->id.'" class="pull-right delete"><i class="fa fa-trash"></i></a>';
|
||||
}?>
|
||||
<article class="card border-<?php echo $classes[$this->type];?> mb-3">
|
||||
<div class="card-colore icon bg-<?php echo $classes[$this->type];?>"><i class="<?php echo $icons[$this->type];?>"></i></div>
|
||||
<div class="card-header bg-<?php echo $classes[$this->type];?> border-<?php echo $classes[$this->type];?>">
|
||||
<?php echo $this->title; ?>
|
||||
<time class="pull-right timeago" datetime="<?php echo $this->date; ?>"><?php echo $this->date; ?></time>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="float-end">
|
||||
<?php if ($admin){
|
||||
echo '<a href="'.WEB_URL.'/admin/?delete='.$this->id.'" class="pull-right delete"><i class="fa fa-trash"></i></a>';
|
||||
}?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?php echo $Parsedown->setBreaksEnabled(true)->text($this->text); ?>
|
||||
</div>
|
||||
<div class="panel-footer clearfix">
|
||||
<small>
|
||||
<?php echo _("Impacted service(s): ");
|
||||
foreach ( $this->service_name as $value ) {
|
||||
echo '<span class="label label-default">'.$value . '</span> ';
|
||||
}
|
||||
|
||||
<div class="card-footer bg-transparent border-<?php echo $classes[$this->type];?>">
|
||||
<?php echo _("Impacted service(s): ");
|
||||
foreach ( $this->service_name as $value ) {
|
||||
echo '<span class="label label-default">'.$value . '</span> ';
|
||||
}
|
||||
if (isset($this->end_date)){?>
|
||||
<span class="pull-right"><?php echo strtotime($this->end_date)>time()?_("Ending"):_("Ended");?>: <time class="pull-right timeago" datetime="<?php echo $this->end_date; ?>"><?php echo $this->end_date; ?></time></span>
|
||||
<?php } ?>
|
||||
</small>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</article>
|
||||
<?php
|
||||
|
@ -193,7 +193,7 @@ class Service implements JsonSerializable
|
||||
$statuses[$service->get_status()]++;
|
||||
}
|
||||
|
||||
echo '<div id="status-big" class="status '.$classes[$worst].'">';
|
||||
echo '<div id="status-big" class="alert-'.$classes[$worst].'">';
|
||||
|
||||
if ($statuses[$worst] == count($array))
|
||||
{
|
||||
@ -230,7 +230,7 @@ class Service implements JsonSerializable
|
||||
echo '<ul class="list-group components">';
|
||||
//echo '<ul class="platforms list-group mb-2">';
|
||||
// Render the group status if it exists
|
||||
echo '<li class="list-group-item list-group-item-success group-name"><span><i class="glyphicon glyphicon-plus"></i></span> ' . $this->group_name .'<div class="status '. $classes[$this->status] .'">'. _($statuses[$this->status]).'</div></li>';
|
||||
echo '<li class="list-group-item list-group-item-success group-name"><span><i class="fas fa-folder-open"></i></span> ' . $this->group_name .'<div class="status '. $classes[$this->status] .'">'. _($statuses[$this->status]).'</div></li>';
|
||||
//echo '<li class="cist-group-item d-flex flex-row justify-content-between platform list-group-item-action py-0 expanded" role="button">' . $this->group_name .'<div class="status '. $classes[$this->status] .'"'. _($statuses[$this->status]).'</div></li>';
|
||||
$arrCompletedGroups[] = $this->group_name;
|
||||
$boolOpened = true;
|
||||
@ -248,7 +248,7 @@ class Service implements JsonSerializable
|
||||
echo '<li class="list-group-item sub-component"><strong>' . $this->name .'</strong>';
|
||||
//echo '<li class="list-group-item d-flex flex-columns justify-content-between><span>+</span><h3 class="py-2 my-0 flex-fill expanded">' . $this->name . '</h3>';
|
||||
if(!empty($this->description)) {
|
||||
echo '<a class="desc-tool-tip" data-toggle="tooltip" data-placement="top" title="'.$this->description.'"> <span><i class="glyphicon glyphicon-question-sign"></i></span></a>';
|
||||
echo '<a class="desc-tool-tip" data-toggle="tooltip" data-placement="top" title="'.$this->description.'"> <span><i class="fas fa-question"></i></span></a>';
|
||||
}
|
||||
if ($this->status!=-1){?><div class="status <?php echo $classes[$this->status];?>"><?php echo _($statuses[$this->status]);?></div>
|
||||
<?php
|
||||
|
@ -83,7 +83,7 @@ Class Subscriptions
|
||||
echo '<div class="list-group">';
|
||||
if ($query->num_rows){
|
||||
while($result = $query->fetch_assoc()){
|
||||
echo '<a href="'.WEB_URL.'/subscriptions.php?add=' . $result['id'] . '" class="list-group-item list-group-item-action"><span class="glyphicon glyphicon-plus text-success"></span> ' . $result['name'] . '</a>';
|
||||
echo '<a href="'.WEB_URL.'/subscriptions.php?add=' . $result['id'] . '" class="list-group-item list-group-item-action"><span class="fas fa-plus text-success"></span> ' . $result['name'] . '</a>';
|
||||
}
|
||||
} else {
|
||||
echo '<div class="container"><summary>'._("No further services available for subscriptions.").'</summary></div>';
|
||||
|
6
css/bootstrap.min.css
vendored
6
css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
716
css/main.css
716
css/main.css
@ -1,632 +1,300 @@
|
||||
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese');
|
||||
@import url('https://fonts.googleapis.com/css?family=Fira+Sans:400,700&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese');
|
||||
@import url("https://fonts.googleapis.com/css?family=Open+Sans:400&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese");
|
||||
@import url("https://fonts.googleapis.com/css?family=Fira+Sans:400,700&subset=cyrillic,cyrillic-ext,greek,greek-ext,latin-ext,vietnamese");
|
||||
|
||||
body {
|
||||
background: #ffffff;
|
||||
margin: 0;
|
||||
margin-top: 80px;
|
||||
height: 100%;
|
||||
line-height: 24px;
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
background: #ffffff;
|
||||
margin: 0;
|
||||
margin-top: 80px;
|
||||
height: 100%;
|
||||
line-height: 24px;
|
||||
font-family: "Open Sans", sans-serif;
|
||||
}
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
color:#f5f4f4;
|
||||
}
|
||||
|
||||
a.desc-tool-tip, a.desc-tool-tip:hover, a.desc-tool-tip:visited {
|
||||
color: grey;
|
||||
color: #f5f4f4;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
.navbar {
|
||||
padding-top: 5px;
|
||||
margin-bottom: 0px;
|
||||
background-color: gray;
|
||||
border-radius: 0px 0px 30px 30px;
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
padding: 10px 15px;
|
||||
#wrapper {
|
||||
max-width: 1024px;
|
||||
min-height: calc(100vh - 157px);
|
||||
padding-right: 15px;
|
||||
padding-left: 15px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
color: #f5f4f4;
|
||||
font-size: 1em;
|
||||
#status-container .input-group:last-child {
|
||||
margin-bottom: 0px !important;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > li > a:hover {
|
||||
color: #a7a7a7;
|
||||
.status {
|
||||
float: right;
|
||||
font-size: 1.05em;
|
||||
}
|
||||
|
||||
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #f5f4f4;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-collapse
|
||||
{
|
||||
background: gray;
|
||||
}
|
||||
.navbar-default {
|
||||
z-index: 200;
|
||||
background-color: gray;
|
||||
border-color: transparent;
|
||||
border-radius: 0px 0px 30px 30px;
|
||||
height: 77px;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.admins_color h4 {
|
||||
color: #3a72bd;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
.navbar-right{
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.navbar-left{
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
div.center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#wrapper
|
||||
{
|
||||
max-width: 1024px;
|
||||
min-height: calc(100vh - 157px);
|
||||
padding-right: 15px;
|
||||
padding-left: 15px
|
||||
}
|
||||
|
||||
#status-container
|
||||
{
|
||||
border-radius: 5px;
|
||||
border: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
#status-container .item:last-child
|
||||
{
|
||||
border: none;
|
||||
}
|
||||
|
||||
#status-container .item{
|
||||
border-bottom: 1px solid #e0e0e0;
|
||||
}
|
||||
|
||||
.service{
|
||||
float: left;
|
||||
box-sizing: border-box;
|
||||
padding: 15px 35px;
|
||||
font-weight: bold;
|
||||
font-size: 1.1em;
|
||||
font-family: 'Fira Sans', sans-serif;
|
||||
}
|
||||
|
||||
body.admin .status{
|
||||
box-sizing: border-box;
|
||||
padding: 15px 35px;
|
||||
font-size: 1.1em;
|
||||
font-family: 'Fira Sans', sans-serif;
|
||||
}
|
||||
|
||||
body a h1{
|
||||
font-size: 1.3em;
|
||||
margin: 0;
|
||||
line-height: 1.3em
|
||||
}
|
||||
|
||||
.status{
|
||||
float: right;
|
||||
box-sizing: border-box;
|
||||
padding: 0px 35px;
|
||||
text-align: right;
|
||||
font-size: 1.05em;
|
||||
font-family: 'Fira Sans', sans-serif;
|
||||
}
|
||||
|
||||
.status.success{
|
||||
color:#2fcc66;
|
||||
}
|
||||
|
||||
.status.warning{
|
||||
color:#edaa16;
|
||||
}
|
||||
|
||||
.status.danger{
|
||||
color:#e74c3c;
|
||||
}
|
||||
|
||||
.status.primary{
|
||||
color:#3A72BD;
|
||||
}
|
||||
|
||||
.panel-success{
|
||||
border-color:#2fcc66;
|
||||
}
|
||||
|
||||
.navbar-header .btn
|
||||
{
|
||||
margin-top: 15px;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.panel-warning{
|
||||
border-color:#edaa16;
|
||||
}
|
||||
|
||||
.panel-danger{
|
||||
border-color:#e74c3c;
|
||||
}
|
||||
|
||||
.panel-success .panel-heading, #status-big.success{
|
||||
background: #2fcc66;
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.panel-warning .panel-heading, #status-big.warning{
|
||||
background:#edaa16;
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.panel-danger .panel-heading, #status-big.danger{
|
||||
background:#e74c3c;
|
||||
border-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
#status-big.primary{
|
||||
background: #3A72BD;
|
||||
}
|
||||
|
||||
#wrapper .panel-heading{
|
||||
color:white;
|
||||
}
|
||||
|
||||
#status-big{
|
||||
width: 100%;
|
||||
margin-bottom:15px;
|
||||
float: none;
|
||||
color: white;
|
||||
text-align: left;
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
font-size: 1.3em;
|
||||
font-family: 'Fira Sans', sans-serif;
|
||||
#status-big {
|
||||
margin-bottom: 20px;
|
||||
padding: 15px;
|
||||
border-radius: 5px;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
.timeline {
|
||||
position: relative;
|
||||
padding: 0 0px 10px;
|
||||
margin-top: 4px;
|
||||
position: relative;
|
||||
padding: 0 0px 10px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.timeline .line {
|
||||
position: absolute;
|
||||
width: 2px;
|
||||
display: block;
|
||||
background: #c2c2c2;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
margin-left: 31px;
|
||||
position: absolute;
|
||||
width: 2px;
|
||||
display: block;
|
||||
background: #c2c2c2;
|
||||
top: 0px;
|
||||
bottom: 0px;
|
||||
margin-left: 31px;
|
||||
}
|
||||
|
||||
.timeline .panel {
|
||||
position: relative;
|
||||
margin: 10px 0px 21px 70px;
|
||||
clear: both;
|
||||
.timeline .card {
|
||||
position: relative;
|
||||
margin: 10px 0px 21px 70px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.timeline .panel::before {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 8px;
|
||||
left: -24px;
|
||||
content: '';
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border: inherit;
|
||||
border-width: 12px;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
border-left-color: transparent;
|
||||
.timeline .card::before {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 8px;
|
||||
left: -24px;
|
||||
content: "";
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border: inherit;
|
||||
border-width: 12px;
|
||||
border-top-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
border-left-color: transparent;
|
||||
}
|
||||
|
||||
.timeline .panel .panel-heading.icon * {
|
||||
/*This shouldn't be relative in size...*/
|
||||
font-size: 20px;
|
||||
vertical-align: middle;
|
||||
line-height: 40px;
|
||||
.timeline .card .card-colore.icon * {
|
||||
/*This shouldn't be relative in size...*/
|
||||
font-size: 20px;
|
||||
vertical-align: middle;
|
||||
line-height: 40px;
|
||||
}
|
||||
.timeline .panel .panel-heading.icon {
|
||||
position: absolute;
|
||||
left: -59px;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
float: left;
|
||||
.timeline .card .card-colore.icon {
|
||||
position: absolute;
|
||||
left: -59px;
|
||||
display: block;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 0px;
|
||||
border-radius: 50%;
|
||||
text-align: center;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.timeline .panel-outline {
|
||||
border-color: transparent;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
.timeline .card-outline {
|
||||
border-color: transparent;
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.timeline .panel-outline .panel-body {
|
||||
padding: 10px 0px;
|
||||
.timeline .card-outline .panel-body {
|
||||
padding: 10px 0px;
|
||||
}
|
||||
|
||||
.timeline .panel-outline .panel-heading:not(.icon),
|
||||
.timeline .panel-outline .panel-footer {
|
||||
display: none;
|
||||
.timeline .line::before {
|
||||
top: -4px;
|
||||
}
|
||||
|
||||
.timeline .line::before { top: -4px; }
|
||||
.timeline .line::before{
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: -4px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
background: #c2c2c2;
|
||||
}
|
||||
|
||||
|
||||
.panel-heading h2
|
||||
{
|
||||
display: inline-block;
|
||||
.timeline .line::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
left: -4px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
display: block;
|
||||
border-radius: 50%;
|
||||
background: #c2c2c2;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
#footerwrap {
|
||||
border-radius: 30px 30px 0px 0px;
|
||||
min-height: 60px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
background: gray;
|
||||
border-radius: 30px 30px 0px 0px;
|
||||
min-height: 60px;
|
||||
padding-top: 15px;
|
||||
padding-bottom: 10px;
|
||||
background: gray;
|
||||
}
|
||||
|
||||
#footerwrap a{
|
||||
color: #6daddc;
|
||||
#timeline h3 {
|
||||
margin-top: 40px;
|
||||
padding-left: 70px;
|
||||
}
|
||||
|
||||
#footerwrap a:hover{
|
||||
color: #a4ceea;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#footerwrap p {
|
||||
color: #e5e5e5;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#footerwrap h4 {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#footerwrap i {
|
||||
font-size: 1.7em;
|
||||
color: #ebebeb;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
#footerwrap i:hover {
|
||||
color: #c5c5c5;
|
||||
}
|
||||
|
||||
#footerwrap .col-md-4, #footerwrap .col-md-8 {
|
||||
color: #e5e5e5;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
#footerwrap .col-md-4{
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
@media (max-width: 991px) {
|
||||
body #footerwrap .col-md-8, #footerwrap .col-md-4 {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
#timeline{
|
||||
padding-top: 50px
|
||||
}
|
||||
|
||||
#timeline h3{
|
||||
margin-top: 40px;
|
||||
padding-left: 70px;
|
||||
margin-bottom: 15px
|
||||
}
|
||||
|
||||
#login-form{
|
||||
max-width: 500px;
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.navbar-right.navbar-admin
|
||||
{
|
||||
margin-top: 10px
|
||||
}
|
||||
|
||||
.panel-footer input, .panel-heading input{
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-bottom: 1px solid #777;
|
||||
}
|
||||
|
||||
.panel-footer input.error, .panel-heading input.error{
|
||||
border-bottom: 1px solid red;
|
||||
color: red;
|
||||
}
|
||||
|
||||
input, textarea
|
||||
{
|
||||
outline: none
|
||||
}
|
||||
|
||||
/*Stupid chrome can't have this in one selector...*/
|
||||
body .panel-heading input::-webkit-input-placeholder
|
||||
{
|
||||
color:white;
|
||||
}
|
||||
|
||||
body .panel-heading input::-moz-placeholder
|
||||
{
|
||||
color:white;
|
||||
}
|
||||
|
||||
body .panel-heading input:-ms-input-placeholder
|
||||
{
|
||||
color:white;
|
||||
}
|
||||
|
||||
body .panel-heading input:-moz-placeholder
|
||||
{
|
||||
color:white;
|
||||
}
|
||||
|
||||
body .panel-heading input::placeholder{
|
||||
color:white;
|
||||
}
|
||||
|
||||
|
||||
.panel.panel-primary input#title{
|
||||
width: 50%;
|
||||
#login-form {
|
||||
max-width: 500px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
#time input {
|
||||
max-width: 100%
|
||||
}
|
||||
.panel.panel-primary #time{
|
||||
display: inline-block;
|
||||
float: right;
|
||||
width: 40%;
|
||||
max-width: 40%
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.panel.panel-primary input#title{
|
||||
width: 50%;
|
||||
max-width: 50%
|
||||
.card.border-primary input#title {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
.panel:not(.panel-primary) input#title{
|
||||
width: 100%;
|
||||
.card:not(.border-primary) input#title {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.panel:not(.panel-primary) #time,
|
||||
.panel:not(.panel-primary) #end_time_wrapper{
|
||||
display: none;
|
||||
.card:not(.border-primary) #time,
|
||||
.card:not(.border-primary) #end_time_wrapper {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#time::-moz-placeholder, #title::-moz-placeholder {
|
||||
#time::-moz-placeholder,
|
||||
#title::-moz-placeholder {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.panel-body textarea
|
||||
{
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: none;
|
||||
resize: vertical;
|
||||
min-height: 100px
|
||||
.card-body textarea {
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: none;
|
||||
resize: vertical;
|
||||
min-height: 100px;
|
||||
}
|
||||
|
||||
#type
|
||||
{
|
||||
max-width: 200px;
|
||||
margin-left: 70px
|
||||
#type {
|
||||
margin-left: 70px;
|
||||
}
|
||||
|
||||
#wrapper.admin #timeline{
|
||||
padding-top: 0
|
||||
#wrapper.admin #timeline .service input[type="checkbox"] {
|
||||
margin-right: 4px;
|
||||
margin-top: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#wrapper.admin #timeline .service{
|
||||
padding-left: 15px
|
||||
#status-container.error input {
|
||||
box-shadow: 0px 0 2px 1px rgba(255, 0, 0, 1);
|
||||
}
|
||||
|
||||
|
||||
#wrapper.admin #timeline .service input[type=checkbox]{
|
||||
margin-right: 4px;
|
||||
margin-top: 0;
|
||||
vertical-align: middle;
|
||||
.delete {
|
||||
margin-left: 5px;
|
||||
font-size: 1.2em;
|
||||
color: white;
|
||||
line-height: 25px;
|
||||
}
|
||||
|
||||
body.admin table td{
|
||||
word-break: break-all;
|
||||
.delete:hover,
|
||||
.delete:focus {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
section{
|
||||
padding-top: 20px;
|
||||
.new-service {
|
||||
width: 40%;
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
section h3{
|
||||
margin: 0;
|
||||
margin-bottom: 20px;
|
||||
line-height: 34px;
|
||||
.delete-service {
|
||||
color: red;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
i.success{
|
||||
color:#2fcc66;
|
||||
.service label {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
i.danger{
|
||||
color:#e74c3c;
|
||||
.install {
|
||||
padding-bottom: 25px;
|
||||
}
|
||||
|
||||
.col-md-2 strong{
|
||||
line-height: 34px
|
||||
.install .btn {
|
||||
margin-top: 30px;
|
||||
}
|
||||
|
||||
.table-responsive{
|
||||
width:100%;
|
||||
#footerwrap .dropdown-menu {
|
||||
background: gray;
|
||||
}
|
||||
|
||||
.col-md-6{
|
||||
line-height: 34px
|
||||
#footerwrap .dropdown-menu a {
|
||||
color: white;
|
||||
width: 100%;
|
||||
padding: 2px 5px;
|
||||
display: block;
|
||||
transition: 125ms ease-in-out background-color;
|
||||
background-color: gray;
|
||||
}
|
||||
|
||||
.margin-top{
|
||||
margin-top: 10px
|
||||
#footerwrap .dropdown-menu a:hover {
|
||||
background-color: #2f8ad8;
|
||||
}
|
||||
|
||||
#status-container.error input
|
||||
{
|
||||
box-shadow: 0px 0 2px 1px rgba(255,0,0,1)
|
||||
#footerwrap .input-group.dropup.mb-3 {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.delete
|
||||
{
|
||||
margin-left: 5px;
|
||||
font-size: 1.2em;
|
||||
color: white;
|
||||
line-height: 25px
|
||||
#footerwrap .input-group.dropup.mb-3 img {
|
||||
max-height: 20px;
|
||||
max-width: 25px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.delete:hover, .delete:focus
|
||||
{
|
||||
color: #EEE
|
||||
.col-md-4.text-left,
|
||||
.col-md-4.text-right {
|
||||
line-height: 2.5;
|
||||
}
|
||||
|
||||
.new-service{
|
||||
width: 40%;
|
||||
min-width: 250px;
|
||||
body .h1,
|
||||
body .h2,
|
||||
body .h3,
|
||||
body h1,
|
||||
body h2,
|
||||
body h3 {
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
.delete-service
|
||||
{
|
||||
color: red;
|
||||
font-size: 1em
|
||||
.row.user .input-group {
|
||||
width: 100%;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.service label
|
||||
{
|
||||
margin-bottom: 0
|
||||
.row.user .form-name {
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.install{
|
||||
padding-bottom: 25px
|
||||
label.form-name {
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.install .btn
|
||||
{
|
||||
margin-top: 30px
|
||||
}
|
||||
|
||||
.text-left{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.text-right{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.text-center{
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#footerwrap .dropdown-menu{
|
||||
background: gray;
|
||||
}
|
||||
|
||||
#footerwrap .dropdown-menu a{
|
||||
color:white;
|
||||
width: 100%;
|
||||
padding: 2px 5px;
|
||||
display: block;
|
||||
transition: 125ms ease-in-out background-color;
|
||||
background-color: gray;
|
||||
}
|
||||
|
||||
#footerwrap .dropdown-menu a:hover{
|
||||
background-color: #2f8ad8;
|
||||
}
|
||||
|
||||
#footerwrap .btn-group.dropup img{
|
||||
max-height: 20px;
|
||||
max-width: 25px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.col-md-4.text-left, .col-md-4.text-right{
|
||||
line-height: 2.5;
|
||||
}
|
||||
|
||||
.dropup hr.divider
|
||||
{
|
||||
margin: 2px;
|
||||
border: 1px;
|
||||
}
|
||||
|
||||
body .h1,body .h2,body .h3,body h1,body h2,body h3 {
|
||||
margin-top: 18px;
|
||||
}
|
||||
|
||||
.row.user .input-group
|
||||
{
|
||||
width: 100%;
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.row.user .form-name{
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
label.form-name
|
||||
{
|
||||
line-height: 20px
|
||||
}
|
||||
.panel .panel-footer .label{
|
||||
display: inline-block;
|
||||
.panel .panel-footer .label {
|
||||
display: inline-block;
|
||||
}
|
||||
/* The switch - the box around the slider */
|
||||
.switch {
|
||||
@ -652,8 +320,8 @@ label.form-name
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #ccc;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
-webkit-transition: 0.4s;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
.slider:before {
|
||||
@ -664,16 +332,16 @@ label.form-name
|
||||
left: 4px;
|
||||
bottom: 4px;
|
||||
background-color: white;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
-webkit-transition: 0.4s;
|
||||
transition: 0.4s;
|
||||
}
|
||||
|
||||
input:checked + .slider {
|
||||
background-color: #2196F3;
|
||||
background-color: #2196f3;
|
||||
}
|
||||
|
||||
input:focus + .slider {
|
||||
box-shadow: 0 0 1px #2196F3;
|
||||
box-shadow: 0 0 1px #2196f3;
|
||||
}
|
||||
|
||||
input:checked + .slider:before {
|
||||
|
4997
css/vendor/bootstrap/bootstrap-grid.css
vendored
Normal file
4997
css/vendor/bootstrap/bootstrap-grid.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap-grid.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-grid.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap-grid.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap-grid.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap-grid.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-grid.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4996
css/vendor/bootstrap/bootstrap-grid.rtl.css
vendored
Normal file
4996
css/vendor/bootstrap/bootstrap-grid.rtl.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap-grid.rtl.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-grid.rtl.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap-grid.rtl.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap-grid.rtl.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap-grid.rtl.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-grid.rtl.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
428
css/vendor/bootstrap/bootstrap-reboot.css
vendored
Normal file
428
css/vendor/bootstrap/bootstrap-reboot.css
vendored
Normal file
@ -0,0 +1,428 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v5.0.0-beta2 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
:root {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
background-color: #fff;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
[tabindex="-1"]:focus:not(:focus-visible) {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
color: inherit;
|
||||
background-color: currentColor;
|
||||
border: 0;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
hr:not([size]) {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
h6, h5, h4, h3, h2, h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: calc(1.375rem + 1.5vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: calc(1.325rem + 0.9vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: calc(1.3rem + 0.6vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-bs-original-title] {
|
||||
text-decoration: underline;
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-left: 2rem;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding: 0.2em;
|
||||
background-color: #fcf8e3;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 0.75em;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0d6efd;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
color: #0a58ca;
|
||||
}
|
||||
|
||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em;
|
||||
direction: ltr /* rtl:ignore */;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
pre code {
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 0.875em;
|
||||
color: #d63384;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a > code {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
kbd {
|
||||
padding: 0.2rem 0.4rem;
|
||||
font-size: 0.875em;
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
kbd kbd {
|
||||
padding: 0;
|
||||
font-size: 1em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table {
|
||||
caption-side: bottom;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
color: #6c757d;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
thead,
|
||||
tbody,
|
||||
tfoot,
|
||||
tr,
|
||||
td,
|
||||
th {
|
||||
border-color: inherit;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role=button] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
[list]::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button,
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
button:not(:disabled),
|
||||
[type=button]:not(:disabled),
|
||||
[type=reset]:not(:disabled),
|
||||
[type=submit]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
float: left;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
line-height: inherit;
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
legend {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
legend + * {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit-fields-wrapper,
|
||||
::-webkit-datetime-edit-text,
|
||||
::-webkit-datetime-edit-minute,
|
||||
::-webkit-datetime-edit-hour-field,
|
||||
::-webkit-datetime-edit-day-field,
|
||||
::-webkit-datetime-edit-month-field,
|
||||
::-webkit-datetime-edit-year-field {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-inner-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
/* rtl:raw:
|
||||
[type="tel"],
|
||||
[type="url"],
|
||||
[type="email"],
|
||||
[type="number"] {
|
||||
direction: ltr;
|
||||
}
|
||||
*/
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::file-selector-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=bootstrap-reboot.css.map */
|
1
css/vendor/bootstrap/bootstrap-reboot.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-reboot.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
8
css/vendor/bootstrap/bootstrap-reboot.min.css
vendored
Normal file
8
css/vendor/bootstrap/bootstrap-reboot.min.css
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v5.0.0-beta2 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.min.css.map */
|
1
css/vendor/bootstrap/bootstrap-reboot.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-reboot.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
425
css/vendor/bootstrap/bootstrap-reboot.rtl.css
vendored
Normal file
425
css/vendor/bootstrap/bootstrap-reboot.rtl.css
vendored
Normal file
@ -0,0 +1,425 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v5.0.0-beta2 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
:root {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
||||
font-size: 1rem;
|
||||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: #212529;
|
||||
background-color: #fff;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
||||
}
|
||||
|
||||
[tabindex="-1"]:focus:not(:focus-visible) {
|
||||
outline: 0 !important;
|
||||
}
|
||||
|
||||
hr {
|
||||
margin: 1rem 0;
|
||||
color: inherit;
|
||||
background-color: currentColor;
|
||||
border: 0;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
hr:not([size]) {
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
h6, h5, h4, h3, h2, h1 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-weight: 500;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: calc(1.375rem + 1.5vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h1 {
|
||||
font-size: 2.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: calc(1.325rem + 0.9vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h2 {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: calc(1.3rem + 0.6vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h3 {
|
||||
font-size: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
h4 {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
abbr[title],
|
||||
abbr[data-bs-original-title] {
|
||||
text-decoration: underline;
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
address {
|
||||
margin-bottom: 1rem;
|
||||
font-style: normal;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
padding-right: 2rem;
|
||||
}
|
||||
|
||||
ol,
|
||||
ul,
|
||||
dl {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
ol ol,
|
||||
ul ul,
|
||||
ol ul,
|
||||
ul ol {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
dt {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-bottom: 0.5rem;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: 0.875em;
|
||||
}
|
||||
|
||||
mark {
|
||||
padding: 0.2em;
|
||||
background-color: #fcf8e3;
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 0.75em;
|
||||
line-height: 0;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #0d6efd;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
color: #0a58ca;
|
||||
}
|
||||
|
||||
a:not([href]):not([class]), a:not([href]):not([class]):hover {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
pre,
|
||||
code,
|
||||
kbd,
|
||||
samp {
|
||||
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
||||
font-size: 1em;
|
||||
direction: ltr ;
|
||||
unicode-bidi: bidi-override;
|
||||
}
|
||||
|
||||
pre {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
overflow: auto;
|
||||
font-size: 0.875em;
|
||||
}
|
||||
pre code {
|
||||
font-size: inherit;
|
||||
color: inherit;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
code {
|
||||
font-size: 0.875em;
|
||||
color: #d63384;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
a > code {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
kbd {
|
||||
padding: 0.2rem 0.4rem;
|
||||
font-size: 0.875em;
|
||||
color: #fff;
|
||||
background-color: #212529;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
kbd kbd {
|
||||
padding: 0;
|
||||
font-size: 1em;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 0 0 1rem;
|
||||
}
|
||||
|
||||
img,
|
||||
svg {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
table {
|
||||
caption-side: bottom;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
caption {
|
||||
padding-top: 0.5rem;
|
||||
padding-bottom: 0.5rem;
|
||||
color: #6c757d;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: inherit;
|
||||
text-align: -webkit-match-parent;
|
||||
}
|
||||
|
||||
thead,
|
||||
tbody,
|
||||
tfoot,
|
||||
tr,
|
||||
td,
|
||||
th {
|
||||
border-color: inherit;
|
||||
border-style: solid;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
button {
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
button:focus:not(:focus-visible) {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
input,
|
||||
button,
|
||||
select,
|
||||
optgroup,
|
||||
textarea {
|
||||
margin: 0;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
}
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
[role=button] {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
select {
|
||||
word-wrap: normal;
|
||||
}
|
||||
|
||||
[list]::-webkit-calendar-picker-indicator {
|
||||
display: none;
|
||||
}
|
||||
|
||||
button,
|
||||
[type=button],
|
||||
[type=reset],
|
||||
[type=submit] {
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
button:not(:disabled),
|
||||
[type=button]:not(:disabled),
|
||||
[type=reset]:not(:disabled),
|
||||
[type=submit]:not(:disabled) {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border-style: none;
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: vertical;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
min-width: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
}
|
||||
|
||||
legend {
|
||||
float: right;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin-bottom: 0.5rem;
|
||||
font-size: calc(1.275rem + 0.3vw);
|
||||
line-height: inherit;
|
||||
}
|
||||
@media (min-width: 1200px) {
|
||||
legend {
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
legend + * {
|
||||
clear: right;
|
||||
}
|
||||
|
||||
::-webkit-datetime-edit-fields-wrapper,
|
||||
::-webkit-datetime-edit-text,
|
||||
::-webkit-datetime-edit-minute,
|
||||
::-webkit-datetime-edit-hour-field,
|
||||
::-webkit-datetime-edit-day-field,
|
||||
::-webkit-datetime-edit-month-field,
|
||||
::-webkit-datetime-edit-year-field {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::-webkit-inner-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
[type=search] {
|
||||
outline-offset: -2px;
|
||||
-webkit-appearance: textfield;
|
||||
}
|
||||
|
||||
[type="tel"],
|
||||
[type="url"],
|
||||
[type="email"],
|
||||
[type="number"] {
|
||||
direction: ltr;
|
||||
}
|
||||
::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
::-webkit-color-swatch-wrapper {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
::file-selector-button {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
::-webkit-file-upload-button {
|
||||
font: inherit;
|
||||
-webkit-appearance: button;
|
||||
}
|
||||
|
||||
output {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
iframe {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
summary {
|
||||
display: list-item;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
progress {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-reboot.rtl.css.map */
|
1
css/vendor/bootstrap/bootstrap-reboot.rtl.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-reboot.rtl.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
8
css/vendor/bootstrap/bootstrap-reboot.rtl.min.css
vendored
Normal file
8
css/vendor/bootstrap/bootstrap-reboot.rtl.min.css
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
/*!
|
||||
* Bootstrap Reboot v5.0.0-beta2 (https://getbootstrap.com/)
|
||||
* Copyright 2011-2021 The Bootstrap Authors
|
||||
* Copyright 2011-2021 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||||
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
|
||||
*/*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){h1{font-size:2.5rem}}h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){h2{font-size:2rem}}h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){h3{font-size:1.75rem}}h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){h4{font-size:1.5rem}}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-right:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-right:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:.875em}mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:right}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:right;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:right}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}[type=email],[type=number],[type=tel],[type=url]{direction:ltr}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}
|
||||
/*# sourceMappingURL=bootstrap-reboot.rtl.min.css.map */
|
1
css/vendor/bootstrap/bootstrap-reboot.rtl.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-reboot.rtl.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4756
css/vendor/bootstrap/bootstrap-utilities.css
vendored
Normal file
4756
css/vendor/bootstrap/bootstrap-utilities.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap-utilities.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-utilities.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap-utilities.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap-utilities.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap-utilities.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-utilities.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4747
css/vendor/bootstrap/bootstrap-utilities.rtl.css
vendored
Normal file
4747
css/vendor/bootstrap/bootstrap-utilities.rtl.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap-utilities.rtl.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-utilities.rtl.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap-utilities.rtl.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap-utilities.rtl.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap-utilities.rtl.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap-utilities.rtl.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
10724
css/vendor/bootstrap/bootstrap.css
vendored
Normal file
10724
css/vendor/bootstrap/bootstrap.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
10700
css/vendor/bootstrap/bootstrap.rtl.css
vendored
Normal file
10700
css/vendor/bootstrap/bootstrap.rtl.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
css/vendor/bootstrap/bootstrap.rtl.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap.rtl.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
css/vendor/bootstrap/bootstrap.rtl.min.css
vendored
Normal file
7
css/vendor/bootstrap/bootstrap.rtl.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
1
css/vendor/bootstrap/bootstrap.rtl.min.css.map
vendored
Normal file
1
css/vendor/bootstrap/bootstrap.rtl.min.css.map
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -7,14 +7,17 @@
|
||||
}});
|
||||
|
||||
|
||||
var classes = ["panel panel-danger", "panel panel-warning", "panel panel-primary", "panel panel-success"];
|
||||
var bgcolore = ["bg-danger", "bg-warning", "bg-primary", "bg-success"];
|
||||
var bordercolore = ["border-danger", "border-warning", "border-primary", "border-success"];
|
||||
var icons = ["fa fa-times", "fa fa-exclamation", "fa fa-info", "fa fa-check"];
|
||||
|
||||
$("body").on("change","#new-incident select", function(){
|
||||
var val = parseInt($(this).val()); //this should make exploitation harder
|
||||
|
||||
$("#new-incident .panel.new .panel-heading i").get(0).className = icons[val];
|
||||
$("#new-incident .panel.new").get(0).className = classes[val] + " new";
|
||||
$("#new-incident .card.new .card-colore i").get(0).className = icons[val];
|
||||
$("#new-incident .card.new .icon").get(0).className = "card-colore icon " + bgcolore[val];
|
||||
$("#new-incident .card.new").get(0).className = "card " + bordercolore[val] + " new";
|
||||
$("#new-incident .card.new .card-header").get(0).className = "card-colore card-header " + bgcolore[val] + " " + bordercolore[val] ;
|
||||
$("#time_input").val("");
|
||||
$("#end_time").val("");
|
||||
});
|
||||
|
6
js/vendor/bootstrap.min.js
vendored
6
js/vendor/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
6650
js/vendor/bootstrap/bootstrap.bundle.js
vendored
Normal file
6650
js/vendor/bootstrap/bootstrap.bundle.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
js/vendor/bootstrap/bootstrap.bundle.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.bundle.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
js/vendor/bootstrap/bootstrap.bundle.min.js
vendored
Normal file
7
js/vendor/bootstrap/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
js/vendor/bootstrap/bootstrap.bundle.min.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.bundle.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4904
js/vendor/bootstrap/bootstrap.esm.js
vendored
Normal file
4904
js/vendor/bootstrap/bootstrap.esm.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
js/vendor/bootstrap/bootstrap.esm.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.esm.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
js/vendor/bootstrap/bootstrap.esm.min.js
vendored
Normal file
7
js/vendor/bootstrap/bootstrap.esm.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
js/vendor/bootstrap/bootstrap.esm.min.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.esm.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
4951
js/vendor/bootstrap/bootstrap.js
vendored
Normal file
4951
js/vendor/bootstrap/bootstrap.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
1
js/vendor/bootstrap/bootstrap.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
7
js/vendor/bootstrap/bootstrap.min.js
vendored
Normal file
7
js/vendor/bootstrap/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
js/vendor/bootstrap/bootstrap.min.js.map
vendored
Normal file
1
js/vendor/bootstrap/bootstrap.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
2
js/vendor/jquery-3.5.1.min.js
vendored
2
js/vendor/jquery-3.5.1.min.js
vendored
File diff suppressed because one or more lines are too long
311
js/vendor/jquery.growl.js
vendored
311
js/vendor/jquery.growl.js
vendored
@ -1,311 +0,0 @@
|
||||
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
||||
|
||||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
||||
|
||||
// Generated by CoffeeScript 2.1.0
|
||||
(function () {
|
||||
/*
|
||||
jQuery Growl
|
||||
Copyright 2015 Kevin Sylvestre
|
||||
1.3.5
|
||||
*/
|
||||
"use strict";
|
||||
|
||||
var $, Animation, Growl;
|
||||
|
||||
$ = jQuery;
|
||||
|
||||
Animation = function () {
|
||||
var Animation = function () {
|
||||
function Animation() {
|
||||
_classCallCheck(this, Animation);
|
||||
}
|
||||
|
||||
_createClass(Animation, null, [{
|
||||
key: "transition",
|
||||
value: function transition($el) {
|
||||
var el, ref, result, type;
|
||||
el = $el[0];
|
||||
ref = this.transitions;
|
||||
for (type in ref) {
|
||||
result = ref[type];
|
||||
if (el.style[type] != null) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
}]);
|
||||
|
||||
return Animation;
|
||||
}();
|
||||
|
||||
;
|
||||
|
||||
Animation.transitions = {
|
||||
"webkitTransition": "webkitTransitionEnd",
|
||||
"mozTransition": "mozTransitionEnd",
|
||||
"oTransition": "oTransitionEnd",
|
||||
"transition": "transitionend"
|
||||
};
|
||||
|
||||
return Animation;
|
||||
}();
|
||||
|
||||
Growl = function () {
|
||||
var Growl = function () {
|
||||
_createClass(Growl, null, [{
|
||||
key: "growl",
|
||||
value: function growl() {
|
||||
var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
return new Growl(settings);
|
||||
}
|
||||
}]);
|
||||
|
||||
function Growl() {
|
||||
var settings = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
_classCallCheck(this, Growl);
|
||||
|
||||
this.render = this.render.bind(this);
|
||||
this.bind = this.bind.bind(this);
|
||||
this.unbind = this.unbind.bind(this);
|
||||
this.mouseEnter = this.mouseEnter.bind(this);
|
||||
this.mouseLeave = this.mouseLeave.bind(this);
|
||||
this.click = this.click.bind(this);
|
||||
this.close = this.close.bind(this);
|
||||
this.cycle = this.cycle.bind(this);
|
||||
this.waitAndDismiss = this.waitAndDismiss.bind(this);
|
||||
this.present = this.present.bind(this);
|
||||
this.dismiss = this.dismiss.bind(this);
|
||||
this.remove = this.remove.bind(this);
|
||||
this.animate = this.animate.bind(this);
|
||||
this.$growls = this.$growls.bind(this);
|
||||
this.$growl = this.$growl.bind(this);
|
||||
this.html = this.html.bind(this);
|
||||
this.content = this.content.bind(this);
|
||||
this.container = this.container.bind(this);
|
||||
this.settings = $.extend({}, Growl.settings, settings);
|
||||
this.initialize(this.settings.location);
|
||||
this.render();
|
||||
}
|
||||
|
||||
_createClass(Growl, [{
|
||||
key: "initialize",
|
||||
value: function initialize(location) {
|
||||
var id;
|
||||
id = 'growls-' + location;
|
||||
return $('body:not(:has(#' + id + '))').append('<div id="' + id + '" />');
|
||||
}
|
||||
}, {
|
||||
key: "render",
|
||||
value: function render() {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
this.$growls(this.settings.location).append($growl);
|
||||
if (this.settings.fixed) {
|
||||
this.present();
|
||||
} else {
|
||||
this.cycle();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "bind",
|
||||
value: function bind() {
|
||||
var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl();
|
||||
|
||||
$growl.on("click", this.click);
|
||||
if (this.settings.delayOnHover) {
|
||||
$growl.on("mouseenter", this.mouseEnter);
|
||||
$growl.on("mouseleave", this.mouseLeave);
|
||||
}
|
||||
return $growl.on("contextmenu", this.close).find("." + this.settings.namespace + "-close").on("click", this.close);
|
||||
}
|
||||
}, {
|
||||
key: "unbind",
|
||||
value: function unbind() {
|
||||
var $growl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.$growl();
|
||||
|
||||
$growl.off("click", this.click);
|
||||
if (this.settings.delayOnHover) {
|
||||
$growl.off("mouseenter", this.mouseEnter);
|
||||
$growl.off("mouseleave", this.mouseLeave);
|
||||
}
|
||||
return $growl.off("contextmenu", this.close).find("." + this.settings.namespace + "-close").off("click", this.close);
|
||||
}
|
||||
}, {
|
||||
key: "mouseEnter",
|
||||
value: function mouseEnter(event) {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
return $growl.stop(true, true);
|
||||
}
|
||||
}, {
|
||||
key: "mouseLeave",
|
||||
value: function mouseLeave(event) {
|
||||
return this.waitAndDismiss();
|
||||
}
|
||||
}, {
|
||||
key: "click",
|
||||
value: function click(event) {
|
||||
if (this.settings.url != null) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
return window.open(this.settings.url);
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "close",
|
||||
value: function close(event) {
|
||||
var $growl;
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
$growl = this.$growl();
|
||||
return $growl.stop().queue(this.dismiss).queue(this.remove);
|
||||
}
|
||||
}, {
|
||||
key: "cycle",
|
||||
value: function cycle() {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
return $growl.queue(this.present).queue(this.waitAndDismiss());
|
||||
}
|
||||
}, {
|
||||
key: "waitAndDismiss",
|
||||
value: function waitAndDismiss() {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
return $growl.delay(this.settings.duration).queue(this.dismiss).queue(this.remove);
|
||||
}
|
||||
}, {
|
||||
key: "present",
|
||||
value: function present(callback) {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
this.bind($growl);
|
||||
return this.animate($growl, this.settings.namespace + "-incoming", 'out', callback);
|
||||
}
|
||||
}, {
|
||||
key: "dismiss",
|
||||
value: function dismiss(callback) {
|
||||
var $growl;
|
||||
$growl = this.$growl();
|
||||
this.unbind($growl);
|
||||
return this.animate($growl, this.settings.namespace + "-outgoing", 'in', callback);
|
||||
}
|
||||
}, {
|
||||
key: "remove",
|
||||
value: function remove(callback) {
|
||||
this.$growl().remove();
|
||||
return typeof callback === "function" ? callback() : void 0;
|
||||
}
|
||||
}, {
|
||||
key: "animate",
|
||||
value: function animate($element, name) {
|
||||
var direction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'in';
|
||||
var callback = arguments[3];
|
||||
|
||||
var transition;
|
||||
transition = Animation.transition($element);
|
||||
$element[direction === 'in' ? 'removeClass' : 'addClass'](name);
|
||||
$element.offset().position;
|
||||
$element[direction === 'in' ? 'addClass' : 'removeClass'](name);
|
||||
if (callback == null) {
|
||||
return;
|
||||
}
|
||||
if (transition != null) {
|
||||
$element.one(transition, callback);
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
key: "$growls",
|
||||
value: function $growls(location) {
|
||||
var base;
|
||||
if (this.$_growls == null) {
|
||||
this.$_growls = [];
|
||||
}
|
||||
return (base = this.$_growls)[location] != null ? base[location] : base[location] = $('#growls-' + location);
|
||||
}
|
||||
}, {
|
||||
key: "$growl",
|
||||
value: function $growl() {
|
||||
return this.$_growl != null ? this.$_growl : this.$_growl = $(this.html());
|
||||
}
|
||||
}, {
|
||||
key: "html",
|
||||
value: function html() {
|
||||
return this.container(this.content());
|
||||
}
|
||||
}, {
|
||||
key: "content",
|
||||
value: function content() {
|
||||
return "<div class='" + this.settings.namespace + "-close'>" + this.settings.close + "</div>\n<div class='" + this.settings.namespace + "-title'>" + this.settings.title + "</div>\n<div class='" + this.settings.namespace + "-message'>" + this.settings.message + "</div>";
|
||||
}
|
||||
}, {
|
||||
key: "container",
|
||||
value: function container(content) {
|
||||
return "<div class='" + this.settings.namespace + " " + this.settings.namespace + "-" + this.settings.style + " " + this.settings.namespace + "-" + this.settings.size + "'>\n " + content + "\n</div>";
|
||||
}
|
||||
}]);
|
||||
|
||||
return Growl;
|
||||
}();
|
||||
|
||||
;
|
||||
|
||||
Growl.settings = {
|
||||
namespace: 'growl',
|
||||
duration: 3200,
|
||||
close: "×",
|
||||
location: "default",
|
||||
style: "default",
|
||||
size: "medium",
|
||||
delayOnHover: true
|
||||
};
|
||||
|
||||
return Growl;
|
||||
}();
|
||||
|
||||
this.Growl = Growl;
|
||||
|
||||
$.growl = function () {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
return Growl.growl(options);
|
||||
};
|
||||
|
||||
$.growl.error = function () {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
var settings;
|
||||
settings = {
|
||||
title: "Error!",
|
||||
style: "error"
|
||||
};
|
||||
return $.growl($.extend(settings, options));
|
||||
};
|
||||
|
||||
$.growl.notice = function () {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
var settings;
|
||||
settings = {
|
||||
title: "Notice!",
|
||||
style: "notice"
|
||||
};
|
||||
return $.growl($.extend(settings, options));
|
||||
};
|
||||
|
||||
$.growl.warning = function () {
|
||||
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
|
||||
var settings;
|
||||
settings = {
|
||||
title: "Warning!",
|
||||
style: "warning"
|
||||
};
|
||||
return $.growl($.extend(settings, options));
|
||||
};
|
||||
}).call(this);
|
232
js/vendor/jquery.timeago.js
vendored
232
js/vendor/jquery.timeago.js
vendored
@ -1,232 +0,0 @@
|
||||
/**
|
||||
* Timeago is a jQuery plugin that makes it easy to support automatically
|
||||
* updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago").
|
||||
*
|
||||
* @name timeago
|
||||
* @version 1.6.7
|
||||
* @requires jQuery >=1.5.0 <4.0
|
||||
* @author Ryan McGeary
|
||||
* @license MIT License - http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* For usage and examples, visit:
|
||||
* http://timeago.yarp.com/
|
||||
*
|
||||
* Copyright (c) 2008-2019, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org)
|
||||
*/
|
||||
|
||||
(function (factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && typeof module.exports === 'object') {
|
||||
factory(require('jquery'));
|
||||
} else {
|
||||
// Browser globals
|
||||
factory(jQuery);
|
||||
}
|
||||
}(function ($) {
|
||||
$.timeago = function(timestamp) {
|
||||
if (timestamp instanceof Date) {
|
||||
return inWords(timestamp);
|
||||
} else if (typeof timestamp === "string") {
|
||||
return inWords($.timeago.parse(timestamp));
|
||||
} else if (typeof timestamp === "number") {
|
||||
return inWords(new Date(timestamp));
|
||||
} else {
|
||||
return inWords($.timeago.datetime(timestamp));
|
||||
}
|
||||
};
|
||||
var $t = $.timeago;
|
||||
|
||||
$.extend($.timeago, {
|
||||
settings: {
|
||||
refreshMillis: 60000,
|
||||
allowPast: true,
|
||||
allowFuture: false,
|
||||
localeTitle: false,
|
||||
cutoff: 0,
|
||||
autoDispose: true,
|
||||
strings: {
|
||||
prefixAgo: null,
|
||||
prefixFromNow: null,
|
||||
suffixAgo: "ago",
|
||||
suffixFromNow: "from now",
|
||||
inPast: "any moment now",
|
||||
seconds: "less than a minute",
|
||||
minute: "about a minute",
|
||||
minutes: "%d minutes",
|
||||
hour: "about an hour",
|
||||
hours: "about %d hours",
|
||||
day: "a day",
|
||||
days: "%d days",
|
||||
month: "about a month",
|
||||
months: "%d months",
|
||||
year: "about a year",
|
||||
years: "%d years",
|
||||
wordSeparator: " ",
|
||||
numbers: []
|
||||
}
|
||||
},
|
||||
|
||||
inWords: function(distanceMillis) {
|
||||
if (!this.settings.allowPast && ! this.settings.allowFuture) {
|
||||
throw 'timeago allowPast and allowFuture settings can not both be set to false.';
|
||||
}
|
||||
|
||||
var $l = this.settings.strings;
|
||||
var prefix = $l.prefixAgo;
|
||||
var suffix = $l.suffixAgo;
|
||||
if (this.settings.allowFuture) {
|
||||
if (distanceMillis < 0) {
|
||||
prefix = $l.prefixFromNow;
|
||||
suffix = $l.suffixFromNow;
|
||||
}
|
||||
}
|
||||
|
||||
if (!this.settings.allowPast && distanceMillis >= 0) {
|
||||
return this.settings.strings.inPast;
|
||||
}
|
||||
|
||||
var seconds = Math.abs(distanceMillis) / 1000;
|
||||
var minutes = seconds / 60;
|
||||
var hours = minutes / 60;
|
||||
var days = hours / 24;
|
||||
var years = days / 365;
|
||||
|
||||
function substitute(stringOrFunction, number) {
|
||||
var string = $.isFunction(stringOrFunction) ? stringOrFunction(number, distanceMillis) : stringOrFunction;
|
||||
var value = ($l.numbers && $l.numbers[number]) || number;
|
||||
return string.replace(/%d/i, value);
|
||||
}
|
||||
|
||||
var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
|
||||
seconds < 90 && substitute($l.minute, 1) ||
|
||||
minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
|
||||
minutes < 90 && substitute($l.hour, 1) ||
|
||||
hours < 24 && substitute($l.hours, Math.round(hours)) ||
|
||||
hours < 42 && substitute($l.day, 1) ||
|
||||
days < 30 && substitute($l.days, Math.round(days)) ||
|
||||
days < 45 && substitute($l.month, 1) ||
|
||||
days < 365 && substitute($l.months, Math.round(days / 30)) ||
|
||||
years < 1.5 && substitute($l.year, 1) ||
|
||||
substitute($l.years, Math.round(years));
|
||||
|
||||
var separator = $l.wordSeparator || "";
|
||||
if ($l.wordSeparator === undefined) { separator = " "; }
|
||||
return $.trim([prefix, words, suffix].join(separator));
|
||||
},
|
||||
|
||||
parse: function(iso8601) {
|
||||
var s = $.trim(iso8601);
|
||||
s = s.replace(/\.\d+/,""); // remove milliseconds
|
||||
s = s.replace(/-/,"/").replace(/-/,"/");
|
||||
s = s.replace(/T/," ").replace(/Z/," UTC");
|
||||
s = s.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400
|
||||
s = s.replace(/([\+\-]\d\d)$/," $100"); // +09 -> +0900
|
||||
return new Date(s);
|
||||
},
|
||||
datetime: function(elem) {
|
||||
var iso8601 = $t.isTime(elem) ? $(elem).attr("datetime") : $(elem).attr("title");
|
||||
return $t.parse(iso8601);
|
||||
},
|
||||
isTime: function(elem) {
|
||||
// jQuery's `is()` doesn't play well with HTML5 in IE
|
||||
return $(elem).get(0).tagName.toLowerCase() === "time"; // $(elem).is("time");
|
||||
}
|
||||
});
|
||||
|
||||
// functions that can be called via $(el).timeago('action')
|
||||
// init is default when no action is given
|
||||
// functions are called with context of a single element
|
||||
var functions = {
|
||||
init: function() {
|
||||
functions.dispose.call(this);
|
||||
var refresh_el = $.proxy(refresh, this);
|
||||
refresh_el();
|
||||
var $s = $t.settings;
|
||||
if ($s.refreshMillis > 0) {
|
||||
this._timeagoInterval = setInterval(refresh_el, $s.refreshMillis);
|
||||
}
|
||||
},
|
||||
update: function(timestamp) {
|
||||
var date = (timestamp instanceof Date) ? timestamp : $t.parse(timestamp);
|
||||
$(this).data('timeago', { datetime: date });
|
||||
if ($t.settings.localeTitle) {
|
||||
$(this).attr("title", date.toLocaleString());
|
||||
}
|
||||
refresh.apply(this);
|
||||
},
|
||||
updateFromDOM: function() {
|
||||
$(this).data('timeago', { datetime: $t.parse( $t.isTime(this) ? $(this).attr("datetime") : $(this).attr("title") ) });
|
||||
refresh.apply(this);
|
||||
},
|
||||
dispose: function () {
|
||||
if (this._timeagoInterval) {
|
||||
window.clearInterval(this._timeagoInterval);
|
||||
this._timeagoInterval = null;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.fn.timeago = function(action, options) {
|
||||
var fn = action ? functions[action] : functions.init;
|
||||
if (!fn) {
|
||||
throw new Error("Unknown function name '"+ action +"' for timeago");
|
||||
}
|
||||
// each over objects here and call the requested function
|
||||
this.each(function() {
|
||||
fn.call(this, options);
|
||||
});
|
||||
return this;
|
||||
};
|
||||
|
||||
function refresh() {
|
||||
var $s = $t.settings;
|
||||
|
||||
//check if it's still visible
|
||||
if ($s.autoDispose && !$.contains(document.documentElement,this)) {
|
||||
//stop if it has been removed
|
||||
$(this).timeago("dispose");
|
||||
return this;
|
||||
}
|
||||
|
||||
var data = prepareData(this);
|
||||
|
||||
if (!isNaN(data.datetime)) {
|
||||
if ( $s.cutoff === 0 || Math.abs(distance(data.datetime)) < $s.cutoff) {
|
||||
$(this).text(inWords(data.datetime));
|
||||
} else {
|
||||
if ($(this).attr('title').length > 0) {
|
||||
$(this).text($(this).attr('title'));
|
||||
}
|
||||
}
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
function prepareData(element) {
|
||||
element = $(element);
|
||||
if (!element.data("timeago")) {
|
||||
element.data("timeago", { datetime: $t.datetime(element) });
|
||||
var text = $.trim(element.text());
|
||||
if ($t.settings.localeTitle) {
|
||||
element.attr("title", element.data('timeago').datetime.toLocaleString());
|
||||
} else if (text.length > 0 && !($t.isTime(element) && element.attr("title"))) {
|
||||
element.attr("title", text);
|
||||
}
|
||||
}
|
||||
return element.data("timeago");
|
||||
}
|
||||
|
||||
function inWords(date) {
|
||||
return $t.inWords(distance(date));
|
||||
}
|
||||
|
||||
function distance(date) {
|
||||
return (new Date().getTime() - date.getTime());
|
||||
}
|
||||
|
||||
// fix for IE6 suckage
|
||||
document.createElement("abbr");
|
||||
document.createElement("time");
|
||||
}));
|
174
template.php
174
template.php
@ -51,25 +51,17 @@ class Template{
|
||||
}
|
||||
$strSubsMenu .= '</ul>';
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<?php
|
||||
if(!$admin){
|
||||
$headpath = $_SERVER['DOCUMENT_ROOT'] . "/head.txt";
|
||||
$headfile = fopen("$headpath", "r") or die("Unable to open head.txt!");
|
||||
$head_additionalcode = fread($headfile,filesize($headpath));
|
||||
fclose($headfile);
|
||||
echo $head_additionalcode;
|
||||
}
|
||||
?>
|
||||
<meta charset="utf-8">
|
||||
<title><?php echo $page_name." - ".NAME ?></title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="Current service status for <?php echo NAME;?> can be found here as well as incident history.">
|
||||
<link rel="shortcut icon" href="<?php echo WEB_URL;?>/favicon.ico" type="image/png">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/vendor/bootstrap/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/main.css" media="screen">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/print.css" media="print">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="<?php echo WEB_URL;?>/favicon/apple-icon-57x57.png">
|
||||
@ -90,89 +82,76 @@ class Template{
|
||||
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<link href="https://use.fontawesome.com/releases/v5.0.4/css/all.css" rel="stylesheet">
|
||||
<?php
|
||||
if(!$admin){
|
||||
$headpath = $_SERVER['DOCUMENT_ROOT'] . "/head.txt";
|
||||
$headfile = fopen("$headpath", "r") or die("Unable to open head.txt!");
|
||||
$head_additionalcode = fread($headfile,filesize($headpath));
|
||||
fclose($headfile);
|
||||
echo $head_additionalcode;
|
||||
} else {
|
||||
global $user;
|
||||
?>
|
||||
<link href="<?php echo WEB_URL;?>/css/jquery.growl.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</head>
|
||||
<body>
|
||||
<div class="navbar navbar-default" role="navigation">
|
||||
<nav class="navbar fixed-top navbar-expand-lg navbar-dark">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only"><?php echo _("Toggle navigation");?></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="<?php echo WEB_URL;?>"><a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php if(strlen(CUSTOM_LOGO_URL)>1){ echo CUSTOM_LOGO_URL; } else { echo WEB_URL."/img/logo_white.png"; } ?>" alt="logo" class="menu-logo" style="height:50px;"></a>
|
||||
</div>
|
||||
<div class="navbar-left hidden-xs">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="<?php echo WEB_URL;?>/"><h1><?php echo _((defined('TITLE')?TITLE:"Service Status"));?></h1></a></li>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarToggler" aria-controls="navbarToggler" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarToggler">
|
||||
<a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php if(strlen(CUSTOM_LOGO_URL)>1){ echo CUSTOM_LOGO_URL; } else { echo WEB_URL."/img/logo_white.png"; } ?>" alt="logo" class="menu-logo" width="50" height="50"></a>
|
||||
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
|
||||
<?php
|
||||
if(!$admin){
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<?php echo $strSubsMenu; ?>
|
||||
</li>
|
||||
<?php
|
||||
} else {
|
||||
global $user;
|
||||
?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo WEB_URL;?>/admin/"><?php echo _("Dashboard");?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo WEB_URL;?>/admin/?do=user"><?php printf(_("User (%s)"), $user->get_username());?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo WEB_URL;?>/admin/?do=settings"><?php echo _("Services & Users");?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo WEB_URL;?>/admin/?do=options"><?php echo _("Options");?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="<?php echo WEB_URL;?>/admin/?do=logout"><?php echo _("Logout");?></a>
|
||||
</li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse navbar-right navbar-admin">
|
||||
<?php echo $strSubsMenu; ?>
|
||||
</div><!--/.nav-collapse -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="wrapper" class="center">
|
||||
<?php
|
||||
}else{
|
||||
</nav>
|
||||
<?php
|
||||
if(!$admin){
|
||||
?>
|
||||
<div id="wrapper" class="">
|
||||
<?php
|
||||
} else {
|
||||
global $user;
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title><?php echo $page_name." - ".NAME ?></title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="shortcut icon" href="<?php echo WEB_URL;?>/favicon.ico" type="image/png">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<?php echo WEB_URL;?>/css/main.css">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="<?php echo WEB_URL;?>/favicon/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="<?php echo WEB_URL;?>/favicon/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="<?php echo WEB_URL;?>/favicon/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="<?php echo WEB_URL;?>/favicon/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="<?php echo WEB_URL;?>/favicon/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="<?php echo WEB_URL;?>/favicon/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="<?php echo WEB_URL;?>/favicon/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<?php echo WEB_URL;?>/favicon/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo WEB_URL;?>/favicon/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="<?php echo WEB_URL;?>/favicon/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo WEB_URL;?>/favicon/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="<?php echo WEB_URL;?>/favicon/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo WEB_URL;?>/favicon/favicon-16x16.png">
|
||||
<link rel="manifest" href="<?php echo WEB_URL;?>/favicon/manifest.json">
|
||||
<link href="https://use.fontawesome.com/releases/v5.0.4/css/all.css" rel="stylesheet">
|
||||
<link href="<?php echo WEB_URL;?>/css/jquery.growl.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
|
||||
</head>
|
||||
<body class="admin">
|
||||
<div class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only"><?php echo _("Toggle navigation");?></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="<?php echo WEB_URL;?>/admin"><img src="<?php if(strlen(CUSTOM_LOGO_URL)>1){ echo CUSTOM_LOGO_URL; } else { echo WEB_URL."/img/logo_white.png"; } ?>" alt="logo" class="menu-logo" width="50" height="50"></a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse navbar-right navbar-admin">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="<?php echo WEB_URL;?>/admin/"><?php echo _("Dashboard");?></a></li>
|
||||
<li><a href="<?php echo WEB_URL;?>/admin/?do=user"><?php printf(_("User (%s)"), $user->get_username());?></a></li>
|
||||
<li><a href="<?php echo WEB_URL;?>/admin/?do=settings"><?php echo _("Services & Users");?></a></li>
|
||||
<li><a href="<?php echo WEB_URL;?>/admin/?do=options"><?php echo _("Options");?></a></li>
|
||||
<li><a href="<?php echo WEB_URL;?>/admin/?do=logout"><?php echo _("Logout");?></a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
<div id="wrapper" class="center admin">
|
||||
<?php
|
||||
}
|
||||
<div id="wrapper" class="admin">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
<?php
|
||||
}
|
||||
/**
|
||||
* Renders a toggle switch
|
||||
@ -205,26 +184,25 @@ class Template{
|
||||
<div id="footerwrap">
|
||||
<div class="container">
|
||||
<div class="row centered">
|
||||
<div class="col-md-4 text-left"><a href="https://github.com/server-status-project/server-status/graphs/contributors" target="_blank">Copyright © <?php echo date("Y");?> Server Status Project Contributors </a><?php if(strlen(COPYRIGHT_TEXT)>1){ echo " and ".COPYRIGHT_TEXT; } ?></div>
|
||||
<div class="col-md-4 text-left"><a class="link-light" href="https://github.com/server-status-project/server-status/graphs/contributors" target="_blank">Copyright © <?php echo date("Y");?> Server Status Project Contributors </a><?php if(strlen(COPYRIGHT_TEXT)>1){ echo " and ".COPYRIGHT_TEXT; } ?></div>
|
||||
<div class="col-md-4 text-center">
|
||||
<div class="btn-group dropup">
|
||||
<button type="button" class="btn btn-primary"><?php echo '<img src="'.WEB_URL.'/locale/'.$_SESSION['locale'].'/flag.png" alt="'.$lang_names[$_SESSION['locale']].'">'.$lang_names[$_SESSION['locale']];?></button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<span class="caret"></span>
|
||||
<span class="sr-only"><?php echo _("Toggle Dropdown");?></span>
|
||||
<div class="input-group dropup mb-3">
|
||||
<button type="button" class="btn btn-primary" disabled><?php echo '<img src="'.$WEB_URL.'/locale/'.$_SESSION['locale'].'/flag.png" alt="'.$lang_names[$_SESSION['locale']].'">'.$lang_names[$_SESSION['locale']];?></button>
|
||||
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<span class="visually-hidden"><?php echo _("Toggle Dropdown");?></span>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<ul class="dropdown-menu">
|
||||
<?php
|
||||
foreach ($lang_names as $key => $value) {
|
||||
echo '<a href="?lang='.$key.'"><img src="'.WEB_URL.'/locale/'.$key.'/flag.png" alt="'.$value.'">'.$value.'</a>';
|
||||
echo '<a href="?lang='.$key.'"><img src="'.$WEB_URL.'/locale/'.$key.'/flag.png" alt="'.$value.'">'.$value.'</a>';
|
||||
}
|
||||
?>
|
||||
<hr role="separator" class="divider">
|
||||
<a href="https://poeditor.com/join/project/37SpmJtyOm"><?php echo _("Help with translation!");?></a>
|
||||
</div>
|
||||
<li><hr class="dropdown-divider"></li>
|
||||
<li><a href="https://poeditor.com/join/project/37SpmJtyOm"><?php echo _("Help with translation!");?></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 text-right"><a href="<?php echo POLICY_URL; ?>"><?php echo _("Imprint & Privacy Policy");?></a><!-- <a href="https://github.com/Pryx/server-status/" target="_blank"><i class="fab fa-github" aria-hidden="true"></i></a> --></div>
|
||||
<div class="col-md-4 text-right"><a class="link-light" href="<?php echo POLICY_URL; ?>"><?php echo _("Imprint & Privacy Policy");?></a></div>
|
||||
</div><!--/row -->
|
||||
</div><!--/container -->
|
||||
</div>
|
||||
@ -236,7 +214,7 @@ class Template{
|
||||
<script src="<?php echo WEB_URL;?>/js/admin.js"></script>
|
||||
<script src="<?php echo WEB_URL;?>/js/vendor/jquery.growl.js"></script>
|
||||
<?php }?>
|
||||
<script src="<?php echo WEB_URL;?>/js/vendor/bootstrap.min.js"></script>
|
||||
<script src="<?php echo WEB_URL;?>/js/vendor/bootstrap/bootstrap.bundle.min.js"></script>
|
||||
<script src="<?php echo WEB_URL;?>/js/main.js"></script>
|
||||
<?php if ( $GOOGLE_RECAPTCHA ) { ?><script src='https://www.google.com/recaptcha/api.js'></script><?php }?>
|
||||
</body>
|
||||
|
Loading…
Reference in New Issue
Block a user