Skip to content
Snippets Groups Projects
Commit b998c7bb authored by Stefano Alberto Russo's avatar Stefano Alberto Russo
Browse files

Added base Web App functionalities and models. Minor fixes.

parent 554e0d58
Branches
Tags
No related merge requests found
Showing
with 7906 additions and 4 deletions
......@@ -24,6 +24,9 @@ services:
privileged: true
volumes:
- ./data/shared:/shared
ports:
- "8591:8590"
- "5901:5900"
dregistry:
container_name: dregistry
......@@ -41,12 +44,16 @@ services:
environment:
- SAFEMODE=False
- DJANGO_LOG_LEVEL=CRITICAL
- ROSETTA_LOG_LEVEL=DEBUG
- ROSETTA_LOG_LEVEL=DEBUG
ports:
- "8080:8080"
- "8000:8590"
- "8592:8592"
- "7000-7005:7000-7005"
volumes:
- ./data_rosetta/webapp/data:/data
- ./data_rosetta/webapp/log:/var/log/webapp
- /var/run/docker.sock:/var/run/docker.sock
#- ./images/webapp/code:/opt/webapp_code
......
......@@ -37,6 +37,8 @@ RUN apt-get install python3-dev -y
# Install postgres driver required for psycopg2
RUN apt-get install libpq-dev -y
# Docker
RUN apt-get install docker.io -y
#------------------------------
# Install Django project
......@@ -72,6 +74,7 @@ RUN mkdir /var/log/webapp/ && chown rosetta:rosetta /var/log/webapp/
COPY run_webapp.sh /etc/supervisor/conf.d/
RUN chmod 755 /etc/supervisor/conf.d/run_webapp.sh
COPY supervisord_webapp.conf /etc/supervisor/conf.d/
COPY supervisord_dregistrytunnel.conf /etc/supervisor/conf.d/
#------------------------------
......@@ -86,5 +89,3 @@ COPY prestartup_webapp.sh /prestartup/
class ErrorMessage(Exception):
pass
class ConsistencyException(Exception):
pass
\ No newline at end of file
......@@ -12,7 +12,7 @@ class Command(BaseCommand):
print('Not creating admin user as it already exist')
except User.DoesNotExist:
print('Creating admin user with default password')
admin = User.objects.create_superuser('admin', 'admin@example.com', 'a')
admin = User.objects.create_superuser('admin', 'admin@example.com', 'admin')
Profile.objects.create(user=admin)
try:
......
import uuid
from django.db import models
from django.contrib.auth.models import User
from django.utils import timezone
#=========================
......@@ -21,6 +22,33 @@ class Profile(models.Model):
return str('Profile of user "{}"'.format(self.user.username))
#=========================
# Login Token
#=========================
class LoginToken(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
token = models.CharField('Login token', max_length=36)
#=========================
# Tasks
#=========================
class Task(models.Model):
user = models.ForeignKey(User, related_name='+', on_delete=models.CASCADE)
tid = models.CharField('Task ID', max_length=64, blank=False, null=False)
uuid = models.CharField('Task UUID', max_length=36, blank=False, null=False)
name = models.CharField('Task name', max_length=36, blank=False, null=False)
type = models.CharField('Task type', max_length=36, blank=False, null=False)
status = models.CharField('Task status', max_length=36, blank=True, null=True)
created = models.DateTimeField('Created on', default=timezone.now)
def __str__(self):
return str('Task "{}" of user "{}" in status "{}" (TID "{}")'.format(self.name, self.user.email, self.status, self.tid))
......
This diff is collapsed.
This diff is collapsed.
/*!
* Datetimepicker for Bootstrap 3
* version : 4.17.47
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/
.bootstrap-datetimepicker-widget {
list-style: none;
}
.bootstrap-datetimepicker-widget.dropdown-menu {
display: block;
margin: 2px 0;
padding: 4px;
width: 19em;
}
@media (min-width: 768px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 992px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
@media (min-width: 1200px) {
.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
width: 38em;
}
}
.bootstrap-datetimepicker-widget.dropdown-menu:before,
.bootstrap-datetimepicker-widget.dropdown-menu:after {
content: '';
display: inline-block;
position: absolute;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-bottom: 7px solid #ccc;
border-bottom-color: rgba(0, 0, 0, 0.2);
top: -7px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid white;
top: -6px;
left: 8px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
border-left: 7px solid transparent;
border-right: 7px solid transparent;
border-top: 7px solid #ccc;
border-top-color: rgba(0, 0, 0, 0.2);
bottom: -7px;
left: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-top: 6px solid white;
bottom: -6px;
left: 7px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
left: auto;
right: 6px;
}
.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
left: auto;
right: 7px;
}
.bootstrap-datetimepicker-widget .list-unstyled {
margin: 0;
}
.bootstrap-datetimepicker-widget a[data-action] {
padding: 6px 0;
}
.bootstrap-datetimepicker-widget a[data-action]:active {
box-shadow: none;
}
.bootstrap-datetimepicker-widget .timepicker-hour,
.bootstrap-datetimepicker-widget .timepicker-minute,
.bootstrap-datetimepicker-widget .timepicker-second {
width: 54px;
font-weight: bold;
font-size: 1.2em;
margin: 0;
}
.bootstrap-datetimepicker-widget button[data-action] {
padding: 6px;
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Increment Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Decrement Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Hours";
}
.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Show Minutes";
}
.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle AM/PM";
}
.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Clear the picker";
}
.bootstrap-datetimepicker-widget .btn[data-action="today"]::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Set the date to today";
}
.bootstrap-datetimepicker-widget .picker-switch {
text-align: center;
}
.bootstrap-datetimepicker-widget .picker-switch::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Toggle Date and Time Screens";
}
.bootstrap-datetimepicker-widget .picker-switch td {
padding: 0;
margin: 0;
height: auto;
width: auto;
line-height: inherit;
}
.bootstrap-datetimepicker-widget .picker-switch td span {
line-height: 2.5;
height: 2.5em;
width: 100%;
}
.bootstrap-datetimepicker-widget table {
width: 100%;
margin: 0;
}
.bootstrap-datetimepicker-widget table td,
.bootstrap-datetimepicker-widget table th {
text-align: center;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table th {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table th.picker-switch {
width: 145px;
}
.bootstrap-datetimepicker-widget table th.disabled,
.bootstrap-datetimepicker-widget table th.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table th.prev::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Previous Month";
}
.bootstrap-datetimepicker-widget table th.next::after {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
content: "Next Month";
}
.bootstrap-datetimepicker-widget table thead tr:first-child th {
cursor: pointer;
}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover {
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td {
height: 54px;
line-height: 54px;
width: 54px;
}
.bootstrap-datetimepicker-widget table td.cw {
font-size: .8em;
height: 20px;
line-height: 20px;
color: #777777;
}
.bootstrap-datetimepicker-widget table td.day {
height: 20px;
line-height: 20px;
width: 20px;
}
.bootstrap-datetimepicker-widget table td.day:hover,
.bootstrap-datetimepicker-widget table td.hour:hover,
.bootstrap-datetimepicker-widget table td.minute:hover,
.bootstrap-datetimepicker-widget table td.second:hover {
background: #eeeeee;
cursor: pointer;
}
.bootstrap-datetimepicker-widget table td.old,
.bootstrap-datetimepicker-widget table td.new {
color: #777777;
}
.bootstrap-datetimepicker-widget table td.today {
position: relative;
}
.bootstrap-datetimepicker-widget table td.today:before {
content: '';
display: inline-block;
border: solid transparent;
border-width: 0 0 7px 7px;
border-bottom-color: #337ab7;
border-top-color: rgba(0, 0, 0, 0.2);
position: absolute;
bottom: 4px;
right: 4px;
}
.bootstrap-datetimepicker-widget table td.active,
.bootstrap-datetimepicker-widget table td.active:hover {
background-color: #337ab7;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td.active.today:before {
border-bottom-color: #fff;
}
.bootstrap-datetimepicker-widget table td.disabled,
.bootstrap-datetimepicker-widget table td.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget table td span {
display: inline-block;
width: 54px;
height: 54px;
line-height: 54px;
margin: 2px 1.5px;
cursor: pointer;
border-radius: 4px;
}
.bootstrap-datetimepicker-widget table td span:hover {
background: #eeeeee;
}
.bootstrap-datetimepicker-widget table td span.active {
background-color: #337ab7;
color: #fff;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
}
.bootstrap-datetimepicker-widget table td span.old {
color: #777777;
}
.bootstrap-datetimepicker-widget table td span.disabled,
.bootstrap-datetimepicker-widget table td span.disabled:hover {
background: none;
color: #777777;
cursor: not-allowed;
}
.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
height: 27px;
line-height: 27px;
}
.bootstrap-datetimepicker-widget.wider {
width: 21em;
}
.bootstrap-datetimepicker-widget .datepicker-decades .decade {
line-height: 1.8em !important;
}
.input-group.date .input-group-addon {
cursor: pointer;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
/*!
* Datetimepicker for Bootstrap 3
* version : 4.17.47
* https://github.com/Eonasdan/bootstrap-datetimepicker/
*/.bootstrap-datetimepicker-widget{list-style:none}.bootstrap-datetimepicker-widget.dropdown-menu{display:block;margin:2px 0;padding:4px;width:19em}@media (min-width:768px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:1200px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.bootstrap-datetimepicker-widget.dropdown-menu:before,.bootstrap-datetimepicker-widget.dropdown-menu:after{content:'';display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,0.2);top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid white;top:-6px;left:8px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,0.2);bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid white;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget .list-unstyled{margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:bold;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Hours"}.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Increment Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Hours"}.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Decrement Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Hours"}.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Show Minutes"}.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle AM/PM"}.bootstrap-datetimepicker-widget .btn[data-action="clear"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Clear the picker"}.bootstrap-datetimepicker-widget .btn[data-action="today"]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Set the date to today"}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget .picker-switch::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Toggle Date and Time Screens"}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td span{line-height:2.5;height:2.5em;width:100%}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget table td,.bootstrap-datetimepicker-widget table th{text-align:center;border-radius:4px}.bootstrap-datetimepicker-widget table th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table th.picker-switch{width:145px}.bootstrap-datetimepicker-widget table th.disabled,.bootstrap-datetimepicker-widget table th.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget table th.prev::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Previous Month"}.bootstrap-datetimepicker-widget table th.next::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0;content:"Next Month"}.bootstrap-datetimepicker-widget table thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget table thead tr:first-child th:hover{background:#eee}.bootstrap-datetimepicker-widget table td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget table td.cw{font-size:.8em;height:20px;line-height:20px;color:#777}.bootstrap-datetimepicker-widget table td.day{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget table td.day:hover,.bootstrap-datetimepicker-widget table td.hour:hover,.bootstrap-datetimepicker-widget table td.minute:hover,.bootstrap-datetimepicker-widget table td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget table td.old,.bootstrap-datetimepicker-widget table td.new{color:#777}.bootstrap-datetimepicker-widget table td.today{position:relative}.bootstrap-datetimepicker-widget table td.today:before{content:'';display:inline-block;border:solid transparent;border-width:0 0 7px 7px;border-bottom-color:#337ab7;border-top-color:rgba(0,0,0,0.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget table td.active,.bootstrap-datetimepicker-widget table td.active:hover{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget table td.disabled,.bootstrap-datetimepicker-widget table td.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget table td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget table td span:hover{background:#eee}.bootstrap-datetimepicker-widget table td span.active{background-color:#337ab7;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.bootstrap-datetimepicker-widget table td span.old{color:#777}.bootstrap-datetimepicker-widget table td span.disabled,.bootstrap-datetimepicker-widget table td span.disabled:hover{background:none;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.bootstrap-datetimepicker-widget.wider{width:21em}.bootstrap-datetimepicker-widget .datepicker-decades .decade{line-height:1.8em !important}.input-group.date .input-group-addon{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}
\ No newline at end of file
@font-face {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
top: 1px;
display: inline-block;
font-family: 'Glyphicons Halflings';
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.glyphicon-time:before {
content: "\e023";
}
.glyphicon-chevron-left:before {
content: "\e079";
}
.glyphicon-chevron-right:before {
content: "\e080";
}
.glyphicon-chevron-up:before {
content: "\e113";
}
.glyphicon-chevron-down:before {
content: "\e114";
}
.glyphicon-calendar:before {
content: "\e109";
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: normal;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.collapse {
display: none;
}
.collapse.in {
display: block;
}
.dropdown-menu {
position: absolute;
left: 0;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0;
margin: 2px 0 0;
font-size: 14px;
text-align: left;
list-style: none;
background-color: #fff;
-webkit-background-clip: padding-box;
background-clip: padding-box;
border: 1px solid #ccc;
border: 1px solid rgba(0, 0, 0, .15);
border-radius: 4px;
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.list-unstyled {
padding-left: 0;
list-style: none;
}
/*!
* Start Bootstrap - Stylish Portfolio Bootstrap Theme (http://startbootstrap.com)
* Code licensed under the Apache License v2.0.
* For details, see http://www.apache.org/licenses/LICENSE-2.0.
*/
/* Global Styles */
html,
body {
width: 100%;
height: 100%;
font-size: 1.0em;
}
body {
font-family: "Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;
}
.form-control {
width: 80%;
margin:auto
}
.ha-btn-lg {
background-color: #c0c0c0;
width: 80%;
display: flex;
justify-content: center;
margin:auto
}
.text-vertical-center {
display: table-cell;
text-align: center;
vertical-align: bottom;
}
.text-vertical-center h1 {
margin: 0;
padding: 0;
font-size: 4.5em;
font-weight: 700;
}
.text-vertical-bottom {
display: table-cell;
text-align: center;
padding-bottom: 50px;
vertical-align: bottom;
}
/* Custom Button Styles */
.btn-dark {
border-radius: 0;
color: #fff;
background-color: rgba(0,0,0,0.4);
}
.btn-blue {
border-radius: 0;
color: #fff;
background-color: rgba(0,95,144,0.8);
background-color: rgba(0,122,184,0.6);
background-color: rgba(0,0,0,0.4);
}
.btn-dark:hover,
.btn-dark:focus,
.btn-dark:active {
color: #fff;
background-color: rgba(0,0,0,0.7);
}
.btn-light {
border-radius: 0;
color: #333;
background-color: rgb(255,255,255);
}
.btn-light:hover,
.btn-light:focus,
.btn-light:active {
color: #333;
background-color: rgba(255,255,255,0.8);
}
/* Custom Horizontal Rule */
hr.small {
max-width: 100px;
}
/* Side Menu */
#sidebar-wrapper {
z-index: 1000;
position: fixed;
right: 0;
width: 250px;
height: 100%;
margin-right: -250px;
overflow-y: auto;
background: #222;
-webkit-transition: all 0.4s ease 0s;
-moz-transition: all 0.4s ease 0s;
-ms-transition: all 0.4s ease 0s;
-o-transition: all 0.4s ease 0s;
transition: all 0.4s ease 0s;
}
.sidebar-nav {
position: absolute;
top: 0;
width: 250px;
margin: 0;
padding: 0;
list-style: none;
}
.sidebar-nav li {
text-indent: 20px;
line-height: 27px;
}
.sidebar-nav li a {
padding-left:15px;
display: block;
text-decoration: none;
color: #c0c0c0;
}
.sidebar-nav li a:hover {
text-decoration: none;
color: #fff;
background: rgba(255,255,255,0.2);
}
.sidebar-nav li a:active,
.sidebar-nav li a:focus {
text-decoration: none;
}
.sidebar-nav > .sidebar-brand {
height: 45px;
font-size: 18px;
line-height: 55px;
}
.sidebar-nav > .sidebar-brand a {
padding-left:5px;
color: #e0e0e0;
}
.sidebar-nav > .sidebar-brand a:hover {
color: #fff;
background: none;
}
#menu-toggle {
z-index: 1;
position: fixed;
top: 0;
right: 0;
}
#sidebar-wrapper.active {
right: 250px;
width: 250px;
-webkit-transition: all 0.4s ease 0s;
-moz-transition: all 0.4s ease 0s;
-ms-transition: all 0.4s ease 0s;
-o-transition: all 0.4s ease 0s;
transition: all 0.4s ease 0s;
}
.toggle {
margin: 5px 5px 0 0;
}
/* Header */
.header {
display: table;
position: relative;
width: 100%;
height: 100%;
background-color: #ffffff;
/*background: url(../img/background.jpg) no-repeat center center scroll;*/
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
/* Haykle logo img */
.header img {
width: 400px;
height: auto;
}
@media (max-width: 900px) {
.header img {
height: auto;
width: 380px;}
}
@media (max-width: 800px) {
.header img {
height: auto;
width: 360px;}
}
@media (max-width: 700px) {
.header img {
height: auto;
width: 340px;}
}
@media (max-width: 600px) {
.header img {
height: auto;
width: 320px;}
}
@media (max-width: 500px) {
.header img {
height: auto;
width: 300px;}
.text-vertical-center h3 {
font-size: 22px;
}
}
@media (max-width: 400px) {
.header img {
height: auto;
width: 280px;}
.text-vertical-center h3 {
font-size: 21px;
}
}
/* About */
.about {
padding: 50px 0;
}
/* Services */
.services {
padding: 50px 0;
}
.service-item {
margin-bottom: 30px;
}
/* Callout */
.callout {
display: table;
width: 100%;
height: 400px;
color: #fff;
background: url(../img/callout.jpg) no-repeat center center scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
/* Portfolio */
.portfolio {
padding: 20px 0;
}
.portfolio-item {
margin-bottom: 30px;
}
.img-portfolio {
margin: 0 auto;
}
.img-portfolio:hover {
opacity: 0.8;
}
/* Call to Action */
.call-to-action {
padding: 50px 0;
}
.call-to-action .btn {
margin: 10px;
}
/* Map */
.map {
height: 500px;
}
@media(max-width:768px) {
.map {
height: 75%;
}
}
/* Footer */
footer {
padding: 100px 0;
}
/* Emphasize (search results) */
em {
font-style: normal;
font-weight: bold;
}
/* Gray Background (search results tags) */
.tags {
padding: 2px;
font-size: 0.7em;
padding-left:5px;
padding-right:5px;
padding-top:2px;
padding-bottom:2px;
/*margin-left:2px; */
/*background-color: rgb(210,210,210);*/
}
.tags a{
color: black;
}
/* Smaller date font*/
.date {
font-size: 0.9em;
margin-left:0px;
margin-right:2px;
}
/* Centered search box */
.search_box {
max-width: 500px;
margin: 0 auto; /* this center the div in the container div */
}
.search-out {
/*word-wrap:break-word;*/
}
/* Cache/Delete .. */
.more {
font-color: #A0A0A0;
font-size: 0.9em;
}
/* Disable auto-zoom on Safari fo iOS */
@media screen and (-webkit-min-device-pixel-ratio:0) {
select,
textarea,
input {
font-size: 16px;
}
}
th, td {
padding: 5px;
}
.centerbox {
max-width: 400px;
padding: 0px 0px;
top: 0;
margin: 0 auto;
}
.centerbox-error {
background-color: #ff5050;
text-align: center;
color: #ffffff;
max-width: 400px;
padding: 10px 10px;
top: 0;
margin: 0 auto;
}
.centerbox-error button {
color: #606060;
}
.centerbox-success {
background-color: #54C571;
text-align: center;
color: #ffffff;
max-width: 400px;
padding: 10px 10px;
top: 0;
margin: 0 auto;
}
.lead {
font-weight:500;
font-size: 20px;
}
.lead b {
font-weight:700;
}
.centerbox-error-notfilled {
background-color: #ffffff;
text-align: center;
font-size:1.5em;
color: #ff3300;
max-width: 400px;
padding: 10px 10px;
top: 0;
margin: 0 auto;
}
.centerbox-success-notfilled {
background-color: #ffffff;
text-align: center;
font-size:1.5em;
color: #009933;
max-width: 400px;
padding: 10px 10px;
top: 0;
margin: 0 auto;
}
/*---------------------*/
/* Centerbox - SUCCESS */
/*---------------------*/
.centerbox-success-outer {
background-color: #54C071;
text-align: center;
/*font-size:1.2em; */
max-width: 400px;
padding: 0;
top: 0;
margin: 0 auto;
font-color: #f0f0f0;
}
.centerbox-success-outer a {
color: #f0f0f0;
}
.centerbox-success-outer a:hover {
color: #ffffff;
}
.centerbox-success-inner {
display: block;
padding: 10px;
}
/*-------------------*/
/* Centerbox - ERROR */
/*-------------------*/
.centerbox-error-outer {
background-color: #ff5050;
text-align: center;
/* font-size:1.2em; */
max-width: 400px;
padding: 0;
top: 0;
margin: 0 auto;
font-color: #f0f0f0;
}
.centerbox-error-outer a {
color: #f0f0f0;
}
.centerbox-error-outer a:hover {
color: #ffffff;
}
.centerbox-error-inner {
display: block;
padding: 10px;
}
\ No newline at end of file
images/webapp/code/rosetta/base_app/static/favicon/android-chrome-192x192.png

24.6 KiB

images/webapp/code/rosetta/base_app/static/favicon/android-chrome-256x256.png

39.4 KiB

images/webapp/code/rosetta/base_app/static/favicon/apple-touch-icon.png

24.3 KiB

<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>
images/webapp/code/rosetta/base_app/static/favicon/favicon-16x16.png

1.05 KiB

images/webapp/code/rosetta/base_app/static/favicon/favicon-32x32.png

2.06 KiB

images/webapp/code/rosetta/base_app/static/favicon/favicon.ico

11.7 KiB

images/webapp/code/rosetta/base_app/static/favicon/mstile-150x150.png

15.2 KiB

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="256.000000pt" height="256.000000pt" viewBox="0 0 256.000000 256.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,256.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1153 2290 c-23 -5 -51 -13 -61 -19 -13 -7 -33 -6 -68 5 -53 17 -126
14 -191 -6 -49 -16 -145 -61 -159 -75 -7 -6 -25 -22 -40 -36 -101 -85 -184
-247 -225 -439 -53 -250 22 -919 118 -1048 21 -28 30 -32 71 -32 l47 -1 -36
-32 c-78 -70 -84 -86 -87 -250 l-4 -147 26 0 c26 0 26 0 11 30 -22 42 -19 148
5 212 12 32 35 67 61 90 63 57 197 101 262 84 13 -3 64 -45 114 -93 123 -119
171 -163 180 -163 5 0 139 114 153 131 3 3 34 31 69 62 49 44 71 57 95 57 53
0 120 -28 160 -67 l38 -37 -4 -105 c-3 -93 -6 -110 -27 -140 -13 -18 -38 -39
-55 -47 -28 -12 -17 -13 109 -14 l140 0 -6 83 c-6 76 5 373 16 407 2 8 9 54
15 103 12 95 24 133 48 142 35 13 54 -41 82 -230 11 -77 26 -222 32 -323 8
-119 16 -182 23 -182 13 0 11 103 -5 325 -6 77 -11 239 -13 360 l-2 220 45 13
c25 7 65 19 90 27 25 8 68 19 95 24 123 24 145 32 145 52 0 16 -7 19 -48 19
-26 0 -74 -7 -105 -15 -32 -8 -68 -15 -81 -15 -13 0 -35 -9 -49 -20 -14 -11
-29 -20 -33 -20 -16 0 -74 -52 -74 -67 0 -28 -33 -42 -96 -43 -79 0 -93 11
-95 79 -2 46 1 56 22 72 13 10 40 19 60 19 l35 0 2 193 c3 267 -15 372 -90
527 -42 86 -63 117 -118 170 -122 118 -232 160 -425 166 -71 1 -149 -1 -172
-6z m-103 -512 c40 -20 130 -42 245 -62 132 -23 249 -62 296 -98 9 -7 19 -35
23 -62 l8 -49 -30 24 c-16 14 -49 33 -75 43 -43 16 -49 16 -104 0 -42 -12 -70
-28 -100 -59 -24 -23 -43 -50 -43 -59 0 -24 13 -19 35 16 28 44 49 49 41 11
-10 -43 19 -111 51 -119 34 -9 122 1 136 15 7 7 12 40 12 77 0 37 4 64 10 64
5 -1 23 -12 40 -25 27 -22 29 -27 18 -54 -9 -24 -8 -29 3 -24 17 6 18 -23 4
-119 -27 -183 -166 -370 -317 -424 -55 -19 -195 -18 -254 3 -27 10 -49 21 -49
25 0 5 -6 8 -13 8 -8 0 -41 25 -75 56 -102 92 -163 216 -181 369 -10 78 -5 98
20 85 15 -8 17 -7 13 5 -4 8 -10 15 -15 15 -5 0 -9 6 -9 14 0 17 56 66 76 66
16 0 19 -16 4 -25 -27 -16 2 -112 37 -127 27 -10 102 -9 122 2 26 13 44 65 38
105 -7 40 -2 42 32 14 16 -13 24 -30 24 -52 -1 -18 2 -25 5 -17 3 8 9 18 15
21 26 18 -56 101 -128 130 -58 23 -156 0 -203 -47 -7 -8 -18 -14 -23 -14 -11
0 -12 37 0 44 4 3 11 21 14 39 11 72 43 121 93 146 26 13 63 41 83 62 l36 37
25 -21 c14 -12 41 -30 60 -39z m-153 -275 c8 -21 -35 -59 -50 -44 -14 14 8 61
28 61 9 0 18 -7 22 -17z m530 1 c4 -10 -4 -25 -21 -40 l-26 -25 0 35 c0 42 34
64 47 30z m373 -894 c0 -37 -7 -37 -50 0 l-35 29 43 1 c40 0 42 -1 42 -30z
m-576 -20 c19 -7 26 -17 26 -35 0 -14 5 -25 11 -25 7 0 1 -11 -12 -24 -36 -36
-101 -38 -133 -6 -57 58 21 123 108 90z"/>
<path d="M1070 1290 c-14 -27 -5 -55 28 -85 21 -20 37 -25 77 -25 57 0 88 17
110 61 12 22 13 34 5 49 -13 24 -14 24 -46 3 -14 -9 -45 -16 -70 -16 -27 0
-51 6 -62 16 -24 22 -29 21 -42 -3z"/>
<path d="M954 1066 c-5 -22 0 -36 27 -69 122 -153 258 -157 384 -14 77 88 59
114 -66 96 -77 -11 -203 -8 -299 7 -36 6 -39 4 -46 -20z"/>
<path d="M2055 1276 c-16 -8 -43 -18 -60 -22 l-30 -7 40 -13 c59 -18 131 -18
139 2 9 23 -12 54 -37 54 -12 0 -35 -7 -52 -14z"/>
</g>
</svg>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment