Browse Source

Intégration Souke

feature/souke
Guillaume Bourgeois 9 months ago
parent
commit
66e30e8afa
11 changed files with 397 additions and 575 deletions
  1. +32
    -31
      common/web/css/screen.css
  2. +1
    -0
      common/web/sass/_common.scss
  3. +5
    -3
      frontend/controllers/SiteController.php
  4. +2
    -2
      frontend/views/layouts/main.php
  5. +1
    -1
      frontend/views/site/_button_producer_signup.php
  6. +77
    -0
      frontend/views/site/iamproducer.php
  7. +0
    -116
      frontend/views/site/index.php.back
  8. +203
    -250
      frontend/web/css/screen.css
  9. +18
    -48
      frontend/web/js/frontend.js
  10. +25
    -43
      frontend/web/sass/_responsive.scss
  11. +33
    -81
      frontend/web/sass/screen.scss

+ 32
- 31
common/web/css/screen.css View File

@@ -161,8 +161,9 @@ termes.
#main .btn-secondary:hover, #main .btn-secondary:focus, #main .btn-secondary.active {
background-color: #ece4d8;
border: 0px none;
color: black;
}
/* line 27, ../sass/_common.scss */
/* line 28, ../sass/_common.scss */
#main .alert-information {
padding: 20px;
margin-bottom: 20px;
@@ -174,22 +175,22 @@ termes.
border-radius: 0px !important;
}

/* line 38, ../sass/_common.scss */
/* line 39, ../sass/_common.scss */
.float-left {
float: left;
}

/* line 42, ../sass/_common.scss */
/* line 43, ../sass/_common.scss */
.float-right {
float: right;
}

/* Navigation utilisateur en haut du site */
/* line 47, ../sass/_common.scss */
/* line 48, ../sass/_common.scss */
.container-nav-user-top {
position: relative;
}
/* line 50, ../sass/_common.scss */
/* line 51, ../sass/_common.scss */
.container-nav-user-top .nav-user-top {
position: absolute;
top: 0px;
@@ -197,7 +198,7 @@ termes.
background-color: white;
z-index: 100;
}
/* line 57, ../sass/_common.scss */
/* line 58, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar {
-moz-border-radius: 0px;
-webkit-border-radius: 0px;
@@ -207,16 +208,16 @@ termes.
margin: 0px;
min-height: 0px;
}
/* line 64, ../sass/_common.scss */
/* line 65, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul {
position: relative;
left: -10px;
}
/* line 68, ../sass/_common.scss */
/* line 69, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li {
padding-left: 5px;
}
/* line 71, ../sass/_common.scss */
/* line 72, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li a.nav-link {
padding-left: 10px;
padding-right: 10px;
@@ -226,12 +227,12 @@ termes.
color: black;
font-size: 16px;
}
/* line 80, ../sass/_common.scss */
/* line 81, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li a.nav-link:hover, .container-nav-user-top .nav-user-top .navbar ul li a.nav-link:focus, .container-nav-user-top .nav-user-top .navbar ul li a.nav-link.active {
background: none;
color: #ee6f42;
}
/* line 85, ../sass/_common.scss */
/* line 86, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li a.nav-link .bi {
color: #ee6f42;
font-size: 16px;
@@ -239,30 +240,30 @@ termes.
position: relative;
top: 1px;
}
/* line 95, ../sass/_common.scss */
/* line 96, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li .dropdown-menu a {
padding: 2px 20px;
}
/* line 98, ../sass/_common.scss */
/* line 99, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .navbar ul li .dropdown-menu a:hover, .container-nav-user-top .nav-user-top .navbar ul li .dropdown-menu a:focus {
background-color: #ece4d8;
}
/* line 108, ../sass/_common.scss */
/* line 109, ../sass/_common.scss */
.container-nav-user-top .nav-user-top .dropdown-menu .divider.dropdown-header {
padding: 0px;
}

@media screen and (max-width: 768px) {
/* line 119, ../sass/_common.scss */
/* line 120, ../sass/_common.scss */
.nav-user-top .navbar ul {
float: right;
margin-right: 0px;
}
/* line 124, ../sass/_common.scss */
/* line 125, ../sass/_common.scss */
.nav-user-top .navbar .link-text {
display: none;
}
/* line 128, ../sass/_common.scss */
/* line 129, ../sass/_common.scss */
.nav-user-top .navbar .dropdown-menu {
position: absolute;
right: 5%;
@@ -273,32 +274,32 @@ termes.
-webkit-box-shadow: 0px 0px 4px gray;
box-shadow: 0px 0px 4px gray;
}
/* line 137, ../sass/_common.scss */
/* line 138, ../sass/_common.scss */
.nav-user-top .navbar .dropdown-menu li a {
padding-left: 15px;
}
}
/* Block de date */
/* line 147, ../sass/_common.scss */
/* line 148, ../sass/_common.scss */
.block-date {
margin: 0px auto;
padding-top: 0px;
text-align: center;
}
/* line 152, ../sass/_common.scss */
/* line 153, ../sass/_common.scss */
.block-date .day {
text-transform: capitalize;
line-height: 15px;
font-size: 13px;
text-transform: uppercase;
}
/* line 159, ../sass/_common.scss */
/* line 160, ../sass/_common.scss */
.block-date .num {
font-size: 30px;
line-height: 35px;
font-weight: bold;
}
/* line 165, ../sass/_common.scss */
/* line 166, ../sass/_common.scss */
.block-date .month {
text-transform: uppercase;
line-height: 15px;
@@ -307,46 +308,46 @@ termes.
}

/* Page d'erreur */
/* line 175, ../sass/_common.scss */
/* line 176, ../sass/_common.scss */
#main #content .site-error .col-lg-6 {
margin: 0px auto;
float: none;
}
/* line 181, ../sass/_common.scss */
/* line 182, ../sass/_common.scss */
#main #content .site-error .panel .panel-body {
padding-bottom: 0px;
}
/* line 185, ../sass/_common.scss */
/* line 186, ../sass/_common.scss */
#main #content .site-error .panel h2 {
text-transform: none;
font-size: 25px;
margin-top: 0px;
margin-bottom: 0px;
}
/* line 193, ../sass/_common.scss */
/* line 194, ../sass/_common.scss */
#main #content .site-error .alert {
padding-bottom: 5px;
}
/* line 196, ../sass/_common.scss */
/* line 197, ../sass/_common.scss */
#main #content .site-error .alert h2 {
margin-top: 5px;
}
/* line 200, ../sass/_common.scss */
/* line 201, ../sass/_common.scss */
#main #content .site-error .alert p {
margin-bottom: 15px;
}
/* line 204, ../sass/_common.scss */
/* line 205, ../sass/_common.scss */
#main #content .site-error .alert .btn {
text-decoration: none;
}

/* Paiement */
/* line 215, ../sass/_common.scss */
/* line 216, ../sass/_common.scss */
.payment-detail-remaining-surplus {
font-size: 13px;
color: gray;
}
/* line 219, ../sass/_common.scss */
/* line 220, ../sass/_common.scss */
.payment-detail-remaining-surplus strong {
font-weight: bold;
}

+ 1
- 0
common/web/sass/_common.scss View File

@@ -21,6 +21,7 @@
&:hover, &:focus, &.active {
background-color: $color-gray;
border: 0px none;
color: black;
}
}


+ 5
- 3
frontend/controllers/SiteController.php View File

@@ -133,9 +133,6 @@ class SiteController extends FrontendController
}
}

/**
* Affiche la page d'accueil.
*/
public function actionIndex()
{
$dataProviderProducers = new ActiveDataProvider([
@@ -151,6 +148,11 @@ class SiteController extends FrontendController
]);
}

public function actionIamproducer()
{
return $this->render('iamproducer', []);
}

public function actionService()
{
$paidFeaturesArray = $this->getFeatureModule()->getRepository()->findPaidFeatures();

+ 2
- 2
frontend/views/layouts/main.php View File

@@ -108,8 +108,8 @@ $adminSettingBag = $settingModule->getAdminSettingBag();
],
[
'label' => 'Je suis producteur',
'url' => $this->getUrlManager()->createUrl(['site/producers']),
'active' => $this->getControllerAction() == 'site/producers',
'url' => $this->getUrlManager()->createUrl(['site/iamproducer']),
'active' => $this->getControllerAction() == 'site/iamproducer',
'options' => ['id' => 'li-producteurs']
],
[

+ 1
- 1
frontend/views/site/_button_producer_signup.php View File

@@ -10,7 +10,7 @@ $userCurrent = $this->getUserCurrent();
<?php if(Yii::$app->user->isGuest || $userModule->getSolver()->isStatusUser($userCurrent)): ?>
<a class="btn btn-primary"
href="<?= Yii::$app->user->isGuest ? \Yii::$app->urlManagerFrontend->createUrl(['site/signup']) : \Yii::$app->urlManagerFrontend->createUrl(['site/signup-producer']); ?>">
<span class="glyphicon glyphicon-user"></span> Je crée mon espace producteur
<i class="bi bi-shop"></i> Je crée mon espace producteur
</a><br />
<?php if($producerManager->getMaximumNumberProducers()): ?>
<strong><?= ($producerSignupRemainingPlaces); ?></strong>

+ 77
- 0
frontend/views/site/iamproducer.php View File

@@ -0,0 +1,77 @@
<?php

/**
* Copyright distrib (2018)
*
* contact@opendistrib.net
*
* Ce logiciel est un programme informatique servant à aider les producteurs
* à distribuer leur production en circuits courts.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions
* de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
* sur le site "http://www.cecill.info".
*
* En contrepartie de l'accessibilité au code source et des droits de copie,
* de modification et de redistribution accordés par cette licence, il n'est
* offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
* seule une responsabilité restreinte pèse sur l'auteur du programme, le
* titulaire des droits patrimoniaux et les concédants successifs.
*
* A cet égard l'attention de l'utilisateur est attirée sur les risques
* associés au chargement, à l'utilisation, à la modification et/ou au
* développement et à la reproduction du logiciel par l'utilisateur étant
* donné sa spécificité de logiciel libre, qui peut le rendre complexe à
* manipuler et qui le réserve donc à des développeurs et des professionnels
* avertis possédant des connaissances informatiques approfondies. Les
* utilisateurs sont donc invités à charger et tester l'adéquation du
* logiciel à leurs besoins dans des conditions permettant d'assurer la
* sécurité de leurs systèmes et ou de leurs données et, plus généralement,
* à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
*
* Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
* pris connaissance de la licence CeCILL, et que vous en avez accepté les
* termes.
*/

$this->setTitle("M'organiser dans mon activité de producteur");
//$this->setMeta('description', '');

$producerModule = $this->getProducerModule();

?>
<div class="site-iamproducer">
<div class="panel panel-primary panel-padding-large">
<!--<div class="panel-heading">
<h2 class="panel-title">
<span class="glyphicon glyphicon-grain"></span>
<span class="the-title">Producteurs</span>
</h2>
</div>-->
<div class="panel-body">
<div class="hook">
Vous avez besoin d'un outil pour vous organiser au quotidien ?<br />
Avez Souke, profitez d'un logiciel de gestion simple et intuitif pour :<br />
<div class="word-animate"><span class="functionality"></span></div>
</div>
<div class="links">
<?= $this->render('_button_producer_signup'); ?>
<a class="btn btn-secondary"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/service']); ?>">
<i class="bi bi-info-circle"></i> En savoir plus
</a>
<a class="btn btn-secondary" href="<?= \Yii::$app->parameterBag->get('appointmentUrl'); ?>" target="_blank">
<i class="bi bi-eye"></i> Je demande une démo
</a>
<?php if (Yii::$app->user->isGuest): ?>
<a class="btn btn-secondary"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/producer', 'id' => 32]); ?>">
<i class="bi bi-check2-square"></i> Je teste le logiciel
</a>
<?php endif; ?>
</div>
</div>
</div>
</div>

+ 0
- 116
frontend/views/site/index.php.back View File

@@ -1,116 +0,0 @@
<?php

/**
* Copyright distrib (2018)
*
* contact@opendistrib.net
*
* Ce logiciel est un programme informatique servant à aider les producteurs
* à distribuer leur production en circuits courts.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions
* de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA
* sur le site "http://www.cecill.info".
*
* En contrepartie de l'accessibilité au code source et des droits de copie,
* de modification et de redistribution accordés par cette licence, il n'est
* offert aux utilisateurs qu'une garantie limitée. Pour les mêmes raisons,
* seule une responsabilité restreinte pèse sur l'auteur du programme, le
* titulaire des droits patrimoniaux et les concédants successifs.
*
* A cet égard l'attention de l'utilisateur est attirée sur les risques
* associés au chargement, à l'utilisation, à la modification et/ou au
* développement et à la reproduction du logiciel par l'utilisateur étant
* donné sa spécificité de logiciel libre, qui peut le rendre complexe à
* manipuler et qui le réserve donc à des développeurs et des professionnels
* avertis possédant des connaissances informatiques approfondies. Les
* utilisateurs sont donc invités à charger et tester l'adéquation du
* logiciel à leurs besoins dans des conditions permettant d'assurer la
* sécurité de leurs systèmes et ou de leurs données et, plus généralement,
* à l'utiliser et l'exploiter dans les mêmes conditions de sécurité.
*
* Le fait que vous puissiez accéder à cet en-tête signifie que vous avez
* pris connaissance de la licence CeCILL, et que vous en avez accepté les
* termes.
*/

use common\helpers\Url;

$this->setTitle('Passez commande auprès de producteurs locaux');
$this->setMeta('description', 'Simplifiez la distribution de vos produits en circuit court grâce à des outils web adaptés.');

$producerModule = $this->getProducerModule();

?>

<div class="row" id="row-users-producers">
<div class="col-sm-12 col-md-6 producer">
<div class="panel panel-primary">
<div class="panel-heading">
<h2 class="panel-title">
<span class="glyphicon glyphicon-grain"></span>
<span class="the-title">Producteurs</span>
</h2>
</div>
<div class="panel-body">
<div class="hook">
Profitez d'un logiciel simple et intuitif pour :<br />
<div class="word-animate"><span class="functionality"></span></div>
</div>
<div class="links">
<?= $this->render('_button_producer_signup'); ?>
<a class="btn btn-default"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/service']); ?>">
<span class="glyphicon glyphicon-plus-sign"></span> En savoir plus
</a>
<a class="btn btn-default" href="<?= \Yii::$app->parameterBag->get('appointmentUrl'); ?>" target="_blank">
<span class="glyphicon glyphicon-education"></span> Je demande une démo
</a>
<?php if (Yii::$app->user->isGuest): ?>
<a class="btn btn-default"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/producer', 'id' => 32]); ?>">
<span class="glyphicon glyphicon-check"></span> Je teste le logiciel
</a>
<?php endif; ?>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6 users">
<div class="panel panel-primary">
<div class="panel-heading">
<h2 class="panel-title">
<span class="glyphicon glyphicon-user"></span>
<span class="the-title">Clients</span>
</h2>
</div>
<div class="panel-body">
<div class="hook">
Réservez facilement vos produits<br>
auprès de producteurs locaux.<br><br>
</div>
<div class="links">
<?php if (Yii::$app->user->isGuest): ?>
<a class="btn btn-primary"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/signup']); ?>"><span
class="glyphicon glyphicon-user"></span> Je m'inscris</a>
<?php endif; ?>
<a class="btn btn-default"
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/producers']); ?>"><span
class="glyphicon glyphicon-search"></span> Je recherche un producteur</a>
</div>
</div>
</div>
</div>
<div class="clr"></div>
</div>
<?php if (Yii::$app->user->isGuest && YII_ENV == 'demo'): ?>
<div class="row" id="row-signup">
<a class="btn btn-primary btn-lg" href="<?= Url::env('prod', 'frontend'); ?>"><span
class="glyphicon glyphicon-circle-arrow-left"></span> Retour sur le site</a>
</div>
<?php endif; ?>



+ 203
- 250
frontend/web/css/screen.css
File diff suppressed because it is too large
View File


+ 18
- 48
frontend/web/js/frontend.js View File

@@ -44,13 +44,13 @@ $(document).ready(function () {
function opendistrib_home_text_animation() {
var
words = [
'<span class="glyphicon glyphicon-eye-open"></span> présenter votre activité',
'<span class="glyphicon glyphicon-calendar"></span> gérer vos prises de commandes',
'<span class="glyphicon glyphicon-download-alt"></span> télécharger vos récapitulatifs de commande',
'<span class="glyphicon glyphicon-send"></span> communiquer avec vos clients',
'<span class="glyphicon glyphicon-file"></span> générer vos bons de livraisons et factures',
'<span class="glyphicon glyphicon-euro"></span> comptabiliser les paiements',
'<span class="glyphicon glyphicon-stats"></span> obtenir des statistiques de vente'
'<i class="bi bi-eye"></i> présenter votre activité',
'<i class="bi bi-calendar-check"></i> gérer vos prises de commandes',
'<i class="bi bi-download"></i> télécharger vos récapitulatifs de commande',
'<i class="bi bi-send"></i> communiquer avec vos clients',
'<i class="bi bi-file-earmark-text"></i> générer vos bons de livraisons et factures',
'<i class="bi bi-currency-euro"></i> comptabiliser les paiements',
'<i class="bi bi-graph-up"></i> obtenir des statistiques de vente'
],
part,
i = 0,
@@ -62,47 +62,15 @@ function opendistrib_home_text_animation() {
speed = 3000;

var wordflick = function(){

part = words[i];
$('#row-users-producers .producer .word-animate span').html(part);

$('.site-iamproducer .word-animate span').html(part);
setInterval(function(){
i ++;
if(i >= len){
i=0;
}

part = words[i];
$('#row-users-producers .producer .word-animate span').hide().html(part).fadeIn();

/*if (forwards) {
if(offset >= words[i].length){
++skip_count;
if (skip_count == skip_delay) {
forwards = false;
skip_count = 0;
}
}
}
else {
if(offset == 0){
forwards = true;
i++;
offset = 0;
if(i >= len){
i=0;
}
}
}
part = words[i].substr(0, offset);
if (skip_count == 0) {
if (forwards) {
offset++;
}
else {
offset--;
}
}*/
$('.site-iamproducer .word-animate span').hide().html(part).fadeIn();
}, speed);
};

@@ -133,16 +101,18 @@ var aboutProducersTestimonialsCarousel = {
init: function() {
var app = this;
$block = app.getBlock();
var selector = 'carousel-producers-testimonials';

// init carousel
new bootstrap.Carousel("#carousel-producers-testimonials");

// event on slide : init height
app.eventSlide();
var carousel = document.getElementById('carousel-producers-testimonials');
carousel.addEventListener('slid.bs.carousel', function() {
var carousel = document.getElementById(selector);
if(carousel) {
new bootstrap.Carousel("#"+selector);
app.eventSlide();
});
carousel = document.getElementById(selector);
carousel.addEventListener('slid.bs.carousel', function() {
app.eventSlide();
});
}
},
eventSlide: function() {
var heightCurrentItem = this.getBlock('.carousel-item.active .carousel-caption-inner').height() + 50;

+ 25
- 43
frontend/web/sass/_responsive.scss View File

@@ -35,13 +35,7 @@ termes.
*/

@media screen and (min-width: 768px) {
.home #row-users-producers {
.producer, .users {
.panel-body {
height: 260px;
}
}
}

}

@media screen and (min-width: 768px) and (max-width: 1000px) {
@@ -67,14 +61,6 @@ termes.
}
}

.home {
#row-users-producers {
.producer, .users {
padding: 0px;
}
}
}

.site-producers {
#wrapper-producers-map {
display: none;
@@ -157,46 +143,42 @@ termes.
#main {
background-image: none;
background-color: #FFF8DC;
}
}

#row-users-producers {
display: block;
margin: 0px;
padding: 0px;

.panel {
.hook {
margin-bottom: 25px;

br {
display: none;
}
.site-iamproducer {
.panel {
.hook {
margin-bottom: 25px;

.word-animate {
font-size: 20px;
}
br {
display: none;
}

.links {
a {
display: block;
margin-bottom: 5px;
}
.word-animate {
font-size: 20px;
}
}

.producer, .users {
padding-right: 0px;
.links {
a {
display: block;
margin-bottom: 5px;
}
}
}

.users {
padding-left: 0px;
.producer, .users {
padding-right: 0px;
}

.panel {
margin-bottom: 0px;
}
.users {
padding-left: 0px;

.panel {
margin-bottom: 0px;
}
}
}
}

.site-producers {

+ 33
- 81
frontend/web/sass/screen.scss View File

@@ -536,87 +536,6 @@ section#header-title {
font-size: 14px;
}

#row-users-producers {
width: 100%;
text-align: center;
display: table;
margin-bottom: 20px;
padding-top: 100px;
@include border-radius(5px) ;

.col-md-6 {
.panel {
height: 100%;
margin-bottom: 20px;
background-color: transparent;
@include box-shadow(none) ;
}

&.producer {
padding-left: 0px;

.word-animate {
margin-top: 18px;
height: auto;

span.functionality {
background-color: #FFF8DC;
@include border-radius(8px);
padding: 8px 15px 5px 15px;

.glyphicon {
position: relative;
top: 4px;
right: 6px;
}
}
}
}

&.users {
padding-right: 0px;
}

.hook {
font-family: 'capsuularegular';
font-size: 23px;
line-height: 28px;
margin-top: 10px;
margin-bottom: 30px;
}

.links {
a {
margin-bottom: 5px;
}
}
}
}

#row-users-producers,
#row-functionalities-rates {

div.producer, div.users {
}

div.producer {
.btn-primary {
//margin-bottom: 5px ;
}
}

.panel-body {
//font-family: 'capsuularegular';
//color: black;
//font-size: 20px;
//line-height: 26px;
}

p {
padding-bottom: 4px;
}
}

#row-functionalities-rates {
.block {
position: relative;
@@ -787,6 +706,39 @@ section#header-title {
}
}

.site-iamproducer {

.panel {
text-align: center;
}

.word-animate {
margin-top: 40px;
margin-bottom: 60px;
height: auto;

span.functionality {
@include border-radius(15px);
background-color: $color-gray;
color: black;
padding: 15px 30px;

.glyphicon {
position: relative;
top: 4px;
right: 6px;
}
}
}

.hook {
font-size: 23px;
line-height: 28px;
margin-top: 10px;
margin-bottom: 30px;
}
}

.site-producers {

#producers-list {

Loading…
Cancel
Save