mirror of
https://forge.chapril.org/tykayn/caisse-bliss
synced 2025-10-09 17:02:47 +02:00
up to sf 7
This commit is contained in:
parent
a39b6239b0
commit
501795a8fa
16586 changed files with 19384005 additions and 0 deletions
0
v1/old/templates_old/assets/.gitignore
vendored
Executable file
0
v1/old/templates_old/assets/.gitignore
vendored
Executable file
13
v1/old/templates_old/assets/css/app.scss
Executable file
13
v1/old/templates_old/assets/css/app.scss
Executable file
|
@ -0,0 +1,13 @@
|
|||
@import 'pages/libs';
|
||||
@import 'fonts/all';
|
||||
@import 'split/override_libs';
|
||||
@import 'split/custom_vars';
|
||||
@import 'split/formulaires';
|
||||
@import 'split/typo';
|
||||
@import 'pages/global';
|
||||
@import 'pages/demo';
|
||||
@import 'pages/home';
|
||||
@import 'pages/history';
|
||||
@import 'pages/dashboard';
|
||||
@import 'pages/special';
|
||||
@import 'pages/responsive';
|
6
v1/old/templates_old/assets/css/fonts/all.scss
Executable file
6
v1/old/templates_old/assets/css/fonts/all.scss
Executable file
|
@ -0,0 +1,6 @@
|
|||
@font-face {
|
||||
font-family: "Source Sans";
|
||||
src: url("source-sans-pro/SourceSansPro-Bold.otf") format('opentype');
|
||||
src: url("source-sans-pro/SourceSansPro-Regular.otf") format('opentype');
|
||||
src: url("source-sans-pro/SourceSansPro-Light.otf") format('opentype');
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in which fonts may be shared and improved in partnership with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot be released under any other type of license. The requirement for fonts to remain under this license does not apply to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright Holder(s) under this license and clearly marked as such. This may include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any of the components of the Original Version, by changing formats or by porting the Font Software to a new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, provided that each copy contains the above copyright notice and this license. These can be included either as stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the Author(s) or with their explicit written permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and must not be distributed under any other license. The requirement for fonts to remain under this license does not apply to any document created using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Black.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Black.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-BlackIt.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-BlackIt.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Bold.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Bold.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-BoldIt.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-BoldIt.otf
Executable file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-It.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-It.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Light.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Light.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-LightIt.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-LightIt.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Regular.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Regular.otf
Executable file
Binary file not shown.
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Semibold.otf
Executable file
BIN
v1/old/templates_old/assets/css/fonts/source-sans-pro/SourceSansPro-Semibold.otf
Executable file
Binary file not shown.
Binary file not shown.
4
v1/old/templates_old/assets/css/global.scss
Executable file
4
v1/old/templates_old/assets/css/global.scss
Executable file
|
@ -0,0 +1,4 @@
|
|||
$brand-primary: darken(#428bca, 20%);
|
||||
|
||||
// the ~ allows you to reference things in node_modules
|
||||
@import '~bootstrap-sass/assets/stylesheets/bootstrap';
|
122
v1/old/templates_old/assets/css/pages/_dashboard.scss
Executable file
122
v1/old/templates_old/assets/css/pages/_dashboard.scss
Executable file
|
@ -0,0 +1,122 @@
|
|||
#caisse-now {
|
||||
.product-box {
|
||||
display: inline-block;
|
||||
margin-right: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
width: 100%;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.product-button {
|
||||
width: 80%;
|
||||
text-overflow-ellipsis: "...";
|
||||
}
|
||||
|
||||
.listing-products {
|
||||
|
||||
button.active {
|
||||
background: yellowgreen;
|
||||
}
|
||||
|
||||
.btn, button {
|
||||
font-size: 1.6rem;
|
||||
padding: 1.5rem;
|
||||
-webkit-border-radius: 1rem;
|
||||
-moz-border-radius: 1rem;
|
||||
border-radius: 1rem;
|
||||
border-color: $all-text-color;
|
||||
box-shadow: 5px 3px 10px 2px #ddd;
|
||||
border-width: 0;
|
||||
|
||||
&.btn-primary {
|
||||
background-color: $deepblue;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
background: $lightblue;
|
||||
}
|
||||
}
|
||||
|
||||
.badge-default {
|
||||
background: $lightblue;
|
||||
}
|
||||
|
||||
.badge-success {
|
||||
background: mix(green, $lightblue);
|
||||
}
|
||||
}
|
||||
|
||||
.input-comment {
|
||||
width: calc(100% - 40px);
|
||||
}
|
||||
}
|
||||
|
||||
// container of categories
|
||||
.horizontal-land {
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
//width: 100%;
|
||||
height: 75vh;
|
||||
background: #ccc;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
|
||||
// list of one category
|
||||
.one-category {
|
||||
background: #dedede;
|
||||
width: 350px;
|
||||
margin: 0 4px;
|
||||
height: calc(74vh - 1rem);
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
//vertical-align: top;
|
||||
white-space: nowrap;
|
||||
//float: left;
|
||||
h2 {
|
||||
font-weight: bold;
|
||||
|
||||
&:first-letter {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.category-listing {
|
||||
border: solid 1px $grey;
|
||||
padding: 1rem;
|
||||
margin: 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
|
||||
.validate_selling {
|
||||
margin: 0.25rem;
|
||||
}
|
||||
|
||||
.product-listing {
|
||||
height: 70vh;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.sellings {
|
||||
.remove-item {
|
||||
margin-left: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
#not_loaded {
|
||||
width: 100%;
|
||||
height: 75vh;
|
||||
}
|
||||
|
||||
.selling-ok {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 2em;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block;
|
||||
width: calc(100% - 2em);
|
||||
text-align: center;
|
||||
}
|
4
v1/old/templates_old/assets/css/pages/_history.scss
Executable file
4
v1/old/templates_old/assets/css/pages/_history.scss
Executable file
|
@ -0,0 +1,4 @@
|
|||
.key-figure{
|
||||
font-size: 2em;
|
||||
font-weight: light;
|
||||
}
|
136
v1/old/templates_old/assets/css/pages/demo.scss
Executable file
136
v1/old/templates_old/assets/css/pages/demo.scss
Executable file
|
@ -0,0 +1,136 @@
|
|||
|
||||
body {
|
||||
background: #F5F5F5;
|
||||
font: 18px/1.5 sans-serif;
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
line-height: 1.2;
|
||||
margin: 0 0 .5em;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 21px;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 1em 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: $primary;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
code {
|
||||
background: #F5F5F5;
|
||||
max-width: 100px;
|
||||
padding: 2px 6px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#wrapper {
|
||||
background: #FFF;
|
||||
margin: 1em auto;
|
||||
//max-width: 800px;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
#container {
|
||||
padding: 2em;
|
||||
}
|
||||
|
||||
#homepage{
|
||||
@extend .bigger-text;
|
||||
h1 span {
|
||||
display: block;
|
||||
font-size: 75%;
|
||||
}
|
||||
}
|
||||
.hint,
|
||||
.product-values-block{
|
||||
@extend .bigger-text;
|
||||
h2{
|
||||
font-size: 5rem;
|
||||
}
|
||||
}
|
||||
.bigger-text{
|
||||
font-size: 2rem;
|
||||
line-height: 3.5rem;
|
||||
}
|
||||
#icon-status, #icon-book {
|
||||
float: left;
|
||||
height: 64px;
|
||||
margin-right: 1em;
|
||||
margin-top: -4px;
|
||||
width: 64px;
|
||||
}
|
||||
|
||||
#icon-book {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
#wrapper {
|
||||
//width: 80%;
|
||||
margin: 2em auto;
|
||||
}
|
||||
|
||||
#icon-book {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#status a, #next a {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@-webkit-keyframes fade-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes fade-in {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.sf-toolbar {
|
||||
opacity: 0;
|
||||
-webkit-animation: fade-in 1s .2s forwards;
|
||||
animation: fade-in 1s .2s forwards;
|
||||
}
|
||||
}
|
||||
|
||||
.header-block{
|
||||
background: $darkblue;
|
||||
.btn-default{
|
||||
color: $grey;
|
||||
}
|
||||
.btn{
|
||||
|
||||
span{
|
||||
position: absolute;
|
||||
right: 2.5em;
|
||||
top: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
#menu-dashboard .nav .logo-home.btn-default{
|
||||
background: $darkblue;
|
||||
height: 52px;
|
||||
font-size: 1em;
|
||||
}
|
315
v1/old/templates_old/assets/css/pages/global.scss
Executable file
315
v1/old/templates_old/assets/css/pages/global.scss
Executable file
|
@ -0,0 +1,315 @@
|
|||
@import '../split/custom_vars';
|
||||
|
||||
body {
|
||||
color: $all-text-color;
|
||||
font-family: "Sans Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 1rem;
|
||||
line-height: 2rem;
|
||||
}
|
||||
|
||||
|
||||
#wrapper {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.main-screen {
|
||||
min-height: 80vh;
|
||||
}
|
||||
|
||||
.bg-dark {
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
}
|
||||
|
||||
.bg-shader {
|
||||
@extend .bg-dark;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.bg-img {
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
overflow: hidden;
|
||||
background-position: center;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.bg-accessories {
|
||||
@extend .bg-img;
|
||||
background-image: url('../../img/accessories.jpg');
|
||||
}
|
||||
|
||||
.bg-girl {
|
||||
@extend .bg-img;
|
||||
background-image: url('../../img/girl_computer.jpg');
|
||||
}
|
||||
|
||||
.bg-color {
|
||||
background: $deepblue;
|
||||
color: $light;
|
||||
|
||||
a {
|
||||
color: $lightblue;
|
||||
}
|
||||
|
||||
padding: 1rem;
|
||||
}
|
||||
|
||||
.logo-main {
|
||||
color: $logo-color;
|
||||
}
|
||||
|
||||
.big-footer {
|
||||
background: $dark;
|
||||
color: $light;
|
||||
height: 4em;
|
||||
padding: 1em;
|
||||
box-sizing: border-box;
|
||||
position: static;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
display: block;
|
||||
float:left;
|
||||
}
|
||||
|
||||
thead {
|
||||
background: $darkblue;
|
||||
color: $light;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
min-width: 20em;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.try {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.padded {
|
||||
padding: 1rem;
|
||||
|
||||
&-v {
|
||||
padding: 0;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.marged {
|
||||
margin: 1rem;
|
||||
|
||||
&-v {
|
||||
margin: 0;
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
&-h {
|
||||
margin: 0;
|
||||
margin-right: 1rem;
|
||||
margin-left: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bgwarning {
|
||||
background: orange;
|
||||
color: #ee5555;
|
||||
}
|
||||
|
||||
.bgdanger {
|
||||
background: indianred;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bgsuccess {
|
||||
background: greenyellow;
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
.previsionnel {
|
||||
font-size: 1rem;
|
||||
|
||||
label {
|
||||
min-width: 220px;
|
||||
}
|
||||
|
||||
.big-number {
|
||||
font-size: 1.85rem;
|
||||
color: #2B2d42;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
html, h1, h2, h3, h4, h5, h6 {
|
||||
font-family: Source Sans, Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
input {
|
||||
width: auto;
|
||||
min-width: 2em;
|
||||
}
|
||||
|
||||
#menu-dashboard {
|
||||
background: $dark;
|
||||
display: flex;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 100vh;
|
||||
width: 13vw;
|
||||
min-width: 300px;
|
||||
overflow-x: auto;
|
||||
z-index: 10;
|
||||
|
||||
.nav {
|
||||
width: 100%;
|
||||
min-width: 300px;
|
||||
display: block;
|
||||
border-right: solid 2px mix($dark, $grey);
|
||||
|
||||
.btn {
|
||||
color: $light;
|
||||
}
|
||||
|
||||
.btn-default {
|
||||
color: $light;
|
||||
|
||||
&:hover {
|
||||
background: mix($deepblue, $light);
|
||||
color: $dark;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
i.fa {
|
||||
float: left;
|
||||
margin-right: 1em;
|
||||
color: $light;
|
||||
}
|
||||
}
|
||||
|
||||
.nav > li > a:hover, .nav > li > a {
|
||||
&:focus {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: $lightblue;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: $lightblue;
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.btn-default {
|
||||
background: transparent;
|
||||
|
||||
}
|
||||
|
||||
.btn-success {
|
||||
background-color: $deepblue;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
tr {
|
||||
&.bg-success {
|
||||
td {
|
||||
background: greenyellow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
> div {
|
||||
&:hover {
|
||||
background: #ccc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.table > thead > tr > td,
|
||||
table td {
|
||||
padding: 0.5em;
|
||||
}
|
||||
|
||||
.login-fosub {
|
||||
.padded {
|
||||
padding: 3em;
|
||||
}
|
||||
|
||||
input[type=submit] {
|
||||
background: $primary;
|
||||
color: $light;
|
||||
display: block;
|
||||
margin-top: 1em;
|
||||
padding: 1em;
|
||||
border: 0;
|
||||
width: 100%;
|
||||
|
||||
&:hover {
|
||||
background: $lightblue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#fos_user_profile_form {
|
||||
div {
|
||||
margin: 0.5em auto;
|
||||
}
|
||||
}
|
||||
|
||||
#bodyland {
|
||||
min-height: 100vh;
|
||||
.container {
|
||||
min-height: 90vh;
|
||||
}
|
||||
|
||||
> .row {
|
||||
min-height: 90vh;
|
||||
// for crud forms
|
||||
table{
|
||||
thead{
|
||||
th{
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
+ ul{
|
||||
a {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
table {
|
||||
margin-top: 2em;
|
||||
}
|
||||
}
|
||||
|
||||
#menu_button {
|
||||
z-index: 10;
|
||||
position: absolute;
|
||||
right: 1em;
|
||||
top: -2px;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
.heading-of-list {
|
||||
a {
|
||||
margin-top: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.hint {
|
||||
margin-top: 1em;
|
||||
}
|
31
v1/old/templates_old/assets/css/pages/home.scss
Executable file
31
v1/old/templates_old/assets/css/pages/home.scss
Executable file
|
@ -0,0 +1,31 @@
|
|||
|
||||
.main-section {
|
||||
padding: 1rem;
|
||||
display: flex;
|
||||
color: $light;
|
||||
justify-content: center;
|
||||
h1 {
|
||||
font-size: 4em;
|
||||
}
|
||||
h2 {
|
||||
color: $light !important;
|
||||
}
|
||||
> div {
|
||||
height: 80vh;
|
||||
padding-top: 25vh;
|
||||
max-widht: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.product-values {
|
||||
color: $light;
|
||||
padding: 4rem;
|
||||
padding-top: 25vh;
|
||||
}
|
||||
|
||||
#homepage {
|
||||
h2, h3, h4, h5, h6 {
|
||||
color: $light;
|
||||
}
|
||||
font-size: 1.5rem;
|
||||
}
|
4
v1/old/templates_old/assets/css/pages/libs.scss
Executable file
4
v1/old/templates_old/assets/css/pages/libs.scss
Executable file
|
@ -0,0 +1,4 @@
|
|||
@import '~font-awesome/css/font-awesome.css';
|
||||
@import '~bootstrap-sass/assets/stylesheets/bootstrap';
|
||||
@import '~intro.js/minified/introjs.min.css';
|
||||
@import '~intro.js/themes/introjs-dark.css';
|
188
v1/old/templates_old/assets/css/pages/responsive.scss
Executable file
188
v1/old/templates_old/assets/css/pages/responsive.scss
Executable file
|
@ -0,0 +1,188 @@
|
|||
@media all and(max-width: 1600px) {
|
||||
.big-footer{
|
||||
padding-left: 5em;
|
||||
}
|
||||
#caisse-now{
|
||||
margin-left: -1em;
|
||||
}
|
||||
}
|
||||
@media all and(max-width: 1200px) {
|
||||
#caisse-now{
|
||||
margin-left: 0;
|
||||
}
|
||||
.big-footer{
|
||||
padding-left: 0;
|
||||
}
|
||||
nav {
|
||||
min-width: auto;
|
||||
}
|
||||
html, body {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
.bg-shader {
|
||||
height: 100%;
|
||||
min-height: 100vh;
|
||||
}
|
||||
.product-values-block {
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
#homepage {
|
||||
.main-section {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: block;
|
||||
width: 100%;
|
||||
font-size: 1.25em;
|
||||
}
|
||||
}
|
||||
#caisse-now {
|
||||
.product-box {
|
||||
width: 100%;
|
||||
&.active{
|
||||
.product-button{
|
||||
background: greenyellow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.product-button {
|
||||
min-width: calc(100% - 56px)
|
||||
}
|
||||
|
||||
.listing-products {
|
||||
|
||||
.btn, button {
|
||||
font-size: 1rem;
|
||||
padding: 0.2em;
|
||||
border-radius: 0.3em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media all and(max-width: 1200px) {
|
||||
|
||||
#bodyland {
|
||||
.container {
|
||||
min-height: 100vh;
|
||||
width: 80vw;
|
||||
}
|
||||
}
|
||||
#menu-dashboard {
|
||||
font-size: 1rem;
|
||||
width: 19vw;
|
||||
min-width: 200px;
|
||||
|
||||
.nav {
|
||||
min-width: 200px;
|
||||
}
|
||||
}
|
||||
|
||||
form {
|
||||
margin-top: 3em;
|
||||
|
||||
select {
|
||||
width: 100%;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
+ ul {
|
||||
margin-top: 1em;
|
||||
list-style-type: none;
|
||||
|
||||
a {
|
||||
display: block;
|
||||
|
||||
.fa {
|
||||
margin-right: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media all and(max-width: 600px) {
|
||||
|
||||
#menu_button{
|
||||
|
||||
}
|
||||
html, body {
|
||||
font-size: 1rem;
|
||||
}
|
||||
#menu-dashboard .nav .logo-home.btn-default {
|
||||
height: auto;
|
||||
font-size: 2em;
|
||||
}
|
||||
#menu-dashboard {
|
||||
width: 100vw;
|
||||
visibility: hidden;
|
||||
|
||||
&.shown {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.nav {
|
||||
|
||||
min-width: 200px;
|
||||
height: 100vh;
|
||||
overflow: auto;
|
||||
|
||||
a {
|
||||
font-size: 2rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main-section > div {
|
||||
padding-top: 0;
|
||||
}
|
||||
.product-values {
|
||||
padding: 0;
|
||||
}
|
||||
.bigger-text, #homepage, .hint, .product-values-block {
|
||||
font-size: 1.25rem;
|
||||
line-height: 2rem;
|
||||
}
|
||||
.category-listing {
|
||||
width: calc(100vw - 4rem);
|
||||
height: 25vh;
|
||||
min-height: auto;
|
||||
float: left;
|
||||
clear: both;
|
||||
overflow: auto;
|
||||
}
|
||||
.sellings {
|
||||
input {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.client-now {
|
||||
input {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
.sellings, .client-now {
|
||||
|
||||
input {
|
||||
font-size: 1.5rem;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
.big-footer {
|
||||
font-size: 1rem;
|
||||
}
|
||||
#caisse-now .product-box {
|
||||
margin-bottom: 0.25rem;
|
||||
}
|
||||
#caisse-now .listing-products button {
|
||||
padding: 0.5rem 1rem;
|
||||
|
||||
.express-button {
|
||||
padding: 0.5rem 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
0
v1/old/templates_old/assets/css/pages/special.scss
Executable file
0
v1/old/templates_old/assets/css/pages/special.scss
Executable file
11
v1/old/templates_old/assets/css/split/custom_vars.scss
Executable file
11
v1/old/templates_old/assets/css/split/custom_vars.scss
Executable file
|
@ -0,0 +1,11 @@
|
|||
$dark: #222;
|
||||
$light: #dedede;
|
||||
$deepblue: #1b6d85;
|
||||
$darkblue: mix(#000, $deepblue);
|
||||
$lightblue: lightblue;
|
||||
$grey: #e3e3e3;
|
||||
$logo-color: mix($deepblue, $light);
|
||||
$all-text-color: mix($deepblue, $light);
|
||||
|
||||
$primary: $deepblue;
|
||||
$btn-primary-bg: $deepblue;
|
29
v1/old/templates_old/assets/css/split/formulaires.scss
Executable file
29
v1/old/templates_old/assets/css/split/formulaires.scss
Executable file
|
@ -0,0 +1,29 @@
|
|||
.current-selling {
|
||||
ul {
|
||||
list-style-type: none;
|
||||
}
|
||||
}
|
||||
label{
|
||||
&.required{
|
||||
&:after{
|
||||
content: "*";
|
||||
color: red;
|
||||
margin-left: 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: $deepblue;
|
||||
}
|
||||
|
||||
.product-box {
|
||||
margin-right: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
.remove-item{
|
||||
margin-left: -1rem;
|
||||
}
|
3
v1/old/templates_old/assets/css/split/override_libs.scss
Executable file
3
v1/old/templates_old/assets/css/split/override_libs.scss
Executable file
|
@ -0,0 +1,3 @@
|
|||
.hidden {
|
||||
display: none;
|
||||
}
|
8
v1/old/templates_old/assets/css/split/typo.scss
Executable file
8
v1/old/templates_old/assets/css/split/typo.scss
Executable file
|
@ -0,0 +1,8 @@
|
|||
h2, h3, h4, h5, h6 {
|
||||
color: mix($dark, $all-text-color);
|
||||
}
|
||||
|
||||
h1, .h1, h2, .h2, h3, .h3 {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
BIN
v1/old/templates_old/assets/img/accessories.jpg
Executable file
BIN
v1/old/templates_old/assets/img/accessories.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 188 KiB |
BIN
v1/old/templates_old/assets/img/bg.jpg
Executable file
BIN
v1/old/templates_old/assets/img/bg.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 176 KiB |
BIN
v1/old/templates_old/assets/img/girl_computer.jpg
Executable file
BIN
v1/old/templates_old/assets/img/girl_computer.jpg
Executable file
Binary file not shown.
After Width: | Height: | Size: 247 KiB |
4
v1/old/templates_old/assets/js/app.js
Executable file
4
v1/old/templates_old/assets/js/app.js
Executable file
|
@ -0,0 +1,4 @@
|
|||
require('../css/app.scss');
|
||||
require('../../node_modules/jquery/dist/jquery.min');
|
||||
require('../../node_modules/angular/angular.min.js');
|
||||
require('./parts/main.js');
|
350
v1/old/templates_old/assets/js/build-frontend-submodule/3rdpartylicenses.txt
Executable file
350
v1/old/templates_old/assets/js/build-frontend-submodule/3rdpartylicenses.txt
Executable file
|
@ -0,0 +1,350 @@
|
|||
core-js@2.5.7
|
||||
MIT
|
||||
Copyright (c) 2014-2018 Denis Pushkarev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
zone.js@0.8.26
|
||||
MIT
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2016-2018 Google, Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
style-loader@0.21.0
|
||||
MIT
|
||||
Copyright JS Foundation and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
'Software'), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
@angular/common@6.0.6
|
||||
MIT
|
||||
MIT
|
||||
|
||||
@angular/compiler@6.0.6
|
||||
MIT
|
||||
MIT
|
||||
|
||||
@angular/core@6.0.6
|
||||
MIT
|
||||
MIT
|
||||
|
||||
@angular/platform-browser-dynamic@6.0.6
|
||||
MIT
|
||||
MIT
|
||||
|
||||
@angular/platform-browser@6.0.6
|
||||
MIT
|
||||
MIT
|
||||
|
||||
rxjs@6.2.1
|
||||
Apache-2.0
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
tslib@1.9.3
|
||||
Apache-2.0
|
||||
Apache License
|
||||
|
||||
Version 2.0, January 2004
|
||||
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
||||
|
||||
You must give any other recipients of the Work or Derivative Works a copy of this License; and
|
||||
|
||||
You must cause any modified files to carry prominent notices stating that You changed the files; and
|
||||
|
||||
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
|
||||
|
||||
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
BIN
v1/old/templates_old/assets/js/build-frontend-submodule/favicon.ico
Executable file
BIN
v1/old/templates_old/assets/js/build-frontend-submodule/favicon.ico
Executable file
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
14
v1/old/templates_old/assets/js/build-frontend-submodule/index.html
Executable file
14
v1/old/templates_old/assets/js/build-frontend-submodule/index.html
Executable file
|
@ -0,0 +1,14 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Appli</title>
|
||||
<base href="/">
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
||||
</head>
|
||||
<body>
|
||||
<app-root></app-root>
|
||||
<script type="text/javascript" src="runtime.js"></script><script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="styles.js"></script><script type="text/javascript" src="vendor.js"></script><script type="text/javascript" src="main.js"></script></body>
|
||||
</html>
|
656
v1/old/templates_old/assets/js/build-frontend-submodule/main.js
Executable file
656
v1/old/templates_old/assets/js/build-frontend-submodule/main.js
Executable file
|
@ -0,0 +1,656 @@
|
|||
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["main"],{
|
||||
|
||||
/***/ "./src/$$_lazy_route_resource lazy recursive":
|
||||
/*!**********************************************************!*\
|
||||
!*** ./src/$$_lazy_route_resource lazy namespace object ***!
|
||||
\**********************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
function webpackEmptyAsyncContext(req) {
|
||||
// Here Promise.resolve().then() is used instead of new Promise() to prevent
|
||||
// uncaught exception popping up in devtools
|
||||
return Promise.resolve().then(function() {
|
||||
var e = new Error('Cannot find module "' + req + '".');
|
||||
e.code = 'MODULE_NOT_FOUND';
|
||||
throw e;
|
||||
});
|
||||
}
|
||||
webpackEmptyAsyncContext.keys = function() { return []; };
|
||||
webpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;
|
||||
module.exports = webpackEmptyAsyncContext;
|
||||
webpackEmptyAsyncContext.id = "./src/$$_lazy_route_resource lazy recursive";
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/app.component.css":
|
||||
/*!***********************************!*\
|
||||
!*** ./src/app/app.component.css ***!
|
||||
\***********************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/app.component.html":
|
||||
/*!************************************!*\
|
||||
!*** ./src/app/app.component.html ***!
|
||||
\************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<!--The content below is only a placeholder and can be replaced.-->\n<div style=\"text-align:center\">\n <h1>\n Welcome to {{ title }}!\n </h1>\n <img width=\"300\" alt=\"Angular Logo\" src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\">\n</div>\n<h2>Here are some links to help you start: </h2>\n<ul>\n <li>\n <h2><a target=\"_blank\" rel=\"noopener\" href=\"https://angular.io/tutorial\">Tour of Heroes</a></h2>\n </li>\n <li>\n <h2><a target=\"_blank\" rel=\"noopener\" href=\"https://github.com/angular/angular-cli/wiki\">CLI Documentation</a></h2>\n </li>\n <li>\n <h2><a target=\"_blank\" rel=\"noopener\" href=\"https://blog.angular.io/\">Angular blog</a></h2>\n </li>\n</ul>\n\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/app.component.ts":
|
||||
/*!**********************************!*\
|
||||
!*** ./src/app/app.component.ts ***!
|
||||
\**********************************/
|
||||
/*! exports provided: AppComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppComponent", function() { return AppComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
|
||||
var AppComponent = /** @class */ (function () {
|
||||
function AppComponent() {
|
||||
this.title = 'app';
|
||||
}
|
||||
AppComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-root',
|
||||
template: __webpack_require__(/*! ./app.component.html */ "./src/app/app.component.html"),
|
||||
styles: [__webpack_require__(/*! ./app.component.css */ "./src/app/app.component.css")]
|
||||
})
|
||||
], AppComponent);
|
||||
return AppComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/app.module.ts":
|
||||
/*!*******************************!*\
|
||||
!*** ./src/app/app.module.ts ***!
|
||||
\*******************************/
|
||||
/*! exports provided: AppModule */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AppModule", function() { return AppModule; });
|
||||
/* harmony import */ var _angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/platform-browser */ "./node_modules/@angular/platform-browser/fesm5/platform-browser.js");
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
/* harmony import */ var _app_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app.component */ "./src/app/app.component.ts");
|
||||
/* harmony import */ var _dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dashboard/dashboard.component */ "./src/app/dashboard/dashboard.component.ts");
|
||||
/* harmony import */ var _paiement_resume_paiement_resume_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./paiement-resume/paiement-resume.component */ "./src/app/paiement-resume/paiement-resume.component.ts");
|
||||
/* harmony import */ var _product_list_product_list_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./product-list/product-list.component */ "./src/app/product-list/product-list.component.ts");
|
||||
/* harmony import */ var _dashboard_options_dashboard_options_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dashboard-options/dashboard-options.component */ "./src/app/dashboard-options/dashboard-options.component.ts");
|
||||
/* harmony import */ var _sell_pause_sell_pause_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./sell-pause/sell-pause.component */ "./src/app/sell-pause/sell-pause.component.ts");
|
||||
/* harmony import */ var _festival_festival_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./festival/festival.component */ "./src/app/festival/festival.component.ts");
|
||||
/* harmony import */ var _client_info_client_info_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./client-info/client-info.component */ "./src/app/client-info/client-info.component.ts");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var AppModule = /** @class */ (function () {
|
||||
function AppModule() {
|
||||
}
|
||||
AppModule = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_1__["NgModule"])({
|
||||
declarations: [
|
||||
_app_component__WEBPACK_IMPORTED_MODULE_2__["AppComponent"],
|
||||
_dashboard_dashboard_component__WEBPACK_IMPORTED_MODULE_3__["DashboardComponent"],
|
||||
_paiement_resume_paiement_resume_component__WEBPACK_IMPORTED_MODULE_4__["PaiementResumeComponent"],
|
||||
_product_list_product_list_component__WEBPACK_IMPORTED_MODULE_5__["ProductListComponent"],
|
||||
_dashboard_options_dashboard_options_component__WEBPACK_IMPORTED_MODULE_6__["DashboardOptionsComponent"],
|
||||
_sell_pause_sell_pause_component__WEBPACK_IMPORTED_MODULE_7__["SellPauseComponent"],
|
||||
_festival_festival_component__WEBPACK_IMPORTED_MODULE_8__["FestivalComponent"],
|
||||
_client_info_client_info_component__WEBPACK_IMPORTED_MODULE_9__["ClientInfoComponent"]
|
||||
],
|
||||
imports: [
|
||||
_angular_platform_browser__WEBPACK_IMPORTED_MODULE_0__["BrowserModule"]
|
||||
],
|
||||
providers: [],
|
||||
bootstrap: [_app_component__WEBPACK_IMPORTED_MODULE_2__["AppComponent"]]
|
||||
})
|
||||
], AppModule);
|
||||
return AppModule;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/client-info/client-info.component.css":
|
||||
/*!*******************************************************!*\
|
||||
!*** ./src/app/client-info/client-info.component.css ***!
|
||||
\*******************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/client-info/client-info.component.html":
|
||||
/*!********************************************************!*\
|
||||
!*** ./src/app/client-info/client-info.component.html ***!
|
||||
\********************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n client-info works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/client-info/client-info.component.ts":
|
||||
/*!******************************************************!*\
|
||||
!*** ./src/app/client-info/client-info.component.ts ***!
|
||||
\******************************************************/
|
||||
/*! exports provided: ClientInfoComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ClientInfoComponent", function() { return ClientInfoComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var ClientInfoComponent = /** @class */ (function () {
|
||||
function ClientInfoComponent() {
|
||||
}
|
||||
ClientInfoComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
ClientInfoComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-client-info',
|
||||
template: __webpack_require__(/*! ./client-info.component.html */ "./src/app/client-info/client-info.component.html"),
|
||||
styles: [__webpack_require__(/*! ./client-info.component.css */ "./src/app/client-info/client-info.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], ClientInfoComponent);
|
||||
return ClientInfoComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard-options/dashboard-options.component.css":
|
||||
/*!*******************************************************************!*\
|
||||
!*** ./src/app/dashboard-options/dashboard-options.component.css ***!
|
||||
\*******************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard-options/dashboard-options.component.html":
|
||||
/*!********************************************************************!*\
|
||||
!*** ./src/app/dashboard-options/dashboard-options.component.html ***!
|
||||
\********************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n dashboard-options works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard-options/dashboard-options.component.ts":
|
||||
/*!******************************************************************!*\
|
||||
!*** ./src/app/dashboard-options/dashboard-options.component.ts ***!
|
||||
\******************************************************************/
|
||||
/*! exports provided: DashboardOptionsComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DashboardOptionsComponent", function() { return DashboardOptionsComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var DashboardOptionsComponent = /** @class */ (function () {
|
||||
function DashboardOptionsComponent() {
|
||||
}
|
||||
DashboardOptionsComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
DashboardOptionsComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-dashboard-options',
|
||||
template: __webpack_require__(/*! ./dashboard-options.component.html */ "./src/app/dashboard-options/dashboard-options.component.html"),
|
||||
styles: [__webpack_require__(/*! ./dashboard-options.component.css */ "./src/app/dashboard-options/dashboard-options.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], DashboardOptionsComponent);
|
||||
return DashboardOptionsComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard/dashboard.component.css":
|
||||
/*!***************************************************!*\
|
||||
!*** ./src/app/dashboard/dashboard.component.css ***!
|
||||
\***************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard/dashboard.component.html":
|
||||
/*!****************************************************!*\
|
||||
!*** ./src/app/dashboard/dashboard.component.html ***!
|
||||
\****************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n dashboard works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/dashboard/dashboard.component.ts":
|
||||
/*!**************************************************!*\
|
||||
!*** ./src/app/dashboard/dashboard.component.ts ***!
|
||||
\**************************************************/
|
||||
/*! exports provided: DashboardComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DashboardComponent", function() { return DashboardComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var DashboardComponent = /** @class */ (function () {
|
||||
function DashboardComponent() {
|
||||
}
|
||||
DashboardComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
DashboardComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-dashboard',
|
||||
template: __webpack_require__(/*! ./dashboard.component.html */ "./src/app/dashboard/dashboard.component.html"),
|
||||
styles: [__webpack_require__(/*! ./dashboard.component.css */ "./src/app/dashboard/dashboard.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], DashboardComponent);
|
||||
return DashboardComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/festival/festival.component.css":
|
||||
/*!*************************************************!*\
|
||||
!*** ./src/app/festival/festival.component.css ***!
|
||||
\*************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/festival/festival.component.html":
|
||||
/*!**************************************************!*\
|
||||
!*** ./src/app/festival/festival.component.html ***!
|
||||
\**************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n festival works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/festival/festival.component.ts":
|
||||
/*!************************************************!*\
|
||||
!*** ./src/app/festival/festival.component.ts ***!
|
||||
\************************************************/
|
||||
/*! exports provided: FestivalComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FestivalComponent", function() { return FestivalComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var FestivalComponent = /** @class */ (function () {
|
||||
function FestivalComponent() {
|
||||
}
|
||||
FestivalComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
FestivalComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-festival',
|
||||
template: __webpack_require__(/*! ./festival.component.html */ "./src/app/festival/festival.component.html"),
|
||||
styles: [__webpack_require__(/*! ./festival.component.css */ "./src/app/festival/festival.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], FestivalComponent);
|
||||
return FestivalComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/paiement-resume/paiement-resume.component.css":
|
||||
/*!***************************************************************!*\
|
||||
!*** ./src/app/paiement-resume/paiement-resume.component.css ***!
|
||||
\***************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/paiement-resume/paiement-resume.component.html":
|
||||
/*!****************************************************************!*\
|
||||
!*** ./src/app/paiement-resume/paiement-resume.component.html ***!
|
||||
\****************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n paiement-resume works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/paiement-resume/paiement-resume.component.ts":
|
||||
/*!**************************************************************!*\
|
||||
!*** ./src/app/paiement-resume/paiement-resume.component.ts ***!
|
||||
\**************************************************************/
|
||||
/*! exports provided: PaiementResumeComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PaiementResumeComponent", function() { return PaiementResumeComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var PaiementResumeComponent = /** @class */ (function () {
|
||||
function PaiementResumeComponent() {
|
||||
}
|
||||
PaiementResumeComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
PaiementResumeComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-paiement-resume',
|
||||
template: __webpack_require__(/*! ./paiement-resume.component.html */ "./src/app/paiement-resume/paiement-resume.component.html"),
|
||||
styles: [__webpack_require__(/*! ./paiement-resume.component.css */ "./src/app/paiement-resume/paiement-resume.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], PaiementResumeComponent);
|
||||
return PaiementResumeComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/product-list/product-list.component.css":
|
||||
/*!*********************************************************!*\
|
||||
!*** ./src/app/product-list/product-list.component.css ***!
|
||||
\*********************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/product-list/product-list.component.html":
|
||||
/*!**********************************************************!*\
|
||||
!*** ./src/app/product-list/product-list.component.html ***!
|
||||
\**********************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n product-list works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/product-list/product-list.component.ts":
|
||||
/*!********************************************************!*\
|
||||
!*** ./src/app/product-list/product-list.component.ts ***!
|
||||
\********************************************************/
|
||||
/*! exports provided: ProductListComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProductListComponent", function() { return ProductListComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var ProductListComponent = /** @class */ (function () {
|
||||
function ProductListComponent() {
|
||||
}
|
||||
ProductListComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
ProductListComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-product-list',
|
||||
template: __webpack_require__(/*! ./product-list.component.html */ "./src/app/product-list/product-list.component.html"),
|
||||
styles: [__webpack_require__(/*! ./product-list.component.css */ "./src/app/product-list/product-list.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], ProductListComponent);
|
||||
return ProductListComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/sell-pause/sell-pause.component.css":
|
||||
/*!*****************************************************!*\
|
||||
!*** ./src/app/sell-pause/sell-pause.component.css ***!
|
||||
\*****************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = ""
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/sell-pause/sell-pause.component.html":
|
||||
/*!******************************************************!*\
|
||||
!*** ./src/app/sell-pause/sell-pause.component.html ***!
|
||||
\******************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "<p>\n sell-pause works!\n</p>\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/app/sell-pause/sell-pause.component.ts":
|
||||
/*!****************************************************!*\
|
||||
!*** ./src/app/sell-pause/sell-pause.component.ts ***!
|
||||
\****************************************************/
|
||||
/*! exports provided: SellPauseComponent */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SellPauseComponent", function() { return SellPauseComponent; });
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
|
||||
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
||||
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
||||
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
||||
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
||||
};
|
||||
var __metadata = (undefined && undefined.__metadata) || function (k, v) {
|
||||
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
||||
};
|
||||
|
||||
var SellPauseComponent = /** @class */ (function () {
|
||||
function SellPauseComponent() {
|
||||
}
|
||||
SellPauseComponent.prototype.ngOnInit = function () {
|
||||
};
|
||||
SellPauseComponent = __decorate([
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["Component"])({
|
||||
selector: 'app-sell-pause',
|
||||
template: __webpack_require__(/*! ./sell-pause.component.html */ "./src/app/sell-pause/sell-pause.component.html"),
|
||||
styles: [__webpack_require__(/*! ./sell-pause.component.css */ "./src/app/sell-pause/sell-pause.component.css")]
|
||||
}),
|
||||
__metadata("design:paramtypes", [])
|
||||
], SellPauseComponent);
|
||||
return SellPauseComponent;
|
||||
}());
|
||||
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/environments/environment.ts":
|
||||
/*!*****************************************!*\
|
||||
!*** ./src/environments/environment.ts ***!
|
||||
\*****************************************/
|
||||
/*! exports provided: environment */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "environment", function() { return environment; });
|
||||
// This file can be replaced during build by using the `fileReplacements` array.
|
||||
// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.
|
||||
// The list of file replacements can be found in `angular.json`.
|
||||
var environment = {
|
||||
production: false
|
||||
};
|
||||
/*
|
||||
* In development mode, to ignore zone related error stack frames such as
|
||||
* `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can
|
||||
* import the following file, but please comment it out in production mode
|
||||
* because it will have performance impact when throw error
|
||||
*/
|
||||
// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/main.ts":
|
||||
/*!*********************!*\
|
||||
!*** ./src/main.ts ***!
|
||||
\*********************/
|
||||
/*! no exports provided */
|
||||
/***/ (function(module, __webpack_exports__, __webpack_require__) {
|
||||
|
||||
"use strict";
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @angular/core */ "./node_modules/@angular/core/fesm5/core.js");
|
||||
/* harmony import */ var _angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/platform-browser-dynamic */ "./node_modules/@angular/platform-browser-dynamic/fesm5/platform-browser-dynamic.js");
|
||||
/* harmony import */ var _app_app_module__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./app/app.module */ "./src/app/app.module.ts");
|
||||
/* harmony import */ var _environments_environment__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./environments/environment */ "./src/environments/environment.ts");
|
||||
|
||||
|
||||
|
||||
|
||||
if (_environments_environment__WEBPACK_IMPORTED_MODULE_3__["environment"].production) {
|
||||
Object(_angular_core__WEBPACK_IMPORTED_MODULE_0__["enableProdMode"])();
|
||||
}
|
||||
Object(_angular_platform_browser_dynamic__WEBPACK_IMPORTED_MODULE_1__["platformBrowserDynamic"])().bootstrapModule(_app_app_module__WEBPACK_IMPORTED_MODULE_2__["AppModule"])
|
||||
.catch(function (err) { return console.log(err); });
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 0:
|
||||
/*!***************************!*\
|
||||
!*** multi ./src/main.ts ***!
|
||||
\***************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! /var/www/html/caisse/caisse-bliss-frontend/src/main.ts */"./src/main.ts");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
},[[0,"runtime","vendor"]]]);
|
||||
//# sourceMappingURL=main.js.map
|
1
v1/old/templates_old/assets/js/build-frontend-submodule/main.js.map
Executable file
1
v1/old/templates_old/assets/js/build-frontend-submodule/main.js.map
Executable file
File diff suppressed because one or more lines are too long
5482
v1/old/templates_old/assets/js/build-frontend-submodule/polyfills.js
Executable file
5482
v1/old/templates_old/assets/js/build-frontend-submodule/polyfills.js
Executable file
File diff suppressed because it is too large
Load diff
1
v1/old/templates_old/assets/js/build-frontend-submodule/polyfills.js.map
Executable file
1
v1/old/templates_old/assets/js/build-frontend-submodule/polyfills.js.map
Executable file
File diff suppressed because one or more lines are too long
137
v1/old/templates_old/assets/js/build-frontend-submodule/runtime.js
Executable file
137
v1/old/templates_old/assets/js/build-frontend-submodule/runtime.js
Executable file
|
@ -0,0 +1,137 @@
|
|||
/******/ (function(modules) { // webpackBootstrap
|
||||
/******/ // install a JSONP callback for chunk loading
|
||||
/******/ function webpackJsonpCallback(data) {
|
||||
/******/ var chunkIds = data[0];
|
||||
/******/ var moreModules = data[1];
|
||||
/******/ var executeModules = data[2];
|
||||
/******/ // add "moreModules" to the modules object,
|
||||
/******/ // then flag all "chunkIds" as loaded and fire callback
|
||||
/******/ var moduleId, chunkId, i = 0, resolves = [];
|
||||
/******/ for(;i < chunkIds.length; i++) {
|
||||
/******/ chunkId = chunkIds[i];
|
||||
/******/ if(installedChunks[chunkId]) {
|
||||
/******/ resolves.push(installedChunks[chunkId][0]);
|
||||
/******/ }
|
||||
/******/ installedChunks[chunkId] = 0;
|
||||
/******/ }
|
||||
/******/ for(moduleId in moreModules) {
|
||||
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
||||
/******/ modules[moduleId] = moreModules[moduleId];
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ if(parentJsonpFunction) parentJsonpFunction(data);
|
||||
/******/ while(resolves.length) {
|
||||
/******/ resolves.shift()();
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // add entry modules from loaded chunk to deferred list
|
||||
/******/ deferredModules.push.apply(deferredModules, executeModules || []);
|
||||
/******/
|
||||
/******/ // run deferred modules when all chunks ready
|
||||
/******/ return checkDeferredModules();
|
||||
/******/ };
|
||||
/******/ function checkDeferredModules() {
|
||||
/******/ var result;
|
||||
/******/ for(var i = 0; i < deferredModules.length; i++) {
|
||||
/******/ var deferredModule = deferredModules[i];
|
||||
/******/ var fulfilled = true;
|
||||
/******/ for(var j = 1; j < deferredModule.length; j++) {
|
||||
/******/ var depId = deferredModule[j];
|
||||
/******/ if(installedChunks[depId] !== 0) fulfilled = false;
|
||||
/******/ }
|
||||
/******/ if(fulfilled) {
|
||||
/******/ deferredModules.splice(i--, 1);
|
||||
/******/ result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
|
||||
/******/ }
|
||||
/******/ }
|
||||
/******/ return result;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/ // The module cache
|
||||
/******/ var installedModules = {};
|
||||
/******/
|
||||
/******/ // object to store loaded and loading chunks
|
||||
/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
|
||||
/******/ // Promise = chunk loading, 0 = chunk loaded
|
||||
/******/ var installedChunks = {
|
||||
/******/ "runtime": 0
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ var deferredModules = [];
|
||||
/******/
|
||||
/******/ // The require function
|
||||
/******/ function __webpack_require__(moduleId) {
|
||||
/******/
|
||||
/******/ // Check if module is in cache
|
||||
/******/ if(installedModules[moduleId]) {
|
||||
/******/ return installedModules[moduleId].exports;
|
||||
/******/ }
|
||||
/******/ // Create a new module (and put it into the cache)
|
||||
/******/ var module = installedModules[moduleId] = {
|
||||
/******/ i: moduleId,
|
||||
/******/ l: false,
|
||||
/******/ exports: {}
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Execute the module function
|
||||
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||
/******/
|
||||
/******/ // Flag the module as loaded
|
||||
/******/ module.l = true;
|
||||
/******/
|
||||
/******/ // Return the exports of the module
|
||||
/******/ return module.exports;
|
||||
/******/ }
|
||||
/******/
|
||||
/******/
|
||||
/******/ // expose the modules object (__webpack_modules__)
|
||||
/******/ __webpack_require__.m = modules;
|
||||
/******/
|
||||
/******/ // expose the module cache
|
||||
/******/ __webpack_require__.c = installedModules;
|
||||
/******/
|
||||
/******/ // define getter function for harmony exports
|
||||
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||
/******/ Object.defineProperty(exports, name, {
|
||||
/******/ configurable: false,
|
||||
/******/ enumerable: true,
|
||||
/******/ get: getter
|
||||
/******/ });
|
||||
/******/ }
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // define __esModule on exports
|
||||
/******/ __webpack_require__.r = function(exports) {
|
||||
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||
/******/ __webpack_require__.n = function(module) {
|
||||
/******/ var getter = module && module.__esModule ?
|
||||
/******/ function getDefault() { return module['default']; } :
|
||||
/******/ function getModuleExports() { return module; };
|
||||
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||
/******/ return getter;
|
||||
/******/ };
|
||||
/******/
|
||||
/******/ // Object.prototype.hasOwnProperty.call
|
||||
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||
/******/
|
||||
/******/ // __webpack_public_path__
|
||||
/******/ __webpack_require__.p = "";
|
||||
/******/
|
||||
/******/ var jsonpArray = window["webpackJsonp"] = window["webpackJsonp"] || [];
|
||||
/******/ var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
|
||||
/******/ jsonpArray.push = webpackJsonpCallback;
|
||||
/******/ jsonpArray = jsonpArray.slice();
|
||||
/******/ for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
|
||||
/******/ var parentJsonpFunction = oldJsonpFunction;
|
||||
/******/
|
||||
/******/
|
||||
/******/ // run deferred modules from other chunks
|
||||
/******/ checkDeferredModules();
|
||||
/******/ })
|
||||
/************************************************************************/
|
||||
/******/ ([]);
|
||||
//# sourceMappingURL=runtime.js.map
|
1
v1/old/templates_old/assets/js/build-frontend-submodule/runtime.js.map
Executable file
1
v1/old/templates_old/assets/js/build-frontend-submodule/runtime.js.map
Executable file
File diff suppressed because one or more lines are too long
548
v1/old/templates_old/assets/js/build-frontend-submodule/styles.js
Executable file
548
v1/old/templates_old/assets/js/build-frontend-submodule/styles.js
Executable file
|
@ -0,0 +1,548 @@
|
|||
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["styles"],{
|
||||
|
||||
/***/ "./node_modules/raw-loader/index.js!./node_modules/postcss-loader/lib/index.js??embedded!./src/styles.css":
|
||||
/*!**********************************************************************************************!*\
|
||||
!*** ./node_modules/raw-loader!./node_modules/postcss-loader/lib??embedded!./src/styles.css ***!
|
||||
\**********************************************************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
module.exports = "/* You can add global styles to this file, and also import other style files */\n"
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/style-loader/lib/addStyles.js":
|
||||
/*!****************************************************!*\
|
||||
!*** ./node_modules/style-loader/lib/addStyles.js ***!
|
||||
\****************************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
/*
|
||||
MIT License http://www.opensource.org/licenses/mit-license.php
|
||||
Author Tobias Koppers @sokra
|
||||
*/
|
||||
|
||||
var stylesInDom = {};
|
||||
|
||||
var memoize = function (fn) {
|
||||
var memo;
|
||||
|
||||
return function () {
|
||||
if (typeof memo === "undefined") memo = fn.apply(this, arguments);
|
||||
return memo;
|
||||
};
|
||||
};
|
||||
|
||||
var isOldIE = memoize(function () {
|
||||
// Test for IE <= 9 as proposed by Browserhacks
|
||||
// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
|
||||
// Tests for existence of standard globals is to allow style-loader
|
||||
// to operate correctly into non-standard environments
|
||||
// @see https://github.com/webpack-contrib/style-loader/issues/177
|
||||
return window && document && document.all && !window.atob;
|
||||
});
|
||||
|
||||
var getTarget = function (target) {
|
||||
return document.querySelector(target);
|
||||
};
|
||||
|
||||
var getElement = (function (fn) {
|
||||
var memo = {};
|
||||
|
||||
return function(target) {
|
||||
// If passing function in options, then use it for resolve "head" element.
|
||||
// Useful for Shadow Root style i.e
|
||||
// {
|
||||
// insertInto: function () { return document.querySelector("#foo").shadowRoot }
|
||||
// }
|
||||
if (typeof target === 'function') {
|
||||
return target();
|
||||
}
|
||||
if (typeof memo[target] === "undefined") {
|
||||
var styleTarget = getTarget.call(this, target);
|
||||
// Special case to return head of iframe instead of iframe itself
|
||||
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
|
||||
try {
|
||||
// This will throw an exception if access to iframe is blocked
|
||||
// due to cross-origin restrictions
|
||||
styleTarget = styleTarget.contentDocument.head;
|
||||
} catch(e) {
|
||||
styleTarget = null;
|
||||
}
|
||||
}
|
||||
memo[target] = styleTarget;
|
||||
}
|
||||
return memo[target]
|
||||
};
|
||||
})();
|
||||
|
||||
var singleton = null;
|
||||
var singletonCounter = 0;
|
||||
var stylesInsertedAtTop = [];
|
||||
|
||||
var fixUrls = __webpack_require__(/*! ./urls */ "./node_modules/style-loader/lib/urls.js");
|
||||
|
||||
module.exports = function(list, options) {
|
||||
if (typeof DEBUG !== "undefined" && DEBUG) {
|
||||
if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
|
||||
}
|
||||
|
||||
options = options || {};
|
||||
|
||||
options.attrs = typeof options.attrs === "object" ? options.attrs : {};
|
||||
|
||||
// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
|
||||
// tags it will allow on a page
|
||||
if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();
|
||||
|
||||
// By default, add <style> tags to the <head> element
|
||||
if (!options.insertInto) options.insertInto = "head";
|
||||
|
||||
// By default, add <style> tags to the bottom of the target
|
||||
if (!options.insertAt) options.insertAt = "bottom";
|
||||
|
||||
var styles = listToStyles(list, options);
|
||||
|
||||
addStylesToDom(styles, options);
|
||||
|
||||
return function update (newList) {
|
||||
var mayRemove = [];
|
||||
|
||||
for (var i = 0; i < styles.length; i++) {
|
||||
var item = styles[i];
|
||||
var domStyle = stylesInDom[item.id];
|
||||
|
||||
domStyle.refs--;
|
||||
mayRemove.push(domStyle);
|
||||
}
|
||||
|
||||
if(newList) {
|
||||
var newStyles = listToStyles(newList, options);
|
||||
addStylesToDom(newStyles, options);
|
||||
}
|
||||
|
||||
for (var i = 0; i < mayRemove.length; i++) {
|
||||
var domStyle = mayRemove[i];
|
||||
|
||||
if(domStyle.refs === 0) {
|
||||
for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
|
||||
|
||||
delete stylesInDom[domStyle.id];
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
function addStylesToDom (styles, options) {
|
||||
for (var i = 0; i < styles.length; i++) {
|
||||
var item = styles[i];
|
||||
var domStyle = stylesInDom[item.id];
|
||||
|
||||
if(domStyle) {
|
||||
domStyle.refs++;
|
||||
|
||||
for(var j = 0; j < domStyle.parts.length; j++) {
|
||||
domStyle.parts[j](item.parts[j]);
|
||||
}
|
||||
|
||||
for(; j < item.parts.length; j++) {
|
||||
domStyle.parts.push(addStyle(item.parts[j], options));
|
||||
}
|
||||
} else {
|
||||
var parts = [];
|
||||
|
||||
for(var j = 0; j < item.parts.length; j++) {
|
||||
parts.push(addStyle(item.parts[j], options));
|
||||
}
|
||||
|
||||
stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function listToStyles (list, options) {
|
||||
var styles = [];
|
||||
var newStyles = {};
|
||||
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var item = list[i];
|
||||
var id = options.base ? item[0] + options.base : item[0];
|
||||
var css = item[1];
|
||||
var media = item[2];
|
||||
var sourceMap = item[3];
|
||||
var part = {css: css, media: media, sourceMap: sourceMap};
|
||||
|
||||
if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
|
||||
else newStyles[id].parts.push(part);
|
||||
}
|
||||
|
||||
return styles;
|
||||
}
|
||||
|
||||
function insertStyleElement (options, style) {
|
||||
var target = getElement(options.insertInto)
|
||||
|
||||
if (!target) {
|
||||
throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
|
||||
}
|
||||
|
||||
var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
|
||||
|
||||
if (options.insertAt === "top") {
|
||||
if (!lastStyleElementInsertedAtTop) {
|
||||
target.insertBefore(style, target.firstChild);
|
||||
} else if (lastStyleElementInsertedAtTop.nextSibling) {
|
||||
target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
|
||||
} else {
|
||||
target.appendChild(style);
|
||||
}
|
||||
stylesInsertedAtTop.push(style);
|
||||
} else if (options.insertAt === "bottom") {
|
||||
target.appendChild(style);
|
||||
} else if (typeof options.insertAt === "object" && options.insertAt.before) {
|
||||
var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
|
||||
target.insertBefore(style, nextSibling);
|
||||
} else {
|
||||
throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
|
||||
}
|
||||
}
|
||||
|
||||
function removeStyleElement (style) {
|
||||
if (style.parentNode === null) return false;
|
||||
style.parentNode.removeChild(style);
|
||||
|
||||
var idx = stylesInsertedAtTop.indexOf(style);
|
||||
if(idx >= 0) {
|
||||
stylesInsertedAtTop.splice(idx, 1);
|
||||
}
|
||||
}
|
||||
|
||||
function createStyleElement (options) {
|
||||
var style = document.createElement("style");
|
||||
|
||||
if(options.attrs.type === undefined) {
|
||||
options.attrs.type = "text/css";
|
||||
}
|
||||
|
||||
addAttrs(style, options.attrs);
|
||||
insertStyleElement(options, style);
|
||||
|
||||
return style;
|
||||
}
|
||||
|
||||
function createLinkElement (options) {
|
||||
var link = document.createElement("link");
|
||||
|
||||
if(options.attrs.type === undefined) {
|
||||
options.attrs.type = "text/css";
|
||||
}
|
||||
options.attrs.rel = "stylesheet";
|
||||
|
||||
addAttrs(link, options.attrs);
|
||||
insertStyleElement(options, link);
|
||||
|
||||
return link;
|
||||
}
|
||||
|
||||
function addAttrs (el, attrs) {
|
||||
Object.keys(attrs).forEach(function (key) {
|
||||
el.setAttribute(key, attrs[key]);
|
||||
});
|
||||
}
|
||||
|
||||
function addStyle (obj, options) {
|
||||
var style, update, remove, result;
|
||||
|
||||
// If a transform function was defined, run it on the css
|
||||
if (options.transform && obj.css) {
|
||||
result = options.transform(obj.css);
|
||||
|
||||
if (result) {
|
||||
// If transform returns a value, use that instead of the original css.
|
||||
// This allows running runtime transformations on the css.
|
||||
obj.css = result;
|
||||
} else {
|
||||
// If the transform function returns a falsy value, don't add this css.
|
||||
// This allows conditional loading of css
|
||||
return function() {
|
||||
// noop
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
if (options.singleton) {
|
||||
var styleIndex = singletonCounter++;
|
||||
|
||||
style = singleton || (singleton = createStyleElement(options));
|
||||
|
||||
update = applyToSingletonTag.bind(null, style, styleIndex, false);
|
||||
remove = applyToSingletonTag.bind(null, style, styleIndex, true);
|
||||
|
||||
} else if (
|
||||
obj.sourceMap &&
|
||||
typeof URL === "function" &&
|
||||
typeof URL.createObjectURL === "function" &&
|
||||
typeof URL.revokeObjectURL === "function" &&
|
||||
typeof Blob === "function" &&
|
||||
typeof btoa === "function"
|
||||
) {
|
||||
style = createLinkElement(options);
|
||||
update = updateLink.bind(null, style, options);
|
||||
remove = function () {
|
||||
removeStyleElement(style);
|
||||
|
||||
if(style.href) URL.revokeObjectURL(style.href);
|
||||
};
|
||||
} else {
|
||||
style = createStyleElement(options);
|
||||
update = applyToTag.bind(null, style);
|
||||
remove = function () {
|
||||
removeStyleElement(style);
|
||||
};
|
||||
}
|
||||
|
||||
update(obj);
|
||||
|
||||
return function updateStyle (newObj) {
|
||||
if (newObj) {
|
||||
if (
|
||||
newObj.css === obj.css &&
|
||||
newObj.media === obj.media &&
|
||||
newObj.sourceMap === obj.sourceMap
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
update(obj = newObj);
|
||||
} else {
|
||||
remove();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
var replaceText = (function () {
|
||||
var textStore = [];
|
||||
|
||||
return function (index, replacement) {
|
||||
textStore[index] = replacement;
|
||||
|
||||
return textStore.filter(Boolean).join('\n');
|
||||
};
|
||||
})();
|
||||
|
||||
function applyToSingletonTag (style, index, remove, obj) {
|
||||
var css = remove ? "" : obj.css;
|
||||
|
||||
if (style.styleSheet) {
|
||||
style.styleSheet.cssText = replaceText(index, css);
|
||||
} else {
|
||||
var cssNode = document.createTextNode(css);
|
||||
var childNodes = style.childNodes;
|
||||
|
||||
if (childNodes[index]) style.removeChild(childNodes[index]);
|
||||
|
||||
if (childNodes.length) {
|
||||
style.insertBefore(cssNode, childNodes[index]);
|
||||
} else {
|
||||
style.appendChild(cssNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function applyToTag (style, obj) {
|
||||
var css = obj.css;
|
||||
var media = obj.media;
|
||||
|
||||
if(media) {
|
||||
style.setAttribute("media", media)
|
||||
}
|
||||
|
||||
if(style.styleSheet) {
|
||||
style.styleSheet.cssText = css;
|
||||
} else {
|
||||
while(style.firstChild) {
|
||||
style.removeChild(style.firstChild);
|
||||
}
|
||||
|
||||
style.appendChild(document.createTextNode(css));
|
||||
}
|
||||
}
|
||||
|
||||
function updateLink (link, options, obj) {
|
||||
var css = obj.css;
|
||||
var sourceMap = obj.sourceMap;
|
||||
|
||||
/*
|
||||
If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
|
||||
and there is no publicPath defined then lets turn convertToAbsoluteUrls
|
||||
on by default. Otherwise default to the convertToAbsoluteUrls option
|
||||
directly
|
||||
*/
|
||||
var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
|
||||
|
||||
if (options.convertToAbsoluteUrls || autoFixUrls) {
|
||||
css = fixUrls(css);
|
||||
}
|
||||
|
||||
if (sourceMap) {
|
||||
// http://stackoverflow.com/a/26603875
|
||||
css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
|
||||
}
|
||||
|
||||
var blob = new Blob([css], { type: "text/css" });
|
||||
|
||||
var oldSrc = link.href;
|
||||
|
||||
link.href = URL.createObjectURL(blob);
|
||||
|
||||
if(oldSrc) URL.revokeObjectURL(oldSrc);
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/style-loader/lib/urls.js":
|
||||
/*!***********************************************!*\
|
||||
!*** ./node_modules/style-loader/lib/urls.js ***!
|
||||
\***********************************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports) {
|
||||
|
||||
|
||||
/**
|
||||
* When source maps are enabled, `style-loader` uses a link element with a data-uri to
|
||||
* embed the css on the page. This breaks all relative urls because now they are relative to a
|
||||
* bundle instead of the current page.
|
||||
*
|
||||
* One solution is to only use full urls, but that may be impossible.
|
||||
*
|
||||
* Instead, this function "fixes" the relative urls to be absolute according to the current page location.
|
||||
*
|
||||
* A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = function (css) {
|
||||
// get current location
|
||||
var location = typeof window !== "undefined" && window.location;
|
||||
|
||||
if (!location) {
|
||||
throw new Error("fixUrls requires window.location");
|
||||
}
|
||||
|
||||
// blank or null?
|
||||
if (!css || typeof css !== "string") {
|
||||
return css;
|
||||
}
|
||||
|
||||
var baseUrl = location.protocol + "//" + location.host;
|
||||
var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
|
||||
|
||||
// convert each url(...)
|
||||
/*
|
||||
This regular expression is just a way to recursively match brackets within
|
||||
a string.
|
||||
|
||||
/url\s*\( = Match on the word "url" with any whitespace after it and then a parens
|
||||
( = Start a capturing group
|
||||
(?: = Start a non-capturing group
|
||||
[^)(] = Match anything that isn't a parentheses
|
||||
| = OR
|
||||
\( = Match a start parentheses
|
||||
(?: = Start another non-capturing groups
|
||||
[^)(]+ = Match anything that isn't a parentheses
|
||||
| = OR
|
||||
\( = Match a start parentheses
|
||||
[^)(]* = Match anything that isn't a parentheses
|
||||
\) = Match a end parentheses
|
||||
) = End Group
|
||||
*\) = Match anything and then a close parens
|
||||
) = Close non-capturing group
|
||||
* = Match anything
|
||||
) = Close capturing group
|
||||
\) = Match a close parens
|
||||
|
||||
/gi = Get all matches, not the first. Be case insensitive.
|
||||
*/
|
||||
var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
|
||||
// strip quotes (if they exist)
|
||||
var unquotedOrigUrl = origUrl
|
||||
.trim()
|
||||
.replace(/^"(.*)"$/, function(o, $1){ return $1; })
|
||||
.replace(/^'(.*)'$/, function(o, $1){ return $1; });
|
||||
|
||||
// already a full url? no change
|
||||
if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) {
|
||||
return fullMatch;
|
||||
}
|
||||
|
||||
// convert the url to a full url
|
||||
var newUrl;
|
||||
|
||||
if (unquotedOrigUrl.indexOf("//") === 0) {
|
||||
//TODO: should we add protocol?
|
||||
newUrl = unquotedOrigUrl;
|
||||
} else if (unquotedOrigUrl.indexOf("/") === 0) {
|
||||
// path should be relative to the base url
|
||||
newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
|
||||
} else {
|
||||
// path should be relative to current directory
|
||||
newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
|
||||
}
|
||||
|
||||
// send back the fixed url(...)
|
||||
return "url(" + JSON.stringify(newUrl) + ")";
|
||||
});
|
||||
|
||||
// send back the fixed css
|
||||
return fixedCss;
|
||||
};
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./src/styles.css":
|
||||
/*!************************!*\
|
||||
!*** ./src/styles.css ***!
|
||||
\************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
|
||||
var content = __webpack_require__(/*! !../node_modules/raw-loader!../node_modules/postcss-loader/lib??embedded!./styles.css */ "./node_modules/raw-loader/index.js!./node_modules/postcss-loader/lib/index.js??embedded!./src/styles.css");
|
||||
|
||||
if(typeof content === 'string') content = [[module.i, content, '']];
|
||||
|
||||
var transform;
|
||||
var insertInto;
|
||||
|
||||
|
||||
|
||||
var options = {"hmr":true}
|
||||
|
||||
options.transform = transform
|
||||
options.insertInto = undefined;
|
||||
|
||||
var update = __webpack_require__(/*! ../node_modules/style-loader/lib/addStyles.js */ "./node_modules/style-loader/lib/addStyles.js")(content, options);
|
||||
|
||||
if(content.locals) module.exports = content.locals;
|
||||
|
||||
if(false) {}
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 2:
|
||||
/*!******************************!*\
|
||||
!*** multi ./src/styles.css ***!
|
||||
\******************************/
|
||||
/*! no static exports found */
|
||||
/***/ (function(module, exports, __webpack_require__) {
|
||||
|
||||
module.exports = __webpack_require__(/*! /var/www/html/caisse/caisse-bliss-frontend/src/styles.css */"./src/styles.css");
|
||||
|
||||
|
||||
/***/ })
|
||||
|
||||
},[[2,"runtime"]]]);
|
||||
//# sourceMappingURL=styles.js.map
|
1
v1/old/templates_old/assets/js/build-frontend-submodule/styles.js.map
Executable file
1
v1/old/templates_old/assets/js/build-frontend-submodule/styles.js.map
Executable file
File diff suppressed because one or more lines are too long
61028
v1/old/templates_old/assets/js/build-frontend-submodule/vendor.js
Executable file
61028
v1/old/templates_old/assets/js/build-frontend-submodule/vendor.js
Executable file
File diff suppressed because one or more lines are too long
1
v1/old/templates_old/assets/js/build-frontend-submodule/vendor.js.map
Executable file
1
v1/old/templates_old/assets/js/build-frontend-submodule/vendor.js.map
Executable file
File diff suppressed because one or more lines are too long
0
v1/old/templates_old/assets/js/parts/caisseCtrl.js
Executable file
0
v1/old/templates_old/assets/js/parts/caisseCtrl.js
Executable file
11
v1/old/templates_old/assets/js/parts/dashboard.js
Executable file
11
v1/old/templates_old/assets/js/parts/dashboard.js
Executable file
|
@ -0,0 +1,11 @@
|
|||
/**
|
||||
* test to import things
|
||||
*/
|
||||
export class DashboardStuff{
|
||||
sayHi(){
|
||||
console.log('hiiiiiiii! from dashboard stuff');
|
||||
}
|
||||
sayHo(){
|
||||
console.log('hoooo');
|
||||
}
|
||||
};
|
98
v1/old/templates_old/assets/js/parts/globalActions.js
Normal file
98
v1/old/templates_old/assets/js/parts/globalActions.js
Normal file
|
@ -0,0 +1,98 @@
|
|||
|
||||
|
||||
let introJs = require('intro.js');
|
||||
var $ = require('jquery');
|
||||
$(document).ready(function () {
|
||||
let massimportExample = 'catégorie: livre\n' +
|
||||
' les moutaines;5€\n' +
|
||||
' la laine des moutons;6€\n' +
|
||||
' star wars spécial noël;7€\n' +
|
||||
'catégorie: poster\n' +
|
||||
' super bannière A2;10€\n' +
|
||||
' Sébastien Chabal sexy;10€\n' +
|
||||
'catégorie: dessin à la demande\n' +
|
||||
' dessin A4 crayon;20€\n' +
|
||||
' dessin A4 aquarelle;150€';
|
||||
|
||||
$('[data-toggle="popover"]').popover();
|
||||
$('#menu_button').on('click', function () {
|
||||
$('#menu-dashboard').toggleClass('shown');
|
||||
});
|
||||
// use example in mass import
|
||||
$('#use_example').on('click', function () {
|
||||
$('#produits').val(massimportExample);
|
||||
// $('#filling_zone input').click();
|
||||
});
|
||||
// intro js
|
||||
$('#introjs_start').on('click', function () {
|
||||
|
||||
function startIntro() {
|
||||
var intro = introJs();
|
||||
intro.setOptions({
|
||||
steps: [
|
||||
{
|
||||
element: document.querySelector('#caisse-now'),
|
||||
position: 'right',
|
||||
intro : "Ceci est l'écran principal de la CaisseBliss, <strong>votre tableau de bord</strong> liste les produits que vous souhaitez vendre actuellement. Utilisez les flèches du clavier pour continuer la visite guidée."
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#main_options'),
|
||||
position: 'bottom',
|
||||
intro : "Les options d'affichage des boutons de produit permettent de visualiser ou non les stocks restants de vos produits, le nombre de produit vendus sur le festival en cours, et d'activer ou non le bouton de caddie de <strong>vente express</strong> à utiliser pour les clients qui n'achètent qu'un seul produit à la fois."
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#client-now'),
|
||||
position: 'bottom',
|
||||
intro : "<strong>L'espace commentaire </strong> lié à la vente en cours vous permet de prendre une note que vous retrouverez plus tard dans votre historique de vente. Il peut servir à savoir à qui vous faites une dédicace dans un livre par exemple."
|
||||
},{
|
||||
element: document.querySelector('#listing-products'),
|
||||
intro : "<strong>La liste des produits </strong> les range par colonne de catégorie. Vous n'avez qu'a appuyer sur un produit pour l'ajouter à la liste de vente en cours. Et vous pouvez scroller horizontalement vos colonnes"
|
||||
},{
|
||||
element: document.querySelector('#sellings'),
|
||||
intro : "<strong>La liste de vente </strong> permet de modifier le prix des produits si vous faites des remises spéciales pour un client particulier, et vous calcule le rendu de monnaie si le client ne paie pas l'appoint."
|
||||
},{
|
||||
element: document.querySelector('#choice-categories'),
|
||||
intro : "<strong>Les options de catégories </strong> permettent d'afficher ou masquer certaines catégories si vous ne vendez pas tous vos produits à chaque festival."
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#menu-dashboard'),
|
||||
intro : "<strong>Le menu latéral</strong> vous permet de gérer vos produits, stocks, catégories. Conforme au RGPD par design de logiciel libre, Caisse Bliss vous permet d'exporter vos données et respecte votre vie privée"
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#menu_festivals'),
|
||||
position: 'right',
|
||||
intro : "<strong>Les festivals</strong> vous permettent de séparer vos ventes lors de différents évènements et d'obtenir des statistiques détaillées afin de vous permettre de connaître la rentabilité de chaque évènement"
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#menu_series'),
|
||||
position: 'right',
|
||||
intro : "<strong>Les séries de festivals</strong> permettent de relier des évènements similaires d'une édition à une autre. Par exemple Festival Harajuku 2018 et 2019, Japan Expo de toutes les années. Et ce afin de pouvoir voir des statistiques groupées dans la partie Historique."
|
||||
},
|
||||
{
|
||||
element: document.querySelector('#menu_previsionnel'),
|
||||
position: 'right',
|
||||
intro : "<strong>La page de prévisionnel</strong> n'est pas reliée à vos ventes de produits mais permet de voir si votre commerce est viable en fonction de ce que vous gagnez et dépensez habituellement. Toujours utile."
|
||||
}, {
|
||||
element: document.querySelector('.user-info-link'),
|
||||
position: 'right',
|
||||
intro : "Vous pouvez modifier vos informations de compte utilisateur (email, pseudo, mot de passe...) en cliquant sur votre pseudo"
|
||||
},
|
||||
]
|
||||
});
|
||||
|
||||
intro.start();
|
||||
}
|
||||
startIntro()
|
||||
})
|
||||
|
||||
// demo login
|
||||
$('#demo_login_btn').on('click', function (){
|
||||
$('#username').val('demo');
|
||||
$('#password').val('demo');
|
||||
$('#_submit').click();
|
||||
|
||||
})
|
||||
// $('#introjs_start').click();
|
||||
let inputClient = document.querySelector('.client-now input');
|
||||
inputClient ? inputClient.focus() : false;
|
||||
});
|
499
v1/old/templates_old/assets/js/parts/main.js
Executable file
499
v1/old/templates_old/assets/js/parts/main.js
Executable file
|
@ -0,0 +1,499 @@
|
|||
require('../../../node_modules/canvasjs/dist/canvasjs.3');
|
||||
|
||||
// JS is equivalent to the normal "bootstrap" package
|
||||
// no need to set this to a variable, just require it
|
||||
require('bootstrap-sass');
|
||||
// or you can include specific pieces
|
||||
// require('bootstrap-sass/javascripts/bootstrap/tooltip');
|
||||
// require('bootstrap-sass/javascripts/bootstrap/popover');
|
||||
|
||||
require('./globalActions');
|
||||
require('./dashboard');
|
||||
var PrevisionnelCtrl = require('./previsionnel');
|
||||
|
||||
var stuff = ['initialstuff'];
|
||||
|
||||
// TODO split controllers in other files
|
||||
angular
|
||||
.module('caisse', [])
|
||||
.controller('CaisseCtrl', ['$scope', '$http', '$timeout', '$rootScope', function ($scope, $http, $timeout,$rootScope) {
|
||||
$scope.productsFromDB = []; // loaded products
|
||||
$scope.categories = []; // product categories
|
||||
$scope.sellingComment = ""; // comment about the client or the current selling
|
||||
$scope.initLoadDone = false; // becames true after first init of product loading
|
||||
$scope.recentSellings = [];
|
||||
$scope.lesParams = {};
|
||||
$scope.countProductsSoldForActiveFestival = {};
|
||||
$scope.simpleDisplay = false;
|
||||
$scope.paidAmount = 0;
|
||||
$scope.pausedSelling = [];
|
||||
$scope.show_config = {
|
||||
expressSelling: true,
|
||||
stock_count: false,
|
||||
sold : false,
|
||||
};
|
||||
$scope.activeItemsSold = []; // list of products ID to sell
|
||||
$scope.activeSelling = []; // list of products to sell
|
||||
$scope.activeSellingFiltered = []; // list of products to sell
|
||||
$scope.activeFestival = { // an event where selling take place
|
||||
id : null,
|
||||
name : "le festival",
|
||||
productComment : "",
|
||||
dateCreation : new Date(),
|
||||
chiffreAffaire: 0,
|
||||
clientsCount : 0,
|
||||
commentaire : ""
|
||||
};
|
||||
/**
|
||||
* change to simple display
|
||||
*/
|
||||
$scope.toggleSimpleDisplay = function () {
|
||||
// debugger;
|
||||
$scope.simpleDisplay = !$scope.simpleDisplay;
|
||||
}
|
||||
/**
|
||||
* set the right paid amount
|
||||
*/
|
||||
$scope.setRightAmountPaid = function () {
|
||||
// debugger;
|
||||
$scope.paidAmount += $scope.sumOfList($scope.activeSelling);
|
||||
}
|
||||
/**
|
||||
* deduplicate the active selling items in the view,
|
||||
* show a count for each of them when there are more than one
|
||||
*/
|
||||
$scope.refreshDeduplicateSellings = () => {
|
||||
let soldObjectsIdsCount = {}
|
||||
$scope.activeSellingFiltered = {};
|
||||
|
||||
$scope.activeSelling.forEach(elem => {
|
||||
let groupId = elem.id;
|
||||
let group = soldObjectsIdsCount[groupId];
|
||||
if (group) { // sort elements by the product id corresponding
|
||||
group.count++;
|
||||
group.totalPrice += (elem.price * 1);
|
||||
group.sellings.push(elem);
|
||||
} else {
|
||||
|
||||
soldObjectsIdsCount[groupId] = {
|
||||
groupId : groupId,
|
||||
count : 1,
|
||||
name : elem.name,
|
||||
unitPrice : elem.price * 1,
|
||||
totalPrice: elem.price * 1,
|
||||
sellings : [elem],
|
||||
}
|
||||
}
|
||||
});
|
||||
$scope.activeSellingFiltered = soldObjectsIdsCount;
|
||||
$scope.setRightAmountPaid();
|
||||
};
|
||||
|
||||
/**
|
||||
* get the sum of products prices
|
||||
* @param list
|
||||
* @returns {number}
|
||||
*/
|
||||
$scope.sumOfList = function (list) {
|
||||
let counter = 0;
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
counter += list[i].price * 1;
|
||||
}
|
||||
return counter;
|
||||
};
|
||||
/**
|
||||
* sum of current selling list prices
|
||||
* @returns {number}
|
||||
* @constructor
|
||||
*/
|
||||
$scope.CurrentSellingTotal = function () {
|
||||
return $scope.sumOfList($scope.activeSelling);
|
||||
};
|
||||
|
||||
$scope.categoriesVisibleCount = function () {
|
||||
let count = 0;
|
||||
$scope.categories.forEach(function (elem) {
|
||||
elem.hidden ? count++ : "";
|
||||
});
|
||||
return count;
|
||||
}
|
||||
|
||||
$scope.regenActiveSellingIds = function () {
|
||||
$scope.activeItemsSold = [];
|
||||
$scope.paidAmount = 0;
|
||||
for (let obj in $scope.activeSelling) {
|
||||
$scope.activeItemsSold.push(obj.id);
|
||||
}
|
||||
};
|
||||
$scope.stuff = stuff;
|
||||
$scope.setActiveSelling = function (selling) {
|
||||
$scope.activeSelling = selling;
|
||||
};
|
||||
$scope.pauseSelling = function (selling) {
|
||||
$scope.pausedSelling.push(selling);
|
||||
};
|
||||
/**
|
||||
* add to current sell list
|
||||
* @param product
|
||||
*/
|
||||
$scope.addProduct = function (product) {
|
||||
product.stockCount--;
|
||||
product.enabled = true;
|
||||
$scope.activeSelling.push(product);
|
||||
$scope.activeItemsSold.push(product.id);
|
||||
$scope.regenActiveSellingIds();
|
||||
$scope.refreshDeduplicateSellings();
|
||||
$scope.setRightAmountPaid();
|
||||
};
|
||||
/**
|
||||
* remove from current sell list
|
||||
* @param product
|
||||
*/
|
||||
$scope.removeProduct = function (product, index) {
|
||||
product.stockCount++;
|
||||
$scope.activeSelling.splice($index, 1);
|
||||
$scope.regenActiveSellingIds();
|
||||
$scope.refreshDeduplicateSellings();
|
||||
};
|
||||
/**
|
||||
* remove all products of a certain group id in the active Selling
|
||||
* @param productId
|
||||
* @returns {*}
|
||||
*/
|
||||
$scope.removeGroupeProducts = function (productId) {
|
||||
console.log("##### removeGroupeProducts", productId);
|
||||
console.log("$scope.activeSelling", $scope.activeSelling);
|
||||
$scope.activeSelling = $scope.activeSelling.filter(elem => elem.id != productId)
|
||||
console.log("$scope.activeSelling", $scope.activeSelling);
|
||||
$scope.regenActiveSellingIds();
|
||||
$scope.refreshDeduplicateSellings();
|
||||
}
|
||||
$scope.removeAll = function () {
|
||||
$scope.categories.forEach(category => {
|
||||
if (category.products && category.products.length) {
|
||||
|
||||
category.products.forEach(product => {
|
||||
product.enabled = false
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
$scope.activeSelling = [];
|
||||
$scope.regenActiveSellingIds();
|
||||
$scope.refreshDeduplicateSellings();
|
||||
};
|
||||
$scope.pauseSelling = function () {
|
||||
$scope.pausedSelling.push(angular.copy($scope.activeSelling));
|
||||
$scope.activeSelling = [];
|
||||
};
|
||||
$scope.setBackPausedSelling = function (sellingList, index) {
|
||||
$scope.activeSelling = angular.copy(sellingList);
|
||||
$scope.pausedSelling.splice(index, 1);
|
||||
};
|
||||
|
||||
$scope.clearSellingComment = function () {
|
||||
console.log(' $scope.sellingComment', $scope.sellingComment);
|
||||
// $scope.sellingComment = '';
|
||||
// document.querySelector('.client-now input').focus();
|
||||
document.querySelector('.client-now input').select();
|
||||
};
|
||||
$scope.clearCurrentSelling = function () {
|
||||
$scope.paidAmount = 0;
|
||||
$scope.clearSellingComment();
|
||||
$scope.activeSelling = [];
|
||||
$scope.removeAll();
|
||||
};
|
||||
|
||||
// http related calls
|
||||
$scope.fetchProductsFromDB = function () {
|
||||
console.log('fetch products...');
|
||||
$http.get('logged/get-my-products').then((rep) => {
|
||||
|
||||
console.log('ok', rep);
|
||||
customCategories = [];
|
||||
for (let c of rep.data.categories) {
|
||||
c.hidden = false;
|
||||
customCategories.push(c);
|
||||
}
|
||||
console.log('customCategories', customCategories);
|
||||
$scope.categories = customCategories;
|
||||
$scope.productsFromDB = customCategories;
|
||||
// $scope.recentSellings = rep.data.history;
|
||||
// festoche
|
||||
$scope.activeFestival.id = rep.data.lastFestival.id;
|
||||
$scope.activeFestival.name = rep.data.lastFestival.name;
|
||||
$scope.activeFestival.dateCreation = rep.data.lastFestival.dateCreation;
|
||||
$scope.activeFestival.commentaire = rep.data.lastFestival.commentaire;
|
||||
$scope.activeFestival.chiffreAffaire = rep.data.lastFestival.chiffreAffaire;
|
||||
$scope.activeFestival.fondDeCaisseAvant = rep.data.lastFestival.fondDeCaisseAvant;
|
||||
$scope.activeFestival.fondDeCaisseApres = rep.data.lastFestival.fondDeCaisseApres;
|
||||
$scope.activeFestival.clientsCount = rep.data.lastFestival.clientsCount;
|
||||
// stat count for items
|
||||
$scope.countProductsSoldForActiveFestival = rep.data.lastFestival.sold;
|
||||
console.log(' $scope.countProductsSoldForActiveFestival', $scope.countProductsSoldForActiveFestival);
|
||||
//done
|
||||
$scope.initLoadDone = true;
|
||||
}, (err) => {
|
||||
console.log(err);
|
||||
$scope.initLoadDone = true;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* sell one product, assuming the client has the right amount of money
|
||||
* @param product
|
||||
*/
|
||||
$scope.expressSell = function (product) {
|
||||
$scope.removeAll();
|
||||
$scope.addProduct(product);
|
||||
$scope.sendForm();
|
||||
};
|
||||
$scope.recentId = 0;
|
||||
$scope.logger = function (stuff) {
|
||||
console.log('logger #####', stuff);
|
||||
};
|
||||
$scope.sendForm = function () {
|
||||
let sellingComment = $scope.sellingComment;
|
||||
$scope.sellingComment = sellingComment;
|
||||
console.log('########### SEND FORM');
|
||||
console.log('$scope.sellingComment', $scope.sellingComment);
|
||||
let lesParams = {
|
||||
paidByClient : $scope.paidAmount,
|
||||
sellingComment: $scope.sellingComment,
|
||||
activeSelling : $scope.activeSelling,
|
||||
activeFestival: $scope.activeFestival
|
||||
};
|
||||
$scope.recentSellings.push({
|
||||
id : $scope.recentId++,
|
||||
amount : $scope.CurrentSellingTotal(),
|
||||
paidAmount: $scope.paidAmount,
|
||||
products :
|
||||
angular
|
||||
.copy($scope.activeSelling)
|
||||
});
|
||||
$scope.lesParams = lesParams;
|
||||
$http({
|
||||
method : 'POST',
|
||||
url : 'logged/add-selling',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data : lesParams // pass in data as strings
|
||||
}).then(function (rep) {
|
||||
|
||||
console.log('########### OK form',rep);
|
||||
// if successful, bind success message to message
|
||||
$scope.successMessage = rep.data.message;
|
||||
$scope.activeFestival.chiffreAffaire = rep.data.newChiffreAffaire;
|
||||
$scope.activeFestival.clientsCount = rep.data.clientsCount;
|
||||
$scope.countProductsSoldForActiveFestival = rep.data.activeFestival.sold;
|
||||
$scope.showTemporaryMessage();
|
||||
$scope.clearCurrentSelling();
|
||||
console.log(rep);
|
||||
if (!rep.success) {
|
||||
// if not successful, bind errors to error variables
|
||||
$scope.errors = rep.errors;
|
||||
}
|
||||
}, function (rep) {
|
||||
console.log('nope! ', rep.data);
|
||||
$scope.showTemporaryErrorMessage();
|
||||
})
|
||||
;
|
||||
};
|
||||
|
||||
$scope.sellingOk = false;
|
||||
$scope.sellingError = false;
|
||||
$scope.tempMessage = {};
|
||||
$scope.showTemporaryMessage = function () {
|
||||
console.log('show message');
|
||||
if ($scope.sellingOk) {
|
||||
$scope.sellingOk = false;
|
||||
return;
|
||||
}
|
||||
$scope.sellingOk = true;
|
||||
$timeout.cancel($scope.tempMessage);
|
||||
$scope.tempMessage = $timeout(function () {
|
||||
console.log('hide message');
|
||||
$scope.sellingOk = false;
|
||||
}, 2000)
|
||||
};
|
||||
$scope.showTemporaryErrorMessage = function () {
|
||||
console.log('show message');
|
||||
if ($scope.sellingError) {
|
||||
$scope.sellingError = false;
|
||||
return;
|
||||
}
|
||||
$scope.sellingError = true;
|
||||
$timeout.cancel($scope.tempMessage);
|
||||
$scope.tempMessage = $timeout(function () {
|
||||
console.log('hide message');
|
||||
$scope.sellingError = false;
|
||||
}, 2000)
|
||||
};
|
||||
$scope.init = (function () {
|
||||
$scope.fetchProductsFromDB();
|
||||
})();
|
||||
}])
|
||||
.controller('previsionnelCtrl', ['$scope', '$http', '$timeout', function ($scope, $http, $timeout) {
|
||||
|
||||
$scope.config = {
|
||||
initialLoadingDone : false,
|
||||
loading : false,
|
||||
lines : 24,
|
||||
debounceTime : 300, // miliseconds to wait before updating model and saving changes
|
||||
/**
|
||||
* expenses kind of the user
|
||||
*/
|
||||
disponibility : 5000,
|
||||
averageMonthlyEarnings: 600,
|
||||
warningThershold : 2000,
|
||||
showDelays : false,
|
||||
showRepeats : false,
|
||||
monthsBeforeNoMoney : null,
|
||||
};
|
||||
|
||||
let exampleExpenses = [
|
||||
{name: "appart", amount: 800, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "assurance voiture", amount: 50, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "internet", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "elec", amount: 100, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "chat", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "transports", amount: 70, delay: 0, repeat: $scope.config.lines, enabled: false},
|
||||
];
|
||||
|
||||
// $scope.expenses=[];
|
||||
$scope.expenses = exampleExpenses;
|
||||
|
||||
/**
|
||||
* sum of all monthly expenses, ignoring delay
|
||||
* @returns {number}
|
||||
*/
|
||||
$scope.sumMonthlyExpenses = () => {
|
||||
let sum = 0;
|
||||
$scope.expenses.forEach((elem) => {
|
||||
if (elem.enabled) {
|
||||
sum += elem.amount;
|
||||
}
|
||||
})
|
||||
return sum;
|
||||
};
|
||||
$scope.previsionTable = [];
|
||||
$scope.calculatePrevisionTable = () => {
|
||||
let turns = $scope.config.lines;
|
||||
let monthly = $scope.sumMonthlyExpenses();
|
||||
let available = $scope.config.disponibility;
|
||||
let previsionTable = [];
|
||||
let changedNoMoneyConfig = false;
|
||||
$scope.config.monthsBeforeNoMoney = null;
|
||||
for (let i = 0; i <= turns; i++) {
|
||||
// TODO take in account delays in expenses
|
||||
available = available - monthly + $scope.config.averageMonthlyEarnings;
|
||||
let newLine = {
|
||||
expense : monthly,
|
||||
available: available,
|
||||
};
|
||||
|
||||
if (available <= 0 && !changedNoMoneyConfig) {
|
||||
$scope.config.monthsBeforeNoMoney = i;
|
||||
changedNoMoneyConfig = true;
|
||||
}
|
||||
previsionTable.push(newLine);
|
||||
}
|
||||
$scope.previsionTable = previsionTable;
|
||||
$scope.makeGraphPointsOfPrevisionTable(previsionTable);
|
||||
return previsionTable;
|
||||
};
|
||||
$scope.graphPointsPrevision = [];
|
||||
$scope.makeGraphPointsOfPrevisionTable = (previsionTable) => {
|
||||
console.log("previsionTable", previsionTable);
|
||||
$scope.graphPointsPrevision = [];
|
||||
for (let i = 0; i < previsionTable.length; i++) {
|
||||
$scope.graphPointsPrevision.push({
|
||||
label: previsionTable[i].available + " euros restants dans " + i + " mois",
|
||||
y : previsionTable[i].available,
|
||||
x : i,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$scope.updateconf = (rep) => {
|
||||
// update view calculs
|
||||
$scope.calculatePrevisionTable();
|
||||
$scope.updateCanevas()
|
||||
// flags
|
||||
$scope.config.loading = false;
|
||||
$scope.config.initialLoadingDone = true;
|
||||
$scope.config.disponibility = rep.data.disponibility;
|
||||
$scope.config.averageMonthlyEarnings = rep.data.averageMonthlyEarnings;
|
||||
// default data when user has nothing saved
|
||||
console.log('rep.data.expenses.length', rep.data.expenses.length)
|
||||
if (!rep.data.expenses.length) {
|
||||
$scope.expenses = exampleExpenses;
|
||||
} else {
|
||||
$scope.expenses = rep.data.expenses;
|
||||
}
|
||||
};
|
||||
// http related calls
|
||||
$scope.fetchExpenses = () => {
|
||||
console.log('fetch expenses...');
|
||||
$scope.config.loading = true;
|
||||
|
||||
$http.get('logged/get-my-expenses').then((rep) => {
|
||||
console.log('logged/get-my-expenses', rep.data.expenses);
|
||||
$scope.updateconf(rep)
|
||||
},
|
||||
$scope.manageError)
|
||||
};
|
||||
$scope.save = function () {
|
||||
if ($scope.config.loading) {
|
||||
console.log('already saving');
|
||||
return;
|
||||
}
|
||||
console.log('update expenses...');
|
||||
$scope.config.loading = true;
|
||||
$http.post('logged/save-my-expenses', {
|
||||
expenses: $scope.expenses,
|
||||
config : $scope.config
|
||||
})
|
||||
.then((rep) => {
|
||||
console.log('logged/save-my-expenses', rep);
|
||||
$scope.updateconf(rep)
|
||||
},
|
||||
$scope.manageError)
|
||||
};
|
||||
$scope.addExpense = function () {
|
||||
$scope.expenses.push({
|
||||
name : "",
|
||||
repeat: 0,
|
||||
delay : 0,
|
||||
amount: 0,
|
||||
})
|
||||
};
|
||||
$scope.init = function () {
|
||||
$scope.fetchExpenses();
|
||||
};
|
||||
$scope.manageError = (error) => {
|
||||
console.error(error);
|
||||
$scope.config.loading = false;
|
||||
|
||||
};
|
||||
$scope.updateCanevas = function () {
|
||||
var dataPoints = $scope.graphPointsPrevision;
|
||||
var chartContainer = new CanvasJS.Chart("simulationPrevision", {
|
||||
title: {
|
||||
text: "Euros disponibles dans le temps"
|
||||
},
|
||||
// animationEnabled: true,
|
||||
data : [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type : "splineArea",
|
||||
dataPoints: dataPoints
|
||||
}
|
||||
]
|
||||
});
|
||||
chartContainer.render();
|
||||
};
|
||||
$scope.init();
|
||||
}]);
|
163
v1/old/templates_old/assets/js/parts/previsionnel.js
Executable file
163
v1/old/templates_old/assets/js/parts/previsionnel.js
Executable file
|
@ -0,0 +1,163 @@
|
|||
export var PrevisionnelCtrl = function ($scope, $http, $timeout) {
|
||||
|
||||
$scope.config = {
|
||||
initialLoadingDone : false,
|
||||
loading : false,
|
||||
lines : 24,
|
||||
debounceTime : 300, // miliseconds to wait before updating model and saving changes
|
||||
/**
|
||||
* expenses kind of the user
|
||||
*/
|
||||
disponibility : 5000,
|
||||
averageMonthlyEarnings: 600,
|
||||
warningThershold : 2000,
|
||||
showDelays : false,
|
||||
showRepeats : false,
|
||||
monthsBeforeNoMoney : null,
|
||||
};
|
||||
|
||||
let exampleExpenses = [
|
||||
{name: "appart", amount: 800, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "assurance voiture", amount: 50, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "internet", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "elec", amount: 100, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "chat", amount: 20, delay: 0, repeat: $scope.config.lines, enabled: true},
|
||||
{name: "transports", amount: 70, delay: 0, repeat: $scope.config.lines, enabled: false},
|
||||
];
|
||||
|
||||
// $scope.expenses=[];
|
||||
$scope.expenses = exampleExpenses;
|
||||
|
||||
/**
|
||||
* sum of all monthly expenses, ignoring delay
|
||||
* @returns {number}
|
||||
*/
|
||||
$scope.sumMonthlyExpenses = () => {
|
||||
let sum = 0;
|
||||
$scope.expenses.forEach((elem) => {
|
||||
if (elem.enabled) {
|
||||
sum += elem.amount;
|
||||
}
|
||||
})
|
||||
return sum;
|
||||
};
|
||||
$scope.previsionTable = [];
|
||||
$scope.calculatePrevisionTable = () => {
|
||||
let turns = $scope.config.lines;
|
||||
let monthly = $scope.sumMonthlyExpenses();
|
||||
let available = $scope.config.disponibility;
|
||||
let previsionTable = [];
|
||||
let changedNoMoneyConfig = false;
|
||||
$scope.config.monthsBeforeNoMoney = null;
|
||||
for (let i = 0; i <= turns; i++) {
|
||||
// TODO take in account delays in expenses
|
||||
available = available - monthly + $scope.config.averageMonthlyEarnings;
|
||||
let newLine = {
|
||||
expense : monthly,
|
||||
available: available,
|
||||
};
|
||||
|
||||
if (available <= 0 && !changedNoMoneyConfig) {
|
||||
$scope.config.monthsBeforeNoMoney = i;
|
||||
changedNoMoneyConfig = true;
|
||||
}
|
||||
previsionTable.push(newLine);
|
||||
}
|
||||
$scope.previsionTable = previsionTable;
|
||||
$scope.makeGraphPointsOfPrevisionTable(previsionTable);
|
||||
return previsionTable;
|
||||
};
|
||||
$scope.graphPointsPrevision = [];
|
||||
$scope.makeGraphPointsOfPrevisionTable = (previsionTable) => {
|
||||
console.log("previsionTable", previsionTable);
|
||||
$scope.graphPointsPrevision = [];
|
||||
for (let i = 0; i < previsionTable.length; i++) {
|
||||
$scope.graphPointsPrevision.push({
|
||||
label: previsionTable[i].available + " euros restants dans " + i + " mois",
|
||||
y : previsionTable[i].available,
|
||||
x : i,
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$scope.updateconf = (rep) => {
|
||||
// update view calculs
|
||||
$scope.calculatePrevisionTable();
|
||||
$scope.updateCanevas()
|
||||
// flags
|
||||
$scope.config.loading = false;
|
||||
$scope.config.initialLoadingDone = true;
|
||||
$scope.config.disponibility = rep.data.disponibility;
|
||||
$scope.config.averageMonthlyEarnings = rep.data.averageMonthlyEarnings;
|
||||
// default data when user has nothing saved
|
||||
console.log('rep.data.expenses.length', rep.data.expenses.length)
|
||||
if (!rep.data.expenses.length) {
|
||||
$scope.expenses = exampleExpenses;
|
||||
} else {
|
||||
$scope.expenses = rep.data.expenses;
|
||||
}
|
||||
};
|
||||
// http related calls
|
||||
$scope.fetchExpenses = () => {
|
||||
console.log('fetch expenses...');
|
||||
$scope.config.loading = true;
|
||||
|
||||
$http.get('get-my-expenses').then((rep) => {
|
||||
console.log('get-my-expenses', rep.data.expenses);
|
||||
$scope.updateconf(rep)
|
||||
},
|
||||
$scope.manageError)
|
||||
};
|
||||
$scope.save = function () {
|
||||
if ($scope.config.loading) {
|
||||
console.log('already saving');
|
||||
return;
|
||||
}
|
||||
console.log('update expenses...');
|
||||
$scope.config.loading = true;
|
||||
$http.post('save-my-expenses', {
|
||||
expenses: $scope.expenses,
|
||||
config : $scope.config
|
||||
})
|
||||
.then((rep) => {
|
||||
console.log('save-my-expenses', rep);
|
||||
$scope.updateconf(rep)
|
||||
},
|
||||
$scope.manageError)
|
||||
};
|
||||
$scope.addExpense = function () {
|
||||
$scope.expenses.push({
|
||||
name : "",
|
||||
repeat: 0,
|
||||
delay : 0,
|
||||
amount: 0,
|
||||
})
|
||||
};
|
||||
$scope.init = function () {
|
||||
$scope.fetchExpenses();
|
||||
};
|
||||
$scope.manageError = (error) => {
|
||||
console.error(error);
|
||||
$scope.config.loading = false;
|
||||
|
||||
}
|
||||
$scope.updateCanevas = function () {
|
||||
var dataPoints = $scope.graphPointsPrevision;
|
||||
var chartContainer = new CanvasJS.Chart("simulationPrevision", {
|
||||
title: {
|
||||
text: "Euros disponibles dans le temps"
|
||||
},
|
||||
// animationEnabled: true,
|
||||
data : [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type : "splineArea",
|
||||
dataPoints: dataPoints
|
||||
}
|
||||
]
|
||||
});
|
||||
chartContainer.render();
|
||||
}
|
||||
$scope.init();
|
||||
};
|
57
v1/old/templates_old/base.html.twig
Executable file
57
v1/old/templates_old/base.html.twig
Executable file
|
@ -0,0 +1,57 @@
|
|||
{% trans_default_domain 'messages' %}
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="google-signin-client_id"
|
||||
content="938689189350-frtrg93bnva4b3p7c1al880mi3ts5i35.apps.googleusercontent.com">
|
||||
<title>{% block title %} {% trans %}menu.title{% endtrans %} - Fiche de compte dynamique{% endblock %}</title>
|
||||
{% block stylesheets %}
|
||||
<link rel="stylesheet" href="{{ asset('build/app.css') }}">
|
||||
{% endblock %}
|
||||
</head>
|
||||
<body>
|
||||
|
||||
{% block navigation %}
|
||||
{% endblock %}
|
||||
<div id="bodyland">
|
||||
{% block bigMain %}
|
||||
|
||||
{% include 'default/header.html.twig' %}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-9 col-sm-offset-3 col-md-9 col-md-offset-3">
|
||||
{% block body %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
{% include 'default/footer.html.twig' %}
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block javascripts %}
|
||||
<script src="{{ asset('build/app.js') }}"></script>
|
||||
|
||||
|
||||
<!-- Matomo -->
|
||||
<script type="text/javascript">
|
||||
var _paq = _paq || [];
|
||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||||
_paq.push(['trackPageView']);
|
||||
_paq.push(['enableLinkTracking']);
|
||||
(function () {
|
||||
var u = "https://piwik.cipherbliss.com/";
|
||||
_paq.push(['setTrackerUrl', u + 'piwik.php']);
|
||||
_paq.push(['setSiteId', '1']);
|
||||
var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0];
|
||||
g.type = 'text/javascript';
|
||||
g.async = true;
|
||||
g.defer = true;
|
||||
g.src = u + 'piwik.js';
|
||||
s.parentNode.insertBefore(g, s);
|
||||
})();
|
||||
</script>
|
||||
<!-- End Matomo Code -->
|
||||
|
||||
|
||||
{% endblock %}
|
||||
</body>
|
||||
</html>
|
48
v1/old/templates_old/default/description-app.html.twig
Executable file
48
v1/old/templates_old/default/description-app.html.twig
Executable file
|
@ -0,0 +1,48 @@
|
|||
<div class="product-values marged-v">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-check-circle fa-3x"></i>
|
||||
<h2 class="text-center">{% trans %}home.specs.free{% endtrans %}</h2>
|
||||
<p>{% trans %}home.specs.free_text{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-random fa-3x"></i>
|
||||
<h2>{% trans %}home.specs.flex{% endtrans %}</h2>
|
||||
<p>{% trans %}home.specs.flex_text{% endtrans %}</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-truck fa-3x"></i>
|
||||
<h2>{% trans %}home.specs.portable{% endtrans %}</h2>
|
||||
<p>{% trans %}home.specs.portable_text{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-rotate-left fa-3x"></i>
|
||||
|
||||
<h2>{% trans %}home.specs.open{% endtrans %}</h2>
|
||||
<p>{% trans %}home.specs.open_text{% endtrans %}
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://framagit.org/tykayn/caisse-bliss">gitlab.</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.cipherbliss.com">CipherBliss</a>
|
||||
</li>
|
||||
</ul>
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-pie-chart fa-3x"></i>
|
||||
<h2>{% trans %}home.specs.stats{% endtrans %}</h2>
|
||||
<p>
|
||||
{% trans %}home.specs.stats_text{% endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 text-center product-values-block">
|
||||
<i class="fa fa-heart-o fa-3x"></i>
|
||||
<h2>{% trans %}home.specs.data{% endtrans %}</h2>
|
||||
<p>{% trans %}home.specs.data_text{% endtrans %}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
27
v1/old/templates_old/default/footer.html.twig
Executable file
27
v1/old/templates_old/default/footer.html.twig
Executable file
|
@ -0,0 +1,27 @@
|
|||
<footer class="big-footer text-center navbar-inverse navbar-footer ">
|
||||
<sub class="footer-note text-center">
|
||||
{% trans %}global.made_by{% endtrans %}
|
||||
<a href="https://mastodon.cipherbliss.com/@tykayn">
|
||||
<i class="fa fa-share-alt"></i>
|
||||
Tykayn -
|
||||
</a>
|
||||
<a href="https://www.cipherbliss.com">
|
||||
<i class="fa fa-world"></i>
|
||||
Cipher Bliss
|
||||
</a>
|
||||
<a href="https://framagit.org/tykayn/caisse-bliss">
|
||||
<i class="fa fa-gitlab"></i>
|
||||
sources de la Caisse Bliss
|
||||
</a>
|
||||
-
|
||||
<a href="https://framagit.org/tykayn/caisse-bliss/blob/master/LICENSE">
|
||||
<i class="fa fa-file-text"></i>
|
||||
Licence AGPL v3
|
||||
</a>
|
||||
-
|
||||
<a href="mailto:contact@cipherbliss.com">
|
||||
<i class="fa fa-envelope-o"></i>
|
||||
contact
|
||||
</a>
|
||||
</sub>
|
||||
</footer>
|
27
v1/old/templates_old/default/header.html.twig
Executable file
27
v1/old/templates_old/default/header.html.twig
Executable file
|
@ -0,0 +1,27 @@
|
|||
<div class="header-block">
|
||||
<div class="nav padded">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
{% include 'default/login-choices.html.twig' %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-elements">
|
||||
|
||||
{% if app.request.hasPreviousSession %}
|
||||
{% for type, messages in app.session.flashBag.all %}
|
||||
{% for message in messages %}
|
||||
<div class="{{ type }}">
|
||||
{{ message|trans({}, 'FOSUserBundle') }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
<div>
|
||||
{% block fos_user_content %}
|
||||
{% endblock fos_user_content %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
6
v1/old/templates_old/default/index.html.twig
Executable file
6
v1/old/templates_old/default/index.html.twig
Executable file
|
@ -0,0 +1,6 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block bigMain %}
|
||||
|
||||
{% include 'default/main-screen.html.twig' %}
|
||||
|
||||
{% endblock %}
|
181
v1/old/templates_old/default/login-choices.html.twig
Executable file
181
v1/old/templates_old/default/login-choices.html.twig
Executable file
|
@ -0,0 +1,181 @@
|
|||
{% block loginchoices %}
|
||||
<div class="loginland ">
|
||||
|
||||
<div class="login-choices">
|
||||
|
||||
{% if is_granted("IS_AUTHENTICATED_REMEMBERED") %}
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-9">
|
||||
<div id="menu-dashboard">
|
||||
<ul class="nav">
|
||||
<li>
|
||||
<a href="{{ path('homepage') }}" class="btn btn-default logo-home">
|
||||
<i class="fa fa-home"></i>
|
||||
{% trans %}menu.title{% endtrans %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn {% if app.request.attributes.get('_route') == 'dashboard' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}" href="{{ path('dashboard') }}">
|
||||
<i class="fa fa-list"></i>
|
||||
{% trans %}menu.dashboard{% endtrans %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn {% if app.request.attributes.get('_route') == 'productcategory_index' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %} "
|
||||
href="{{ path('productcategory_index') }}">
|
||||
<i class="fa fa-file-archive-o"></i>
|
||||
{% trans %}menu.categories{% endtrans %}
|
||||
<span class="badge">
|
||||
{{ app.user.categories|length }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn {% if app.request.attributes.get('_route') == 'product_index' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %} "
|
||||
href="{{ path('product_index') }}"
|
||||
>
|
||||
<i class="fa fa-gears"></i>
|
||||
{% trans %}menu.products{% endtrans %}
|
||||
<span class="badge">
|
||||
{{ app.user.products|length }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a id="menu_festivals" class="btn {% if app.request.attributes.get('_route') == 'festival_index' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}
|
||||
" href='{{ path('festival_index') }}'
|
||||
>
|
||||
<i class="fa fa-th-large"></i>
|
||||
|
||||
{% trans %}menu.festivals{% endtrans %}
|
||||
<span class="badge">
|
||||
{{ app.user.festivals|length }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a id="menu_series" class="btn {% if app.request.attributes.get('_route') == 'seriefestival_index' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}
|
||||
" href='{{ path('seriefestival_index') }}'
|
||||
>
|
||||
<i class="fa fa-th-large"></i>
|
||||
|
||||
{% trans %}menu.series{% endtrans %}
|
||||
<span class="badge">
|
||||
{{ app.user.seriesFestivals|length }}
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn {% if app.request.attributes.get('_route') == 'history' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}" href="{{ path('history') }}"
|
||||
>
|
||||
<i class="fa fa-clock-o"></i>
|
||||
{% trans %}menu.history{% endtrans %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<a class="btn {% if app.request.attributes.get('_route') == 'import' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}" href="{{ path('import') }}"
|
||||
>
|
||||
<i class="fa fa-arrow-circle-o-up"></i>
|
||||
|
||||
{% trans %}menu.import{% endtrans %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
|
||||
<a id="menu_previsionnel" class="btn {% if app.request.attributes.get('_route') == 'previsionnel' %}
|
||||
btn-success
|
||||
{% else %}
|
||||
btn-default
|
||||
{% endif %}" href="{{ path('previsionnel') }}"
|
||||
>
|
||||
<i class="fa fa-forward"></i>
|
||||
|
||||
{% trans %}menu.future{% endtrans %}
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="#" id="introjs_start">
|
||||
<i class="fa fa-play"></i>
|
||||
{# {% trans %}menu.introjs{% endtrans %}#}
|
||||
Visite guidée
|
||||
</a>
|
||||
{% if app.user.username == 'demo' %}
|
||||
<div class="text-warning alert-sm marged ">
|
||||
<i class="fa fa-info-circle"></i>
|
||||
<sub> Ceci est un compte de démonstration. Créez votre compte personnel dès
|
||||
maintenant. </sub>
|
||||
</div>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-3 text-sm-left text-md-right user-info-part">
|
||||
|
||||
<button class="btn btn-default visible-xs pull-right" id="menu_button">
|
||||
<i class="fa fa-bars"></i>
|
||||
Menu
|
||||
</button>
|
||||
|
||||
{% trans %}user.greet{% endtrans %}
|
||||
<a href="{{ path('fos_user_profile_edit') }}" class="user-info-link">
|
||||
<i class="fa fa-user"></i>
|
||||
{{ app.user.username }}
|
||||
|
||||
</a>
|
||||
|
|
||||
<a class="btn btn-default" href="{{ path('fos_user_security_logout') }}">
|
||||
|
||||
{% trans %}layout.logout{% endtrans %}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% else %}
|
||||
|
||||
|
||||
<div class="text-right pull-right">
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('fos_user_security_login') }}">
|
||||
<i class="fa fa-key"></i>
|
||||
{{ 'layout.login'|trans }}</a>
|
||||
<a class="btn btn-default"
|
||||
href="{{ path('fos_user_registration_register') }}">Inscription
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock loginchoices %}
|
100
v1/old/templates_old/default/main-screen.html.twig
Executable file
100
v1/old/templates_old/default/main-screen.html.twig
Executable file
|
@ -0,0 +1,100 @@
|
|||
{% block bigMain %}
|
||||
|
||||
{% include 'default/header.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="main-screen" id="homepage">
|
||||
<div id="welcome">
|
||||
<section class="bg-accessories">
|
||||
<div class="bg-shader">
|
||||
<div class="container main-section">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 padded-v">
|
||||
<h1 class="text-center">
|
||||
{#<i class="fa fa-circle-o-notch logo-main"></i>#}
|
||||
{% trans %}menu.title{% endtrans %}
|
||||
</h1>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 padded-v">
|
||||
<div class="description">
|
||||
{% trans %}home.main_description{% endtrans %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="try col-xs-12 col-md-6">
|
||||
<br>
|
||||
<div class="row">
|
||||
<div class=" padded text-right">
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('fos_user_security_login') }}"
|
||||
class="btn btn-primary">
|
||||
{% trans %}home.try{% endtrans %}
|
||||
</a>
|
||||
</div>
|
||||
<div class="hint padded">
|
||||
<sub>{% trans %}home.demo_hint{% endtrans %}</sub>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
<section class="bg-girl">
|
||||
<div class="bg-shader">
|
||||
<div class="container">
|
||||
|
||||
{% include 'default/description-app.html.twig' %}
|
||||
<div class="try">
|
||||
<fieldset class="bg-dark padded">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<a class="btn btn-primary" href="{{ path('dashboard') }}"
|
||||
class="btn btn-success">
|
||||
{% trans %}home.try{% endtrans %}
|
||||
</a>
|
||||
<p>
|
||||
{% trans %}home.demo_hint{% endtrans %}
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<a class="btn btn-primary" href="{{ path('fos_user_registration_register') }}">
|
||||
<i class="fa fa-user"></i>
|
||||
{% trans %}layout.register{% endtrans %}
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="bg-color">
|
||||
<div id="contact" class="text-center">
|
||||
<i class="fa fa-envelope-open-o"></i>
|
||||
contactez-moi pour tout renseignement:
|
||||
<a href="mailto:contact@cipherbliss.com"> par email</a>
|
||||
, Telegram
|
||||
<a href="https://t.me/tykayn">
|
||||
@tykayn
|
||||
</a>
|
||||
, ou sur Mastodon
|
||||
<a href="https://mastodon.cipherbliss.com/@tykayn">
|
||||
<img src="https://en.gravatar.com/userimage/53061325/811d383aa2ebb8d2d83baab7da5f4a7b.jpeg"
|
||||
alt="avatar Mastodon" width="50" height="50"> @tykayn
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% include 'default/footer.html.twig' %}
|
||||
|
||||
{% endblock %}
|
15
v1/old/templates_old/default/test-email.html.twig
Executable file
15
v1/old/templates_old/default/test-email.html.twig
Executable file
|
@ -0,0 +1,15 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block bigMain %}
|
||||
<div style="padding:2rem;">
|
||||
<h1>tadam test de mail</h1>
|
||||
<p>
|
||||
|
||||
|
||||
le contenu Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus doloremque exercitationem
|
||||
provident quae quod soluta sunt velit. Architecto, assumenda deserunt expedita laudantium nemo voluptatem.
|
||||
Atque commodi est iste itaque mollitia. Consequatur cumque cupiditate eveniet facilis illo illum impedit
|
||||
itaque omnis placeat quaerat, quia quidem ratione saepe similique sunt veniam veritatis.
|
||||
</p>
|
||||
</div>
|
||||
{% endblock %}
|
25
v1/old/templates_old/festival/edit.html.twig
Executable file
25
v1/old/templates_old/festival/edit.html.twig
Executable file
|
@ -0,0 +1,25 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Festival edit</h1>
|
||||
|
||||
{{ form_start(edit_form) }}
|
||||
{{ form_widget(edit_form) }}
|
||||
<input type=submit value=" Envoyer
|
||||
"/>
|
||||
{{ form_end(edit_form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('festival_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
95
v1/old/templates_old/festival/index.html.twig
Executable file
95
v1/old/templates_old/festival/index.html.twig
Executable file
|
@ -0,0 +1,95 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row heading-of-list">
|
||||
<div class="col-xs-6">
|
||||
<h1>Festivals</h1></div>
|
||||
<div class="col-xs-6">
|
||||
<a class="btn btn-primary" href="{{ path('festival_new') }}">Nouveau festival</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Name</th>
|
||||
<th>Datecreation</th>
|
||||
<th>Tous Frais</th>
|
||||
<th>Clients</th>
|
||||
<th>fond caisse avant</th>
|
||||
<th>fond caisse apres</th>
|
||||
<th>chiffre affaire</th>
|
||||
<th>fond caisse + CA</th>
|
||||
<th>diff</th>
|
||||
<th>bénefices CA - frais</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
|
||||
{% for festival in festivals %}
|
||||
<tr
|
||||
{% if app.user.activeFestival and (app.user.activeFestival.id == festival.id) %}
|
||||
class="bg-success"
|
||||
{% endif %}
|
||||
>
|
||||
<td>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('festival_show', { 'id': festival.id }) }}">{{ festival.id }}</a>
|
||||
</td>
|
||||
<td>{{ festival.name }}</td>
|
||||
<td>{% if festival.dateCreation %}{{ festival.dateCreation|date('Y-m-d H:i:s') }}{% endif %}</td>
|
||||
<td>{{ festival.fraisInscription + festival.fraisTransport + festival.fraisRepas + festival.fraisHebergement }}
|
||||
€
|
||||
</td>
|
||||
|
||||
<td>{{ festival.sellRecords|length }}</td>
|
||||
<td>{{ festival.fondDeCaisseAvant }}€</td>
|
||||
<td>{{ festival.fondDeCaisseApres }}€</td>
|
||||
<td>{{ festival.chiffreAffaire }}€</td>
|
||||
<td>{{ festival.fondDeCaisseAvant + festival.chiffreAffaire }}€</td>
|
||||
<td
|
||||
class="{% if (festival.chiffreAffaire - festival.fondDeCaisseApres) != 0 %}
|
||||
bg-warning
|
||||
{% else %}
|
||||
bg-success
|
||||
{% endif %}"
|
||||
>{{ festival.chiffreAffaire - festival.fondDeCaisseApres }}€
|
||||
</td>
|
||||
<td>{{ festival.chiffreAffaire - (festival.fraisInscription + festival.fraisTransport + festival.fraisRepas + festival.fraisHebergement ) }}</td>
|
||||
<td>
|
||||
{% if app.user.activeFestival and (app.user.activeFestival.id == festival.id) %}
|
||||
<span class="badge badge-success">
|
||||
Actuel
|
||||
</span>
|
||||
{% else %}
|
||||
<a class="btn btn-success" href="{{ path('set_active_festival', { 'id': festival.id }) }}">
|
||||
choisir comme actuel
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if festival.user|length %}
|
||||
{% for u in festival.user %}
|
||||
<span class="badge badge-info">{{ u.username }}</span>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<div class="alert alert-info">
|
||||
|
||||
pas d'owner.
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="btn btn-primary" href="{{ path('festival_edit', { 'id': festival.id }) }}">
|
||||
<i class="fa fa-pencil"></i>
|
||||
Modifier
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<a class="btn btn-primary" href="{{ path('festival_new') }}">Nouveau festival</a>
|
||||
{% endblock %}
|
16
v1/old/templates_old/festival/new.html.twig
Executable file
16
v1/old/templates_old/festival/new.html.twig
Executable file
|
@ -0,0 +1,16 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Festival creation</h1>
|
||||
|
||||
{{ form_start(form) }}
|
||||
{{ form_widget(form) }}
|
||||
<input class="btn btn-primary btn-block" type="submit" value="Créer" />
|
||||
{{ form_end(form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('festival_index') }}"> <i class="fa fa-arrow-left"></i>Retour à la liste</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
39
v1/old/templates_old/festival/show.html.twig
Executable file
39
v1/old/templates_old/festival/show.html.twig
Executable file
|
@ -0,0 +1,39 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Festival</h1>
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<td>{{ festival.id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td>{{ festival.name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Datecreation</th>
|
||||
<td>{% if festival.dateCreation %}{{ festival.dateCreation|date('Y-m-d H:i:s') }}{% endif %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('festival_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('festival_edit', { 'id': festival.id }) }}">edit</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
1
v1/old/templates_old/legal/privacy.html.twig
Executable file
1
v1/old/templates_old/legal/privacy.html.twig
Executable file
|
@ -0,0 +1 @@
|
|||
<h1>Privacy</h1>
|
1
v1/old/templates_old/legal/tos.html.twig
Executable file
1
v1/old/templates_old/legal/tos.html.twig
Executable file
|
@ -0,0 +1 @@
|
|||
<h1>Terms of service</h1>
|
26
v1/old/templates_old/logged/angular/categ-options.html.twig
Normal file
26
v1/old/templates_old/logged/angular/categ-options.html.twig
Normal file
|
@ -0,0 +1,26 @@
|
|||
{% verbatim %}
|
||||
|
||||
<div id="choice-categories" class="choice-categories well" ng-if="categories.length">
|
||||
<h2>
|
||||
<i class="fa-eye fa"></i>
|
||||
Visibilité des
|
||||
{{ categories.length - categoriesVisibleCount() }} /
|
||||
{{ categories.length }} catégories
|
||||
</h2>
|
||||
|
||||
<div ng-repeat="c in categories">
|
||||
<div class="btn btn-block"
|
||||
ng-class="{'btn-success': !c.hidden}"
|
||||
ng-click="c.hidden = !c.hidden">
|
||||
{{ c.name }}
|
||||
|
||||
<span ng-if="c.hidden">(caché)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="well" ng-if="!categories.length">
|
||||
<i class="fa fa-info"></i>
|
||||
Aucune catégorie enregistrée
|
||||
</div>
|
||||
{% endverbatim %}
|
64
v1/old/templates_old/logged/angular/current.html.twig
Executable file
64
v1/old/templates_old/logged/angular/current.html.twig
Executable file
|
@ -0,0 +1,64 @@
|
|||
{% verbatim %}
|
||||
<div class="current-selling">
|
||||
<hr>
|
||||
<form>
|
||||
|
||||
<div class="new-display">
|
||||
<div class="row">
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<button class="btn btn-warning btn-remove-all marged-v" ng-click="removeAll()" ng-disable="!CurrentSellingTotal()">
|
||||
<i class="fa fa-trash"></i> enlever tout
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-repeat="group in activeSellingFiltered track by $index">
|
||||
<div class="row">
|
||||
<div class="col-xs-2">
|
||||
<span class="btn btn-warning remove-item"
|
||||
ng-click="removeGroupeProducts(group.groupId)">
|
||||
<i class="fa fa-trash"></i>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-10">
|
||||
<input class="group-name" type="text" ng-model="group.name">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-7 col-xs-offset-2 ">
|
||||
<span ng-if="group.count > 1">
|
||||
|
||||
<strong>
|
||||
{{group.unitPrice}}
|
||||
€ </strong>
|
||||
</span>
|
||||
<span class="badge badge-default" ng-if="group.count">
|
||||
<i class="fa fa-times"></i> {{group.count}}
|
||||
</span>
|
||||
</div>
|
||||
<div class="col-xs-3 text-right">
|
||||
<strong>
|
||||
{{group.totalPrice}}
|
||||
€ </strong>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
{% endverbatim %}
|
||||
{% include 'logged/angular/totals.html.twig' %}
|
||||
{% include 'logged/angular/validate-button.html.twig' %}
|
||||
{% include 'logged/angular/pause-selling.html.twig' %}
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
40
v1/old/templates_old/logged/angular/listing-products.html.twig
Executable file
40
v1/old/templates_old/logged/angular/listing-products.html.twig
Executable file
|
@ -0,0 +1,40 @@
|
|||
{% verbatim %}
|
||||
<div class="horizontal-land">
|
||||
<div class="super-large" style="min-width: {{(1+categories.length) * 400}}px">
|
||||
<div class="category-listing one-category col-xs-12 col-sm-4 " ng-repeat="c in categories"
|
||||
ng-if="! c.hidden">
|
||||
|
||||
<h2 ng-class="{'hidden':c.hidden}" class="title">
|
||||
{{ c.name }}
|
||||
</h2>
|
||||
<div class="product-listing" >
|
||||
<span ng-repeat="p in c.products track by p.id"
|
||||
class="product-box"
|
||||
|
||||
>
|
||||
<button class="product-button text-left" ng-class="{ 'active' : p.enabled}" ng-click="addProduct( p )">
|
||||
<img class="product-image" src="{{p.image}}" alt="image" ng-if="p.image.length">
|
||||
<span class="product-name">
|
||||
{{ p.name }}
|
||||
</span>
|
||||
<span class="badge">
|
||||
{{ p.price }} €
|
||||
</span>
|
||||
<span class="badge badge-default" ng-if="show_config.stock_count">
|
||||
{{ p.stockCount }}
|
||||
</span>
|
||||
<span class="badge badge-success" ng-if="show_config.sold">
|
||||
<i class="fa fa-tick"></i>
|
||||
{{ countProductsSoldForActiveFestival[p.id] }}
|
||||
</span>
|
||||
</button>
|
||||
<button class="express-button" ng-if="show_config.expressSelling" ng-click="expressSell(p)" title="achat express sans compléter les infos du client">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
</button>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{% endverbatim %}
|
30
v1/old/templates_old/logged/angular/loaded-caisse.html.twig
Executable file
30
v1/old/templates_old/logged/angular/loaded-caisse.html.twig
Executable file
|
@ -0,0 +1,30 @@
|
|||
<!--ok loading done-->
|
||||
<div id="loaded" ng-if="initLoadDone">
|
||||
<!--caisse IHM-->
|
||||
<div id="load_ok">
|
||||
<div id="listing-products" class="listing-products col-xs-12 col-md-8">
|
||||
{% include 'logged/angular/messages.html.twig' %}
|
||||
{% include 'logged/angular/listing-products.html.twig' %}
|
||||
|
||||
</div>
|
||||
<div id="sellings" class="sellings col-xs-12 col-md-4">
|
||||
|
||||
<div class="list-sell" ng-class="{'bg-success text-success': sellingOk }">
|
||||
|
||||
{% include 'logged/angular/validate-button.html.twig' %}
|
||||
{% if app.user.products |length %}
|
||||
{% include 'logged/angular/current.html.twig' %}
|
||||
{% endif %}
|
||||
|
||||
{#{% include 'logged/angular/paused.html.twig' %}#}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="other_time">
|
||||
{% include 'logged/angular/recent.html.twig' %}
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4 col-md-offset-8">
|
||||
{% include 'logged/angular/categ-options.html.twig' %}
|
||||
|
||||
</div>
|
||||
</div>
|
42
v1/old/templates_old/logged/angular/messages.html.twig
Executable file
42
v1/old/templates_old/logged/angular/messages.html.twig
Executable file
|
@ -0,0 +1,42 @@
|
|||
{% verbatim %}
|
||||
<div id="messages">
|
||||
<div id="no-categories" class="alert alert-info" ng-if="!categories.length">
|
||||
<i class="fa fa-info"></i>
|
||||
Vous n'avez pas encore enregistré de <strong>catégorie de produit</strong>, ajoutez-en donc.
|
||||
</div>
|
||||
<div id="no-products" class="alert alert-info" ng-if="!productsFromDB.length">
|
||||
<i class="fa fa-info"></i>
|
||||
Vous n'avez pas encore enregistré de <strong>produit</strong>, ajoutez-en donc.
|
||||
</div>
|
||||
{% endverbatim %}
|
||||
<div>
|
||||
|
||||
|
||||
{% if app.user.activeFestival is null %}
|
||||
<div id="no-products" class="alert alert-info" ng-if="!productsFromDB.length">
|
||||
<i class="fa fa-info"></i>
|
||||
Sélectionnez un <strong>festival</strong> pour grouper vos ventes clients par évènement.
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
</div>
|
||||
|
||||
{% if not (app.user.products |length) %}
|
||||
<div class="alert alert-info" ng-if="!productsFromDB.length && initLoadDone">
|
||||
|
||||
<i class="fa fa-info"></i>
|
||||
Créez facilement vos catégories de produits et vos produits juste en écrivant un nom par ligne dans
|
||||
|
||||
<a class="link" href="{{ path('import') }}">
|
||||
<button>
|
||||
l'interface d'importation simplifiée
|
||||
</button>
|
||||
</a>
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
|
||||
{% verbatim %}
|
||||
<!--end messages warning-->
|
||||
</div>
|
||||
{% endverbatim %}
|
8
v1/old/templates_old/logged/angular/pause-selling.html.twig
Executable file
8
v1/old/templates_old/logged/angular/pause-selling.html.twig
Executable file
|
@ -0,0 +1,8 @@
|
|||
{% verbatim %}
|
||||
<!--<div class="col">-->
|
||||
<!--<button class="btn btn-default" id="pause_selling" ng-click="pauseSelling()">-->
|
||||
<!--<i class="fa fa-clock"></i>-->
|
||||
<!--Pause-->
|
||||
<!--</button>-->
|
||||
<!--</div>-->
|
||||
{% endverbatim %}
|
15
v1/old/templates_old/logged/angular/paused.html.twig
Executable file
15
v1/old/templates_old/logged/angular/paused.html.twig
Executable file
|
@ -0,0 +1,15 @@
|
|||
{% verbatim %}
|
||||
<div class="selling-on-hold">
|
||||
<h4>
|
||||
Ventes en pause
|
||||
</h4>
|
||||
<ul>
|
||||
<li ng-repeat="list in pausedSellings track by $index"
|
||||
ng-click="setBackPausedSelling(list, $index)">
|
||||
{{ $index }}) {{ list.products.length }} produits, <strong>
|
||||
{{ sumOfList(list) }}€ </strong>
|
||||
</li>
|
||||
</ul>
|
||||
<hr>
|
||||
</div>
|
||||
{% endverbatim %}
|
8
v1/old/templates_old/logged/angular/recent.html.twig
Executable file
8
v1/old/templates_old/logged/angular/recent.html.twig
Executable file
|
@ -0,0 +1,8 @@
|
|||
<div class="selling-history">
|
||||
{% verbatim %}
|
||||
<div ng-repeat="s in recentSelling track by $index">
|
||||
{{s.id}} )
|
||||
{{s.amount}} €
|
||||
</div>
|
||||
{% endverbatim %}
|
||||
</div>
|
33
v1/old/templates_old/logged/angular/totals.html.twig
Executable file
33
v1/old/templates_old/logged/angular/totals.html.twig
Executable file
|
@ -0,0 +1,33 @@
|
|||
{% verbatim %}
|
||||
<div class="">
|
||||
<div class="row clickable" >
|
||||
<div class="col-xs-12 col-sm-6 text-right">
|
||||
<h3 ng-click="setRightAmountPaid()">Total: </h3>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 text-right">
|
||||
<h3 ng-click="setRightAmountPaid()">
|
||||
<strong>
|
||||
{{ CurrentSellingTotal() }}
|
||||
</strong>€
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
||||
<div >
|
||||
Le client paie:
|
||||
</div>
|
||||
<div >
|
||||
<input class="text-right" type="number" id="paid_amount" ng-model="paidAmount">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="alert alert-success" ng-if="paidAmount && CurrentSellingTotal() - paidAmount <=0">
|
||||
<h3>Rendu: {{ -1*(CurrentSellingTotal() - paidAmount) }} €</h3>
|
||||
</div>
|
||||
<div class="alert alert-warning" ng-if="paidAmount && CurrentSellingTotal() - paidAmount >0">
|
||||
<h3>il manque: {{ CurrentSellingTotal() - paidAmount }} €</h3>
|
||||
</div>
|
||||
</div>
|
||||
{% endverbatim %}
|
13
v1/old/templates_old/logged/angular/validate-button.html.twig
Executable file
13
v1/old/templates_old/logged/angular/validate-button.html.twig
Executable file
|
@ -0,0 +1,13 @@
|
|||
{% verbatim %}
|
||||
<button class="btn btn-primary btn-block validate_selling" ng-click="sendForm(event)"
|
||||
ng-disabled="!paidAmount">
|
||||
<i class="fa fa-check"></i>
|
||||
|
||||
<span ng-if="paidAmount && CurrentSellingTotal() - paidAmount <=0">
|
||||
Valider
|
||||
</span>
|
||||
<span ng-if="paidAmount && CurrentSellingTotal() - paidAmount >0">
|
||||
<i class="fa fa-warning"></i>
|
||||
</span>
|
||||
</button>
|
||||
{% endverbatim %}
|
11
v1/old/templates_old/logged/caisse-main.html.twig
Executable file
11
v1/old/templates_old/logged/caisse-main.html.twig
Executable file
|
@ -0,0 +1,11 @@
|
|||
<div class="caisse-main-box">
|
||||
|
||||
{% verbatim %}
|
||||
<div id="not_loaded" ng-if="!initLoadDone">
|
||||
<div class="well text-center">
|
||||
<i class="fa fa-refresh fa-spin fa-3x"></i> Chargement en cours de vos produits
|
||||
</div>
|
||||
</div>
|
||||
{% endverbatim %}
|
||||
{% include 'logged/angular/loaded-caisse.html.twig' %}
|
||||
</div>
|
25
v1/old/templates_old/logged/customer.html.twig
Normal file
25
v1/old/templates_old/logged/customer.html.twig
Normal file
|
@ -0,0 +1,25 @@
|
|||
{% verbatim %}
|
||||
<!-- client actuel infos-->
|
||||
<div id="client-now" class="client-now padded">
|
||||
<i class="fa fa-user"></i>
|
||||
|
||||
<label for="sellingComment">
|
||||
|
||||
Client actuel: {{ activeSelling.length }} produit<span ng-if="activeSelling.length!=1">s</span>
|
||||
</label>
|
||||
<button type="button" class="deleter pull-right" ng-click="sellingComment = ''">
|
||||
<i class="fa fa-times"></i>
|
||||
</button>
|
||||
<input type="text"
|
||||
class="form-control"
|
||||
aria-label="Note about the client"
|
||||
id="sellingComment"
|
||||
aria-describedby="selling-comment"
|
||||
ng-model="sellingComment"
|
||||
ng-model-options="{ updateOn: 'keyup' , allowInvalid: true}"
|
||||
name="sellingComment"
|
||||
autofocus="autofocus"
|
||||
placeholder="nom ou commentaire">
|
||||
|
||||
</div>
|
||||
{% endverbatim %}
|
38
v1/old/templates_old/logged/dashboard.html.twig
Executable file
38
v1/old/templates_old/logged/dashboard.html.twig
Executable file
|
@ -0,0 +1,38 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block body %}
|
||||
{% verbatim %}
|
||||
<div id="caisse-now" class=""
|
||||
ng-app="caisse"
|
||||
ng-controller="CaisseCtrl as MainCtrl">
|
||||
<div class="caisse-main row-fluid" >
|
||||
|
||||
<div class="col-xs-12 ">
|
||||
<!-- ligne d'informations-->
|
||||
|
||||
{% endverbatim %}
|
||||
{% include 'logged/listing-options.html.twig' %}
|
||||
{% include 'logged/festival-infos.html.twig' %}
|
||||
{# </div>#}
|
||||
<div class="col-xs-12">
|
||||
|
||||
{% include 'logged/customer.html.twig' %}
|
||||
{% verbatim %}
|
||||
|
||||
</div>
|
||||
|
||||
<!--états de sauvegarde-->
|
||||
<div class="selling-ok alert-success alert block" ng-if="sellingOk" ng-click="sellingOk = false">
|
||||
<i class="fa fa-save"></i>
|
||||
Sauvegardé! WOHOOOOOO +{{recentSellings[recentSellings.length -1].amount}} €
|
||||
</div>
|
||||
<div class="selling-ok alert-error alert block" ng-if="sellingError" ng-click="sellingError = false">
|
||||
<i class="fa fa-warning"></i>
|
||||
Problème de sauvegarde (pas de réseau ?)
|
||||
</div>
|
||||
{% endverbatim %}
|
||||
{% include 'logged/caisse-main.html.twig' %}
|
||||
{% verbatim %}
|
||||
{% endverbatim %}
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
25
v1/old/templates_old/logged/festival-infos.html.twig
Normal file
25
v1/old/templates_old/logged/festival-infos.html.twig
Normal file
|
@ -0,0 +1,25 @@
|
|||
<div id="festival-current_info">
|
||||
<a class="btn " href=" {{ path('festival_index') }}">
|
||||
<i class="fa fa-th-large"></i>
|
||||
Festival:
|
||||
|
||||
{% verbatim %}
|
||||
{{activeFestival.name}}
|
||||
</a>
|
||||
<!-- <input type="text" ng-model="activeFestival.name" placeholder="nom du festival">-->
|
||||
<!-- <input class="pull-right" type="text" ng-model="activeFestival.commentaire" placeholder="commentaire">-->
|
||||
<span class="badge" title="fond de caisse + chiffre d'affaire. veillez à vider votre fond de caisse ailleurs lorsqu'il devient trop important, par exemple au dela de 200€" ng-class="{'badge-warning': activeFestival.fondDeCaisseAvant + activeFestival.chiffreAffaire > 200}">
|
||||
<i class="fa fa-archive"></i>
|
||||
{{ activeFestival.fondDeCaisseAvant + activeFestival.chiffreAffaire}} €
|
||||
</span>
|
||||
<span class="badge badge-success">
|
||||
CA {{ activeFestival.chiffreAffaire }} €
|
||||
<span ng-if="sellingOk">
|
||||
<i class="fa fa-check-circle-o"></i>
|
||||
</span>
|
||||
</span>
|
||||
<span class="badge badge-success">
|
||||
{{ activeFestival.clientsCount }} <i class="fa fa-user"></i>
|
||||
</span>
|
||||
{% endverbatim %}
|
||||
</div>
|
75
v1/old/templates_old/logged/history-script.html.twig
Executable file
75
v1/old/templates_old/logged/history-script.html.twig
Executable file
|
@ -0,0 +1,75 @@
|
|||
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
|
||||
<script>
|
||||
|
||||
var dataPoints = [
|
||||
{% for pair in statisticsSoldProducts %}
|
||||
{
|
||||
label: "{{ pair.name }}",
|
||||
x: {{ pair.count }},
|
||||
y: {{ pair.count }}
|
||||
},
|
||||
{% endfor %}
|
||||
];
|
||||
var dataPointsChiffreAffaire = [
|
||||
{% for pair in statisticsSoldProducts %}
|
||||
{
|
||||
label: "{{ pair.name }}",
|
||||
x: {{ pair.value }},
|
||||
y: {{ pair.value }}
|
||||
},
|
||||
{% endfor %}
|
||||
];
|
||||
var dataPointsFestivals = [
|
||||
{% for pair in statisticsFestivals %}
|
||||
{
|
||||
label: "{{ pair.name }} {{ pair.date|date('Y-m-d') }} , {{ pair.chiffreAffaire }} €",
|
||||
y: {{ pair.chiffreAffaire }} ,
|
||||
countClients : "{{ pair.clients_count }} clients"
|
||||
},
|
||||
{% endfor %}
|
||||
];
|
||||
console.log(dataPointsFestivals);
|
||||
var chartFestival = new CanvasJS.Chart("chartContainerstatisticsFestivals", {
|
||||
title:{
|
||||
text: "Chiffre d'affaire par festival"
|
||||
},
|
||||
animationEnabled: true,
|
||||
data: [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type: "column",
|
||||
dataPoints: dataPointsFestivals
|
||||
}
|
||||
]
|
||||
});
|
||||
console.log('dataPointsFestivals', dataPointsFestivals);
|
||||
chartFestival.render();
|
||||
var chart = new CanvasJS.Chart("chartContainer", {
|
||||
title:{
|
||||
text: "Volume de produits vendus"
|
||||
},
|
||||
animationEnabled: true,
|
||||
data: [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type: "pie",
|
||||
dataPoints: dataPoints
|
||||
}
|
||||
]
|
||||
});
|
||||
chart.render();
|
||||
var chartContainerChiffreAffaire = new CanvasJS.Chart("chartContainerChiffreAffaire", {
|
||||
title:{
|
||||
text: "Valeur en euros des produits vendus"
|
||||
},
|
||||
animationEnabled: true,
|
||||
data: [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type: "pie",
|
||||
dataPoints: dataPointsChiffreAffaire
|
||||
}
|
||||
]
|
||||
});
|
||||
chartContainerChiffreAffaire.render();
|
||||
</script>
|
156
v1/old/templates_old/logged/history.html.twig
Executable file
156
v1/old/templates_old/logged/history.html.twig
Executable file
|
@ -0,0 +1,156 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block body %}
|
||||
<div id="wrapper">
|
||||
<div id="container" class="container">
|
||||
|
||||
<div class="row">
|
||||
<h1>Historique</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="sells">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<h2>
|
||||
<i class="fa fa-users"></i>
|
||||
<span class="chiffre key-figure">
|
||||
{{ allSellings }}
|
||||
</span>
|
||||
Clients
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<h2>
|
||||
<i class="fa fa-euro"></i>
|
||||
<span class="chiffre key-figure">
|
||||
{{ chiffreAffaires }}
|
||||
</span>
|
||||
Chiffre d'affaires
|
||||
|
||||
</h2>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<h2>
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
<span class="chiffre key-figure">
|
||||
{% if allSellings %}
|
||||
{{ (chiffreAffaires / (allSellings))|round }}
|
||||
{% else %}
|
||||
?
|
||||
{% endif %}
|
||||
|
||||
</span>
|
||||
€ panier moyen
|
||||
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 ">
|
||||
<h2>Exporter toutes vos données</h2>
|
||||
<a class="btn btn-success" href="{{ path('export_all') }}">
|
||||
<i class="fa fa-file-excel-o fa-3x"></i>
|
||||
en format csv
|
||||
</a
|
||||
><a class="btn btn-success" href="{{ path('export_all_json') }}">
|
||||
<i class="fa fa-file-code-o fa-3x"></i>
|
||||
en JSON
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<h2 class="text-center">Statistiques de ventes </h2>
|
||||
<div id="chartContainer" style="display: inline-block; height: 300px; width: 49%;"></div>
|
||||
<div id="chartContainerChiffreAffaire" style="display: inline-block; height: 300px; width: 49%;"></div>
|
||||
<h2> {{ statisticsFestivals |length }} Festival
|
||||
{% if statisticsFestivals |length >1 %}
|
||||
s
|
||||
{% endif %}</h2>
|
||||
<div id="chartContainerstatisticsFestivals"
|
||||
style="display: inline-block; height: 300px; width: 100%;"></div>
|
||||
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
<div id="last-sellings">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
|
||||
|
||||
<div class="table">
|
||||
<div class="row-fluid">
|
||||
<div class="col-xs-12">
|
||||
<h2>
|
||||
{{ recentSells |length }} Dernières ventes
|
||||
</h2>
|
||||
</div>
|
||||
</div>
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>n°</td>
|
||||
<td>date</td>
|
||||
<td>commentaire</td>
|
||||
<td>produits</td>
|
||||
<td>montant</td>
|
||||
<td>Actions</td>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for vente in recentSells %}
|
||||
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
<td> {{ vente.id }}</td>
|
||||
<td> {{ vente.date |date('Y-m-d H:i:s') }}</td>
|
||||
<td>{{ vente.comment }}</td>
|
||||
<td class="text-right">
|
||||
{% if vente.productsSold |length >1 %}
|
||||
<strong>
|
||||
{{ vente.productsSold |length }}
|
||||
</strong> produits
|
||||
|
||||
{% else %}
|
||||
{% if vente.productsSold and vente.productsSold.0 is defined %}
|
||||
|
||||
{{ vente.productsSold.0.name }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
</td>
|
||||
<td class="text-right">
|
||||
{{ vente.amount }}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{{ path('sellrecord_delete',{id: vente.id }) }}"
|
||||
class="btn btn-warning pull-right">
|
||||
<i class="fa fa-trash"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr> {% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
{% include ':logged:history-script.html.twig' %}
|
||||
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
39
v1/old/templates_old/logged/import.html.twig
Executable file
39
v1/old/templates_old/logged/import.html.twig
Executable file
|
@ -0,0 +1,39 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block body %}
|
||||
<h1>Importation, création en masse</h1>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 ">
|
||||
{% include 'logged/mass-register.html.twig' %}
|
||||
</div>
|
||||
<div class="col-xs-12">
|
||||
<h2>
|
||||
|
||||
Importer votre historique de ventes
|
||||
</h2>
|
||||
<div class="alert alert-warning">
|
||||
<i class="fa fa-warning"></i>
|
||||
Fonctionnalité en cours de création
|
||||
</div>
|
||||
{# 1)#}
|
||||
{# <a class="btn btn-success" href="{{ asset('modele_import_caisse.csv') }}">#}
|
||||
{# <i class="fa fa-file-o fa-3x"></i>#}
|
||||
{# Télécharger le fichier de modèle#}
|
||||
{# </a>#}
|
||||
{# <hr>#}
|
||||
{# 2) Remplir votre modèle avec vos ventes#}
|
||||
{# <hr>#}
|
||||
{# 3) à faire#}
|
||||
{#<form action="{{ path('import') }}" method="post">#}
|
||||
{#<fieldset>#}
|
||||
|
||||
{#Importer votre modèle rempli#}
|
||||
{#<input disabled type="file" name="fichier_import">#}
|
||||
{#<input disabled class="btn btn-primary btn-block" type="submit" value="importer votre historique">#}
|
||||
{#</fieldset>#}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
48
v1/old/templates_old/logged/listing-options.html.twig
Normal file
48
v1/old/templates_old/logged/listing-options.html.twig
Normal file
|
@ -0,0 +1,48 @@
|
|||
<div id="festival-listing-options">
|
||||
{% verbatim %}
|
||||
<!-- options-->
|
||||
<div class="row marged-v" ng-if="simpleDisplay">
|
||||
<button class="btn btn-success" ng-click="toggleSimpleDisplay()">
|
||||
<i class="fa fa-bars"></i> Affichage simple <i class="fa fa-check-circle"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="row marged-v" ng-if="! simpleDisplay">
|
||||
<div class="col-xs-12 col-md-6" id="main_options">
|
||||
<button class="btn btn-disabled" ng-click="toggleSimpleDisplay()">
|
||||
<i class="fa fa-bars"></i> Affichage simple
|
||||
</button>
|
||||
<button
|
||||
title="la vente express vous permet d'enregistrer une vente pour un seul article sans remplir le formulaire de détail"
|
||||
class="btn"
|
||||
ng-class="{'btn-success': show_config.expressSelling, 'btn-disabled':! show_config.expressSelling}"
|
||||
ng-click="show_config.expressSelling = !show_config.expressSelling">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
vente express
|
||||
<span ng-if=show_config.show_config.expressSelling>
|
||||
<i class="fa fa-check-circle"></i></span>
|
||||
</button>
|
||||
<button
|
||||
title="montrer le nombre d'objets restants dans les stocks"
|
||||
class="btn"
|
||||
ng-class="{'btn-success': show_config.stock_count, 'btn-disabled':!show_config.stock_count}"
|
||||
ng-click="show_config.stock_count = !show_config.stock_count">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
stocks
|
||||
<span ng-if=show_config.stock_count>
|
||||
<i class="fa fa-check-circle"></i></span>
|
||||
</button>
|
||||
<button
|
||||
title="montrer le nombre d'objets restants dans les stocks"
|
||||
class="btn"
|
||||
ng-class="{'btn-success': show_config.sold, 'btn-disabled':!show_config.sold}"
|
||||
ng-click="show_config.sold = !show_config.sold">
|
||||
<i class="fa fa-shopping-cart"></i>
|
||||
vendus
|
||||
<span ng-if=show_config.sold>
|
||||
<i class="fa fa-check-circle"></i>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endverbatim %}
|
||||
</div>
|
49
v1/old/templates_old/logged/mass-register.html.twig
Executable file
49
v1/old/templates_old/logged/mass-register.html.twig
Executable file
|
@ -0,0 +1,49 @@
|
|||
<div id="mass-register">
|
||||
<form action="{{ path('mass_create') }}" method="post">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<blockquote>
|
||||
<strong>Vous pouvez copier et adapter cet exemple: </strong>
|
||||
<pre id="example_mass_import">
|
||||
catégorie: livre
|
||||
les moutaines;5€
|
||||
la laine des moutons;6€
|
||||
star wars spécial noël;7€
|
||||
catégorie: poster
|
||||
super bannière A2;10€
|
||||
Sébastien Chabal sexy;10€
|
||||
catégorie: dessin à la demande
|
||||
dessin A4 crayon;20€
|
||||
dessin A4 aquarelle;150€
|
||||
</pre>
|
||||
<a href="#filling_zone" id="use_example">
|
||||
<i class="fa fa-arrow-down"></i>
|
||||
Utiliser l'exemple
|
||||
</a>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<div class="well" id="filling_zone">
|
||||
|
||||
<label for="produits">
|
||||
<h3>
|
||||
Créez vos produits et leur catégorie en masse, un par ligne.
|
||||
</h3>
|
||||
Séparez le nom du produit de son prix avec un point virgule. vous n'êtes pas obligé de préciser
|
||||
le symbole € pour le prix. Utilisez une virgule ou un point pour faire des prix à virgule. Si le
|
||||
nom de catégorie existe déjà, le produit sera associé avec celle-ci.
|
||||
</label>
|
||||
<textarea style="width: 100%;" name="produits" id="produits" cols="30" rows="10"
|
||||
placeholder="catégorie et produits">
|
||||
catégorie: livre
|
||||
mon livre ; 5€
|
||||
</textarea>
|
||||
<input class="btn btn-primary btn-block" type="submit" value="créer en masse">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
8
v1/old/templates_old/logged/ng2.html.twig
Executable file
8
v1/old/templates_old/logged/ng2.html.twig
Executable file
|
@ -0,0 +1,8 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block body %}
|
||||
<div id="wrapper">
|
||||
<h1>Appli angular embarquée</h1>
|
||||
<script href="{{ asset('/assets/js/build-frontend-submodule/main.js') }}"></script>
|
||||
<div ng-app="tktest"></div>
|
||||
</div>
|
||||
{% endblock %}
|
281
v1/old/templates_old/logged/previsionnel.html.twig
Executable file
281
v1/old/templates_old/logged/previsionnel.html.twig
Executable file
|
@ -0,0 +1,281 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
{% block body %}
|
||||
{% verbatim %}
|
||||
|
||||
<div id="wrapper">
|
||||
<div class="previsionnel"
|
||||
ng-app="caisse"
|
||||
ng-controller="previsionnelCtrl as pCtrl"
|
||||
>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-lg-6">
|
||||
<h1>Prévisionnel</h1>
|
||||
</div>
|
||||
<div class="col-xs-12 col-lg-6">
|
||||
|
||||
<div ng-if="config.initialLoadingDone && config.loading">
|
||||
<i class="fa fa-spin fa-refresh"></i>
|
||||
Chargement
|
||||
</div>
|
||||
<div ng-if="config.initialLoadingDone && !config.loading">
|
||||
Modifications sauvegardées
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<div class="config well">
|
||||
<h2>
|
||||
Configuration
|
||||
</h2>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<p >
|
||||
<label for="dispo">
|
||||
|
||||
Euros disponibles au départ:
|
||||
</label>
|
||||
<input
|
||||
id="dispo"
|
||||
class="big-number"
|
||||
type="number"
|
||||
ng-model="config.disponibility"
|
||||
ng-change="save()"
|
||||
ng-model-options="{ debounce: config.debounceTime }">
|
||||
<br>
|
||||
<label for="gains">
|
||||
Gains moyen par mois:
|
||||
</label>
|
||||
|
||||
<input type="number"
|
||||
class="big-number"
|
||||
id="gains"
|
||||
ng-model="config.averageMonthlyEarnings"
|
||||
ng-change="save()"
|
||||
ng-model-options="{ debounce: config.debounceTime }">
|
||||
</p>
|
||||
<p>
|
||||
Gérer délais de paiement
|
||||
<input type="checkbox" ng-model="config.showDelays">
|
||||
Gérer répétitions
|
||||
<input type="checkbox" ng-model="config.showRepeats">
|
||||
</p>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
<p>
|
||||
<strong>
|
||||
Dépenses mensuelles:
|
||||
<span class="big-number">
|
||||
|
||||
{{ sumMonthlyExpenses() }} €
|
||||
</span>
|
||||
</strong>
|
||||
</p>
|
||||
<p>
|
||||
<strong>
|
||||
Bénef mensuel: <span class="big-number">{{ config.averageMonthlyEarnings - sumMonthlyExpenses() }} €</span>
|
||||
</strong>
|
||||
</p>
|
||||
<p>
|
||||
Crédit mensuel réalisable (33% des gains moyens par mois): {{ config.averageMonthlyEarnings * 0.33 |number }} €
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-lg-7 postes">
|
||||
<h2>
|
||||
{{expenses.length}} Postes de dépenses mensuelles
|
||||
<button ng-click="addExpense()">+</button>
|
||||
</h2>
|
||||
<p class="desc">
|
||||
Indiquez les catégories de dépenses mensuelles que vous faites pour faire évoluer la
|
||||
simulation de budget restant dans plusieurs mois.
|
||||
</p>
|
||||
<table class="exepanse-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="padded" >
|
||||
Nom
|
||||
</td>
|
||||
<td class="padded" ng-if="config.showDelays">
|
||||
débute dans X mois
|
||||
</td>
|
||||
<td class="padded" ng-if="config.showRepeats">
|
||||
mois répétitions
|
||||
</td>
|
||||
<td class="padded" ng-if="config.showRepeats">
|
||||
prix répétitions
|
||||
</td>
|
||||
<td class="padded" >
|
||||
prix mensuel
|
||||
</td>
|
||||
<td class="padded" >
|
||||
prix annuel
|
||||
</td>
|
||||
<td class="padded" >
|
||||
activé
|
||||
</td>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
<tr ng-repeat="e in expenses ">
|
||||
<td>
|
||||
<input type="text" ng-model="e.name" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
|
||||
</td>
|
||||
<td ng-if="config.showDelays">
|
||||
|
||||
<input type="number" ng-model="e.delay" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
|
||||
</td>
|
||||
<td ng-if="config.showRepeats">
|
||||
<input type="number" ng-model="e.repeat" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
|
||||
</td>
|
||||
<td ng-if="config.showRepeats" class="text-right padded">
|
||||
{{ e.repeat * e.amount }}
|
||||
</td>
|
||||
<td>
|
||||
<input type="number" ng-model="e.amount" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
|
||||
</td>
|
||||
<td class="text-right padded">
|
||||
<strong>
|
||||
|
||||
{{ e.amount * 12 }}
|
||||
</strong>
|
||||
€
|
||||
</td>
|
||||
<td class="padded">
|
||||
<input type="checkbox" ng-model="e.enabled" ng-change="save()" ng-model-options="{ debounce: config.debounceTime }">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="well examples-depenses">
|
||||
<strong>
|
||||
Exemples de postes de dépenses à ajouter:
|
||||
</strong>
|
||||
{% endverbatim %}
|
||||
{{ "
|
||||
appartement
|
||||
mutuelle
|
||||
transport en commun
|
||||
assurance voiture
|
||||
assurance moto
|
||||
trucs de loisirs divers
|
||||
gaz
|
||||
elec
|
||||
internet
|
||||
épargne
|
||||
impots
|
||||
cottisation URSSAF
|
||||
resto au boulot
|
||||
courses
|
||||
serveur wouaibe
|
||||
abonnement protonmail VPN
|
||||
abonnement service audio, vidéo
|
||||
carburant véhicule
|
||||
donations
|
||||
médecin
|
||||
chat
|
||||
chien
|
||||
licorne"|nl2br }}
|
||||
|
||||
{% verbatim %}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12 col-lg-5">
|
||||
|
||||
<h2>Simulation sur {{config.lines}} mois</h2>
|
||||
<div class="" id="simulationPrevision" style="display: inline-block; height: 300px; width: 90%;">(graphique)</div>
|
||||
|
||||
<!--block to insert the graph-->
|
||||
<div class="well big-number" ng-if="config.monthsBeforeNoMoney && config.monthsBeforeNoMoney <= config.lines">
|
||||
<i class="fa fa-warning"></i>
|
||||
Ce sera la dèche dans {{config.monthsBeforeNoMoney}} mois
|
||||
</div>
|
||||
<div ng-if=" ! config.monthsBeforeNoMoney" class="bg-success padded">
|
||||
cool ! votre plan est supportable dans le temps
|
||||
</div>
|
||||
<table>
|
||||
<thead>
|
||||
<tr >
|
||||
<td class="padded" >
|
||||
Month in the future
|
||||
</td>
|
||||
<td class="padded" >
|
||||
date
|
||||
</td>
|
||||
<td class="padded" >
|
||||
Dépenses
|
||||
</td>
|
||||
<td class="padded" >
|
||||
Disponibilité
|
||||
</td>
|
||||
</trclass>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="line in previsionTable" >
|
||||
<td>
|
||||
<div ng-if="line.available > config.warningThershold"
|
||||
class=" bgsuccess padded ">
|
||||
{{ $index }}
|
||||
</div>
|
||||
<div ng-if="line.available > 0 && line.available < config.warningThershold"
|
||||
class="bgwarning padded ">
|
||||
{{ $index }} bientôt la dèche
|
||||
</div>
|
||||
<div ng-if="line.available < 0"
|
||||
class="bgdanger padded ">
|
||||
{{ $index }} DAMNED pu de pognon!
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
-
|
||||
</td>
|
||||
<td class="text-right ">
|
||||
|
||||
{{ line.expense }}
|
||||
</td>
|
||||
<td class="text-right"
|
||||
ngClass="{'bgdanger' : line.available < 0 }">
|
||||
|
||||
<strong>
|
||||
|
||||
{{ line.available}}
|
||||
</strong>
|
||||
€
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>-->
|
||||
<script>
|
||||
|
||||
var dataPoints = {{graphPointsPrevision}} ;
|
||||
var chartContainerChiffreAffaire = new CanvasJS.Chart("simulationPrevision", {
|
||||
title:{
|
||||
text: "Euros disponibles dans le temps"
|
||||
},
|
||||
animationEnabled: true,
|
||||
data: [
|
||||
{
|
||||
// Change type to "doughnut", "line", "splineArea", etc.
|
||||
type: "splineArea",
|
||||
dataPoints: dataPoints
|
||||
}
|
||||
]
|
||||
});
|
||||
chartContainerChiffreAffaire.render();
|
||||
</script>
|
||||
|
||||
{% endverbatim %}
|
||||
{% endblock %}
|
24
v1/old/templates_old/product/edit.html.twig
Executable file
24
v1/old/templates_old/product/edit.html.twig
Executable file
|
@ -0,0 +1,24 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Product edit</h1>
|
||||
|
||||
{{ form_start(edit_form) }}
|
||||
{{ form_widget(edit_form) }}
|
||||
<input type="submit" value="Edit"/>
|
||||
{{ form_end(edit_form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('product_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
74
v1/old/templates_old/product/index.html.twig
Executable file
74
v1/old/templates_old/product/index.html.twig
Executable file
|
@ -0,0 +1,74 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row heading-of-list">
|
||||
<div class="col-xs-6">
|
||||
<h1>Produits</h1></div>
|
||||
<div class="col-xs-6">
|
||||
|
||||
<a class="btn btn-primary pull-right" href="{{ path('product_new') }}">Nouveau produit</a>
|
||||
<span class="hint alert alert-info pull-right">
|
||||
astuce: Utilisez
|
||||
<strong>
|
||||
|
||||
<a href="{{ path('import') }}">
|
||||
l'import de masse
|
||||
</a>
|
||||
</strong>
|
||||
pour créer plusieurs produits et catégories à la fois
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<thead class="bg-dark">
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Category</th>
|
||||
<th>Name</th>
|
||||
<th>Image</th>
|
||||
<th>Price</th>
|
||||
<th>Stocks</th>
|
||||
<th>Vendus</th>
|
||||
<th>Comment</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for product in products %}
|
||||
<tr>
|
||||
<td>
|
||||
<a class="btn btn-primary btn-block"
|
||||
href="{{ path('product_show', { 'id': product.id }) }}">{{ product.id }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-primary btn-block"
|
||||
href="{{ path('productcategory_edit', { 'id': product.category.id }) }}">
|
||||
{{ product.category.name }}
|
||||
</a>
|
||||
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-default btn-block" href="{{ path('product_edit', { 'id': product.id }) }}">
|
||||
{{ product.name }}
|
||||
</a>
|
||||
</td>
|
||||
<td>{{ product.image }}</td>
|
||||
<td>{{ product.price }}</td>
|
||||
<td>{{ product.stockCount }}</td>
|
||||
<td>{{ product.productsSold | length }}</td>
|
||||
<td>{{ product.comment }}</td>
|
||||
<td>
|
||||
<a class="btn btn-default" href="{{ path('product_edit', { 'id': product.id }) }}">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<a class="btn btn-primary" href="{{ path('product_new') }}">Nouveau produit</a>
|
||||
{% endblock %}
|
19
v1/old/templates_old/product/new.html.twig
Executable file
19
v1/old/templates_old/product/new.html.twig
Executable file
|
@ -0,0 +1,19 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Product creation</h1>
|
||||
|
||||
{{ form_start(form) }}
|
||||
{{ form_widget(form) }}
|
||||
<input type="submit" class="btn btn-primary btn-block" value="Créer"/>
|
||||
{{ form_end(form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('product_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
47
v1/old/templates_old/product/show.html.twig
Executable file
47
v1/old/templates_old/product/show.html.twig
Executable file
|
@ -0,0 +1,47 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Product</h1>
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<td>{{ product.id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td>{{ product.name }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Image</th>
|
||||
<td>{{ product.image }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Price</th>
|
||||
<td>{{ product.price }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Comment</th>
|
||||
<td>{{ product.comment }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('product_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('product_edit', { 'id': product.id }) }}">edit</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
1
v1/old/templates_old/product/test.html.twig
Executable file
1
v1/old/templates_old/product/test.html.twig
Executable file
|
@ -0,0 +1 @@
|
|||
essai qui marche
|
41
v1/old/templates_old/productcategory/edit.html.twig
Executable file
41
v1/old/templates_old/productcategory/edit.html.twig
Executable file
|
@ -0,0 +1,41 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Catégorie <strong> {{ productCategory.name }} </strong></h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
{{ form_start(edit_form) }}
|
||||
{{ form_widget(edit_form) }}
|
||||
<input type="submit" value="Edit"/>
|
||||
{{ form_end(edit_form) }}
|
||||
<div class="padded">
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary btn-block" href="{{ path('productcategory_index') }}"> <i
|
||||
class="fa fa-arrow-left"></i> Retour à la liste</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input class="btn btn-warning btn-block" type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6">
|
||||
|
||||
<h2>{{ productCategory.products|length }} Produits associés</h2>
|
||||
<div class="listing">
|
||||
{% for p in productCategory.products %}
|
||||
<a class="btn btn-default btn-block" href="{{ path('product_edit', { 'id': p.id }) }}">
|
||||
{{ p.name }}
|
||||
</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
49
v1/old/templates_old/productcategory/index.html.twig
Executable file
49
v1/old/templates_old/productcategory/index.html.twig
Executable file
|
@ -0,0 +1,49 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row heading-of-list">
|
||||
<div class="col-xs-6">
|
||||
<h1>Catégorie de produit</h1></div>
|
||||
<div class="col-xs-6">
|
||||
<a class="btn btn-primary" href="{{ path('productcategory_new') }}">Nouvelle catégorie</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<th>Nom</th>
|
||||
<th>Produits</th>
|
||||
<th>Vendus</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for productCategory in productCategories %}
|
||||
<tr>
|
||||
<td>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('productcategory_show', { 'id': productCategory.id }) }}">{{ productCategory.id }}</a>
|
||||
</td>
|
||||
<td><a class="btn btn-default btn-block"
|
||||
href="{{ path('productcategory_edit', { 'id': productCategory.id }) }}">
|
||||
{{ productCategory.name }}
|
||||
</a></td>
|
||||
<td>{{ productCategory.products|length }}</td>
|
||||
<td>{{ productCategory.productsSold|length }}</td>
|
||||
<td>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('productcategory_edit', { 'id': productCategory.id }) }}">
|
||||
<i class="fa fa-pencil"></i>
|
||||
edit
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<a class="btn btn-primary" href="{{ path('productcategory_new') }}">Nouvelle catégorie</a>
|
||||
{% endblock %}
|
16
v1/old/templates_old/productcategory/new.html.twig
Executable file
16
v1/old/templates_old/productcategory/new.html.twig
Executable file
|
@ -0,0 +1,16 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Création de catégorie de produit</h1>
|
||||
|
||||
{{ form_start(form) }}
|
||||
{{ form_widget(form) }}
|
||||
<input type="submit" class="btn btn-primary btn-block" value="Créer" />
|
||||
{{ form_end(form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('productcategory_index') }}"> <i class="fa fa-arrow-left"></i>Retour à la liste</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
32
v1/old/templates_old/productcategory/show.html.twig
Executable file
32
v1/old/templates_old/productcategory/show.html.twig
Executable file
|
@ -0,0 +1,32 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Productcategory</h1>
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Id</th>
|
||||
<td>{{ productCategory.id }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td>{{ productCategory.name }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('productcategory_index') }}"> <i class="fa fa-arrow-left"></i>Retour à la liste</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('productcategory_edit', { 'id': productCategory.id }) }}">edit</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
21
v1/old/templates_old/sellrecord/edit.html.twig
Executable file
21
v1/old/templates_old/sellrecord/edit.html.twig
Executable file
|
@ -0,0 +1,21 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Sellrecord edit</h1>
|
||||
|
||||
{{ form_start(edit_form) }}
|
||||
{{ form_widget(edit_form) }}
|
||||
<input type="submit" value="Edit" />
|
||||
{{ form_end(edit_form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_index') }}"> <i class="fa fa-arrow-left"></i>Retour à la liste</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
54
v1/old/templates_old/sellrecord/index.html.twig
Executable file
54
v1/old/templates_old/sellrecord/index.html.twig
Executable file
|
@ -0,0 +1,54 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<div class="row heading-of-list">
|
||||
<div class="col-xs-6">
|
||||
<h1>Enregistrements de ventes</h1>
|
||||
</div>
|
||||
<div class="col-xs-6">
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_new') }}">Nouvel enregistrement</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for sellRecord in sellRecords %}
|
||||
<tr>
|
||||
<td>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('sellrecord_show', { 'date': sellRecord.date }) }}">{{ sellRecord.date }}</a>
|
||||
</td>
|
||||
<td>
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('sellrecord_show', { 'date': sellRecord.date }) }}">voir
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary"
|
||||
href="{{ path('sellrecord_edit', { 'date': sellRecord.date }) }}">
|
||||
<i class="fa fa-pencil"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_new') }}">Nouveau sellRecord</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
19
v1/old/templates_old/sellrecord/new.html.twig
Executable file
19
v1/old/templates_old/sellrecord/new.html.twig
Executable file
|
@ -0,0 +1,19 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Sellrecord creation</h1>
|
||||
|
||||
{{ form_start(form) }}
|
||||
{{ form_widget(form) }}
|
||||
<input type="submit" class="btn btn-primary btn-block" value="Créer"/>
|
||||
{{ form_end(form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
31
v1/old/templates_old/sellrecord/show.html.twig
Executable file
31
v1/old/templates_old/sellrecord/show.html.twig
Executable file
|
@ -0,0 +1,31 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Sellrecord</h1>
|
||||
|
||||
<table class="table-responsive table-striped table table-bordered table-light">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<td>{% if sellRecord.date %}{{ sellRecord.date|date('Y-m-d H:i:s') }}{% endif %}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_index') }}">
|
||||
<i class="fa fa-arrow-left"></i>
|
||||
Retour à la liste
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-primary" href="{{ path('sellrecord_edit', { 'date': sellRecord.date }) }}">edit</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
21
v1/old/templates_old/seriefestival/edit.html.twig
Executable file
21
v1/old/templates_old/seriefestival/edit.html.twig
Executable file
|
@ -0,0 +1,21 @@
|
|||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block body %}
|
||||
<h1>Seriefestival edit</h1>
|
||||
|
||||
{{ form_start(edit_form) }}
|
||||
{{ form_widget(edit_form) }}
|
||||
<input type="submit" value="Edit" />
|
||||
{{ form_end(edit_form) }}
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
<a href="{{ path('seriefestival_index') }}">Back to the list</a>
|
||||
</li>
|
||||
<li>
|
||||
{{ form_start(delete_form) }}
|
||||
<input type="submit" value="Delete">
|
||||
{{ form_end(delete_form) }}
|
||||
</li>
|
||||
</ul>
|
||||
{% endblock %}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue