Initial commit

This commit is contained in:
Raimon Esteve 2018-10-29 23:29:47 +01:00
commit 793f96d9f6
8 changed files with 539 additions and 0 deletions

1
bower_components Symbolic link
View File

@ -0,0 +1 @@
../sao/bower_components

1
dist Symbolic link
View File

@ -0,0 +1 @@
../sao/dist

1
images Symbolic link
View File

@ -0,0 +1 @@
../sao/images

99
index.html Normal file
View File

@ -0,0 +1,99 @@
<!DOCTYPE html>
<!-- This file is part of Tryton. The COPYRIGHT file at the top level of
this repository contains the full copyright notices and license terms. -->
<html style="overflow: auto;" lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Tryton</title>
<link rel="icon" type="image/png" href="images/tryton-icon.png">
<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<script type="text/javascript" src="bower_components/moment/min/moment.min.js"></script>
<script type="text/javascript" src="bower_components/moment/min/locales.min.js"></script>
<script type="text/javascript" src="bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js"></script>
<script type="text/javascript" src="bower_components/gettext.js/dist/gettext.min.js"></script>
<script type="text/javascript" src="bower_components/d3/d3.min.js"></script>
<script type="text/javascript" src="bower_components/c3/c3.min.js"></script>
<script type="text/javascript" src="bower_components/papaparse/papaparse.min.js"></script>
<script type="text/javascript" src="bower_components/fullcalendar/dist/fullcalendar.min.js"></script>
<script type="text/javascript" src="bower_components/fullcalendar/dist/locale-all.js"></script>
<script type="text/javascript" src="bower_components/mousetrap/mousetrap.min.js"></script>
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="bower_components/bootstrap-rtl-ondemand/dist/css/bootstrap-rtl-ondemand.min.css">
<link rel="stylesheet" href="bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.min.css">
<link rel="stylesheet" href="bower_components/c3/c3.min.css">
<link rel="stylesheet" href="bower_components/fullcalendar/dist/fullcalendar.min.css">
<script type="text/javascript" src="dist/tryton-sao.min.js"></script>
<link rel="stylesheet" type="text/css" href="dist/tryton-sao.min.css" media="screen"/>
<script type="text/javascript">
if (typeof Sao == 'undefined') {
document.write(unescape('%3cscript type="text/javascript" src="dist/tryton-sao.js"%3e%3c/script%3e'));
document.write(unescape('%3clink rel="stylesheet" type="text/css" href="dist/tryton-sao.css" media="screen"/%3e'));
}
</script>
<script type="text/javascript" src="theme/sao-theme.js"></script>
<script type="text/javascript" src="custom.js"></script>
<link rel="stylesheet" type="text/css" href="theme/sao-theme.css" media="screen"/>
</head>
<body>
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0px;">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#main_navbar">
<span class="caret"></span>
</button>
<a class="navbar-brand" href="javascript:void()" data-toggle="offcanvas">
<img class="icon" style="display:inline;" src="images/tryton-menu.svg"></img>
<span id="title">Tryton</span>
</a>
</div>
<div class="collapse navbar-collapse" id="main_navbar">
<form class="navbar-form navbar-left flip" role="search" id="global-search">
</form>
<ul class="nav navbar-nav navbar-right flip">
<li id="user-preferences"></li>
<li id="user-logout"></li>
</ul>
<ul id="tablist" class="nav navbar-nav nav-tabs nav-tabs-justified" role="tablist">
</ul>
</div>
</div>
</nav>
<div id="main" class="container-fluid1" style="padding: 0px;">
<div class="row row-offcanvas row-offcanvas-left active"
style="height: calc(100vh - 50px - 1px - 20px); margin: 0px;">
<div class="navbar-default col-xs-12 col-sm-3 col-lg-2 sidebar-offcanvas" id="menu" role="navigation"
style="overflow-y: auto; height: 100%;"></div>
<div class="col-xs-12 col-md-9 col-lg-10 main-offcanvas" style="overflow-y: auto; height: 100%;">
<div id="tabs" role="tabpanel">
<div id="tabcontent" class="tab-content">
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
jQuery(function() {
jQuery('[data-toggle="offcanvas"]').click(function() {
jQuery('.row-offcanvas').toggleClass('active');
});
jQuery('#tabs').on('ready', function() {
var mq = window.matchMedia('(max-width: 991px)');
if (mq.matches) {
if (jQuery('#tablist').children().length) {
jQuery('.row-offcanvas').removeClass('active');
} else {
jQuery('.row-offcanvas').addClass('active');
}
}
});
});
</script>
</body>
</html>

1
locale Symbolic link
View File

@ -0,0 +1 @@
../sao/locale

1
theme/README Normal file
View File

@ -0,0 +1 @@
Soure them from https://bootswatch.com/3/

432
theme/sao-theme.css Normal file
View File

@ -0,0 +1,432 @@
body {
-webkit-font-smoothing: antialiased;
letter-spacing: .1px;
}
p {
margin: 0 0 1em;
}
input,
button {
-webkit-font-smoothing: antialiased;
letter-spacing: .1px;
}
a {
-webkit-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
}
.table-hover > tbody > tr,
.table-hover > tbody > tr > th,
.table-hover > tbody > tr > td {
-webkit-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
}
label {
font-weight: normal;
}
textarea,
textarea.form-control,
input.form-control,
input[type=text],
input[type=password],
input[type=email],
input[type=number],
[type=text].form-control,
[type=password].form-control,
[type=email].form-control,
[type=tel].form-control,
[contenteditable].form-control {
padding: 0;
border: none;
border-radius: 0;
-webkit-appearance: none;
-webkit-box-shadow: inset 0 -1px 0 #dddddd;
box-shadow: inset 0 -1px 0 #dddddd;
font-size: 16px;
}
textarea:focus,
textarea.form-control:focus,
input.form-control:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=number]:focus,
[type=text].form-control:focus,
[type=password].form-control:focus,
[type=email].form-control:focus,
[type=tel].form-control:focus,
[contenteditable].form-control:focus {
-webkit-box-shadow: inset 0 -2px 0 #2196f3;
box-shadow: inset 0 -2px 0 #2196f3;
}
textarea[disabled],
textarea.form-control[disabled],
input.form-control[disabled],
input[type=text][disabled],
input[type=password][disabled],
input[type=email][disabled],
input[type=number][disabled],
[type=text].form-control[disabled],
[type=password].form-control[disabled],
[type=email].form-control[disabled],
[type=tel].form-control[disabled],
[contenteditable].form-control[disabled],
textarea[readonly],
textarea.form-control[readonly],
input.form-control[readonly],
input[type=text][readonly],
input[type=password][readonly],
input[type=email][readonly],
input[type=number][readonly],
[type=text].form-control[readonly],
[type=password].form-control[readonly],
[type=email].form-control[readonly],
[type=tel].form-control[readonly],
[contenteditable].form-control[readonly] {
-webkit-box-shadow: none;
box-shadow: none;
border-bottom: 1px dotted #ddd;
}
textarea.input-sm,
textarea.form-control.input-sm,
input.form-control.input-sm,
input[type=text].input-sm,
input[type=password].input-sm,
input[type=email].input-sm,
input[type=number].input-sm,
[type=text].form-control.input-sm,
[type=password].form-control.input-sm,
[type=email].form-control.input-sm,
[type=tel].form-control.input-sm,
[contenteditable].form-control.input-sm {
font-size: 12px;
}
textarea.input-lg,
textarea.form-control.input-lg,
input.form-control.input-lg,
input[type=text].input-lg,
input[type=password].input-lg,
input[type=email].input-lg,
input[type=number].input-lg,
[type=text].form-control.input-lg,
[type=password].form-control.input-lg,
[type=email].form-control.input-lg,
[type=tel].form-control.input-lg,
[contenteditable].form-control.input-lg {
font-size: 17px;
}
select,
select.form-control {
border: 0;
border-radius: 0;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
padding-left: 0;
padding-right: 0\9;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
-webkit-background-size: 13px 13px;
background-size: 13px;
background-repeat: no-repeat;
background-position: right center;
-webkit-box-shadow: inset 0 -1px 0 #dddddd;
box-shadow: inset 0 -1px 0 #dddddd;
font-size: 16px;
line-height: 1.5;
}
select::-ms-expand,
select.form-control::-ms-expand {
display: none;
}
select.input-sm,
select.form-control.input-sm {
font-size: 12px;
}
select.input-lg,
select.form-control.input-lg {
font-size: 17px;
}
select:focus,
select.form-control:focus {
-webkit-box-shadow: inset 0 -2px 0 #2196f3;
box-shadow: inset 0 -2px 0 #2196f3;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);
}
select[multiple],
select.form-control[multiple] {
background: none;
}
.radio label,
.radio-inline label,
.checkbox label,
.checkbox-inline label {
padding-left: 25px;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="radio"],
.checkbox-inline input[type="radio"],
.radio input[type="checkbox"],
.radio-inline input[type="checkbox"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
margin-left: -25px;
}
input[type="radio"],
.radio input[type="radio"],
.radio-inline input[type="radio"] {
position: relative;
margin-top: 6px;
margin-right: 4px;
vertical-align: top;
border: none;
background-color: transparent;
-webkit-appearance: none;
appearance: none;
cursor: pointer;
}
input[type="radio"]:focus,
.radio input[type="radio"]:focus,
.radio-inline input[type="radio"]:focus {
outline: none;
}
input[type="radio"]:before,
.radio input[type="radio"]:before,
.radio-inline input[type="radio"]:before,
input[type="radio"]:after,
.radio input[type="radio"]:after,
.radio-inline input[type="radio"]:after {
content: "";
display: block;
width: 18px;
height: 18px;
border-radius: 50%;
-webkit-transition: 240ms;
-o-transition: 240ms;
transition: 240ms;
}
input[type="radio"]:before,
.radio input[type="radio"]:before,
.radio-inline input[type="radio"]:before {
position: absolute;
left: 0;
top: -3px;
background-color: #2196f3;
-webkit-transform: scale(0);
-ms-transform: scale(0);
-o-transform: scale(0);
transform: scale(0);
}
input[type="radio"]:after,
.radio input[type="radio"]:after,
.radio-inline input[type="radio"]:after {
position: relative;
top: -3px;
border: 2px solid #666666;
}
input[type="radio"]:checked:before,
.radio input[type="radio"]:checked:before,
.radio-inline input[type="radio"]:checked:before {
-webkit-transform: scale(0.5);
-ms-transform: scale(0.5);
-o-transform: scale(0.5);
transform: scale(0.5);
}
input[type="radio"]:disabled:checked:before,
.radio input[type="radio"]:disabled:checked:before,
.radio-inline input[type="radio"]:disabled:checked:before {
background-color: #bbbbbb;
}
input[type="radio"]:checked:after,
.radio input[type="radio"]:checked:after,
.radio-inline input[type="radio"]:checked:after {
border-color: #2196f3;
}
input[type="radio"]:disabled:after,
.radio input[type="radio"]:disabled:after,
.radio-inline input[type="radio"]:disabled:after,
input[type="radio"]:disabled:checked:after,
.radio input[type="radio"]:disabled:checked:after,
.radio-inline input[type="radio"]:disabled:checked:after {
border-color: #bbbbbb;
}
input[type="checkbox"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
position: relative;
border: none;
margin-bottom: -4px;
-webkit-appearance: none;
appearance: none;
cursor: pointer;
}
input[type="checkbox"]:focus,
.checkbox input[type="checkbox"]:focus,
.checkbox-inline input[type="checkbox"]:focus {
outline: none;
}
input[type="checkbox"]:focus:after,
.checkbox input[type="checkbox"]:focus:after,
.checkbox-inline input[type="checkbox"]:focus:after {
border-color: #2196f3;
}
input[type="checkbox"]:after,
.checkbox input[type="checkbox"]:after,
.checkbox-inline input[type="checkbox"]:after {
content: "";
display: block;
width: 18px;
height: 18px;
margin-top: -2px;
margin-right: 5px;
border: 2px solid #666666;
border-radius: 2px;
-webkit-transition: 240ms;
-o-transition: 240ms;
transition: 240ms;
}
input[type="checkbox"]:checked:before,
.checkbox input[type="checkbox"]:checked:before,
.checkbox-inline input[type="checkbox"]:checked:before {
content: "";
position: absolute;
top: 0;
left: 6px;
display: table;
width: 6px;
height: 12px;
border: 2px solid #fff;
border-top-width: 0;
border-left-width: 0;
-webkit-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
input[type="checkbox"]:checked:after,
.checkbox input[type="checkbox"]:checked:after,
.checkbox-inline input[type="checkbox"]:checked:after {
background-color: #2196f3;
border-color: #2196f3;
}
input[type="checkbox"]:disabled:after,
.checkbox input[type="checkbox"]:disabled:after,
.checkbox-inline input[type="checkbox"]:disabled:after {
border-color: #bbbbbb;
}
input[type="checkbox"]:disabled:checked:after,
.checkbox input[type="checkbox"]:disabled:checked:after,
.checkbox-inline input[type="checkbox"]:disabled:checked:after {
background-color: #bbbbbb;
border-color: transparent;
}
input.column-boolean {
min-height: 22px;
}
textarea {
min-height: 200px;
background-color: #f7f7f7 !important;
}
/* toolbar */
.navbar-static-top {
min-height: 50px;
background-color: #e2eeff;
}
#user-favorites > .btn-default {
border: none;
}
#global-search-entry {
box-shadow: inset 0 0 0 !important;
}
/* tabs */
.navbar-brand {
padding-top: 8px;
}
.navbar-brand > .title {
font-size: 20px;
}
.toolbar-wrapper > .navbar-default {
background-color: #e2eeff;
}
.nav-tabs > li > a{
/* adjust padding for height*/
padding-top: 12px;
padding-bottom: 15px;
}
.nav-tabs > li > a,
.nav-tabs > li > a:focus {
margin-right: 0;
background-color: transparent;
border: none;
color: #666666;
-webkit-box-shadow: inset 0 -1px 0 #dddddd;
box-shadow: inset 0 -1px 0 #dddddd;
-webkit-transition: all 0.2s;
-o-transition: all 0.2s;
transition: all 0.2s;
}
.nav-tabs > li > a:hover,
.nav-tabs > li > a:focus:hover {
background-color: transparent;
-webkit-box-shadow: inset 0 -2px 0 #2196f3;
box-shadow: inset 0 -2px 0 #2196f3;
color: #2196f3;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus {
border: none;
-webkit-box-shadow: inset 0 -2px 0 #2196f3;
box-shadow: inset 0 -2px 0 #2196f3;
color: #2196f3;
}
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus:hover {
border: none;
color: #2196f3;
}
.nav-tabs > li.disabled > a {
-webkit-box-shadow: inset 0 -1px 0 #dddddd;
box-shadow: inset 0 -1px 0 #dddddd;
}
.nav-tabs.nav-justified > li > a,
.nav-tabs.nav-justified > li > a:hover,
.nav-tabs.nav-justified > li > a:focus,
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
border: none;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
color: #212121;
background-color: #b0c4e0;
}
/* alert */
.alert-info {
background-color: #3e4761;
color: #ffffff;
}
.alert-info > img.icon {
background-color: #eff2f7;
border-radius: 50%;
margin: 0 5px 0 0;
border: 1px solid #3465a4;
}
.alert-info > .close {
color: #fff;
opacity: 1;
}

3
theme/sao-theme.js Normal file
View File

@ -0,0 +1,3 @@
(function() {
'use strict';
}());