termes. | termes. | ||||
*/ | */ | ||||
use backend\assets\AppAsset; | |||||
use yii\helpers\Html; | use yii\helpers\Html; | ||||
/* @var $this \yii\web\View */ | |||||
/* @var $content string */ | |||||
\common\assets\CommonAsset::register($this); | |||||
if (class_exists('backend\assets\AppAsset')) { | if (class_exists('backend\assets\AppAsset')) { | ||||
backend\assets\AppAsset::register($this); | backend\assets\AppAsset::register($this); | ||||
} else { | } else { |
<div class="login-box"> | <div class="login-box"> | ||||
<div class="login-logo"> | <div class="login-logo"> | ||||
<img src="<?= Yii::$app->urlManagerBackend->getBaseUrl(); ?>/img/logo-distrib.png" /> | |||||
Opendistrib | |||||
</div> | </div> | ||||
<!-- /.login-logo --> | <!-- /.login-logo --> | ||||
<div class="login-box-body"> | <div class="login-box-body"> |
/* line 276, ../sass/_adminlte.scss */ | /* line 276, ../sass/_adminlte.scss */ | ||||
body.login-page .login-box .login-logo { | body.login-page .login-box .login-logo { | ||||
text-align: center; | text-align: center; | ||||
font-family: "comfortaalight"; | |||||
font-family: "highvoltageregular"; | |||||
} | } | ||||
/* line 279, ../sass/_adminlte.scss */ | |||||
/* line 280, ../sass/_adminlte.scss */ | |||||
body.login-page .login-box .login-logo img { | body.login-page .login-box .login-logo img { | ||||
width: 50px; | width: 50px; | ||||
} | } | ||||
/* line 284, ../sass/_adminlte.scss */ | |||||
/* line 285, ../sass/_adminlte.scss */ | |||||
body.login-page .login-box .login-box-body .btn-primary { | body.login-page .login-box .login-box-body .btn-primary { | ||||
background-color: #F39C12; | background-color: #F39C12; | ||||
border-color: #F39C12; | border-color: #F39C12; | ||||
padding: 5px 10px; | padding: 5px 10px; | ||||
} | } | ||||
/* line 289, ../sass/_adminlte.scss */ | |||||
/* line 290, ../sass/_adminlte.scss */ | |||||
body.login-page .login-box .login-box-body .btn-primary:active { | body.login-page .login-box .login-box-body .btn-primary:active { | ||||
background-color: #f4a62a; | background-color: #f4a62a; | ||||
border-color: #F39C12; | border-color: #F39C12; | ||||
} | } | ||||
/* line 295, ../sass/_adminlte.scss */ | |||||
/* line 296, ../sass/_adminlte.scss */ | |||||
body.login-page .login-box .login-box-body a { | body.login-page .login-box .login-box-body a { | ||||
color: #F39C12; | color: #F39C12; | ||||
} | } | ||||
/* line 297, ../sass/_adminlte.scss */ | |||||
/* line 298, ../sass/_adminlte.scss */ | |||||
body.login-page .login-box .login-box-body a:hover { | body.login-page .login-box .login-box-body a:hover { | ||||
color: #f4a62a; | color: #f4a62a; | ||||
} | } |
.login-box { | .login-box { | ||||
.login-logo { | .login-logo { | ||||
text-align: center ; | text-align: center ; | ||||
font-family: 'comfortaalight' ; | |||||
font-family: 'highvoltageregular'; | |||||
img { | img { | ||||
width: 50px ; | width: 50px ; | ||||
} | } |
<?php | |||||
use yii\db\Migration; | |||||
use yii\db\Schema; | |||||
/** | |||||
* Class m230731_073506_producer_latitude_longitude_double | |||||
*/ | |||||
class m230731_073506_producer_latitude_longitude_double extends Migration | |||||
{ | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function safeUp() | |||||
{ | |||||
$this->alterColumn('producer', 'latitude', Schema::TYPE_DOUBLE); | |||||
$this->alterColumn('producer', 'longitude', Schema::TYPE_DOUBLE); | |||||
} | |||||
/** | |||||
* {@inheritdoc} | |||||
*/ | |||||
public function safeDown() | |||||
{ | |||||
$this->alterColumn('producer', 'latitude', Schema::TYPE_FLOAT); | |||||
$this->alterColumn('producer', 'longitude', Schema::TYPE_FLOAT); | |||||
} | |||||
} |
return $this->render('index'); | return $this->render('index'); | ||||
} | } | ||||
public function actionSoftware() | |||||
public function actionService() | |||||
{ | { | ||||
return $this->render('software', [ | |||||
return $this->render('service', [ | |||||
'producerDemoAccount' => $this->getProducerManager()->findOneProducerDemoAccount(), | 'producerDemoAccount' => $this->getProducerManager()->findOneProducerDemoAccount(), | ||||
'dataProviderPrices' => $this->getDataProviderPrices() | 'dataProviderPrices' => $this->getDataProviderPrices() | ||||
]); | ]); | ||||
} | } | ||||
/** | |||||
* Page de présentation des tarifs. | |||||
*/ | |||||
public function actionPrices() | |||||
{ | |||||
return $this->render('prices', [ | |||||
'dataProviderPrices' => $this->getDataProviderPrices() | |||||
]); | |||||
} | |||||
public function getDataProviderPrices() | public function getDataProviderPrices() | ||||
{ | { | ||||
return new ActiveDataProvider([ | return new ActiveDataProvider([ | ||||
public function actionAbout() | public function actionAbout() | ||||
{ | { | ||||
$producerManager = $this->getProducerManager(); | |||||
$pointSaleManager = $this->getPointSaleManager(); | |||||
$userManager = $this->getUserManager(); | |||||
$orderManager = $this->getOrderManager(); | |||||
$countProducersActive = $producerManager->countProducersActiveWithTurnover(); | |||||
$countPointSalesActive = $pointSaleManager->countPointSalesActiveLastThreeMonths(); | |||||
$countUsersActive = $userManager->countUsersActiveLastThreeMonths(); | |||||
$averageOrdersPerDay = $orderManager->countGlobalUserOrdersAverageLastSevenDays(); | |||||
$averageTurnover = $orderManager->getAverageTurnoverLastThreeMonths(); | |||||
$resultMatomoApiVisitSummary = json_decode(file_get_contents(Yii::$app->params['matomoApiVisitSummaryUrl'])); | |||||
$numberVisitsMonth = $resultMatomoApiVisitSummary->nb_uniq_visitors; | |||||
/* | |||||
-- Nombre de clients actifs (sur les 3 derniers mois) | |||||
*/ | |||||
$aboutFewNumbers = Yii::$app->cache->getOrSet('about_few_numbers2', function () { | |||||
$producerManager = $this->getProducerManager(); | |||||
$pointSaleManager = $this->getPointSaleManager(); | |||||
$userManager = $this->getUserManager(); | |||||
$orderManager = $this->getOrderManager(); | |||||
$countProducersActive = $producerManager->countProducersActiveWithTurnover(); | |||||
$countPointSalesActive = $pointSaleManager->countPointSalesActiveLastThreeMonths(); | |||||
$countUsersActive = $userManager->countUsersActiveLastThreeMonths(); | |||||
$averageOrdersPerDay = $orderManager->countGlobalUserOrdersAverageLastSevenDays(); | |||||
$averageTurnover = $orderManager->getAverageTurnoverLastThreeMonths(); | |||||
$resultMatomoApiVisitSummary = json_decode(file_get_contents(Yii::$app->params['matomoApiVisitSummaryUrl'])); | |||||
$numberVisitsMonth = $resultMatomoApiVisitSummary->nb_uniq_visitors; | |||||
return $this->renderPartial('_about_few_numbers', [ | |||||
'countProducersActive' => $countProducersActive, | |||||
'countPointSalesActive' => $countPointSalesActive, | |||||
'countUsersActive' => $countUsersActive, | |||||
'averageOrdersPerDay' => $averageOrdersPerDay, | |||||
'averageTurnover' => $averageTurnover, | |||||
'numberVisitsMonth' => $numberVisitsMonth | |||||
]); | |||||
}, 60 * 60 * 24); | |||||
return $this->render('about', [ | return $this->render('about', [ | ||||
'countProducersActive' => $countProducersActive, | |||||
'countPointSalesActive' => $countPointSalesActive, | |||||
'countUsersActive' => $countUsersActive, | |||||
'averageOrdersPerDay' => $averageOrdersPerDay, | |||||
'averageTurnover' => $averageTurnover, | |||||
'numberVisitsMonth' => $numberVisitsMonth | |||||
'aboutFewNumbers' => $aboutFewNumbers | |||||
]); | ]); | ||||
} | } | ||||
public function actionSourceCode() | |||||
{ | |||||
return $this->render('source_code'); | |||||
} | |||||
/** | /** | ||||
* Liste les producteurs utilisant la plateforme. | * Liste les producteurs utilisant la plateforme. | ||||
*/ | */ | ||||
if ($producerCodeForm->load($this->getRequest()->post()) | if ($producerCodeForm->load($this->getRequest()->post()) | ||||
&& $producerCodeForm->validate()) { | && $producerCodeForm->validate()) { | ||||
$this->getLogic()->setProducerContext($producer); | |||||
$producerManager->addUser(GlobalParam::getCurrentUser(), $producer); | $producerManager->addUser(GlobalParam::getCurrentUser(), $producer); | ||||
$this->redirect($this->getUrlManagerProducer()->createAbsoluteUrl(['site/index', 'slug_producer' => $producer->slug])); | $this->redirect($this->getUrlManagerProducer()->createAbsoluteUrl(['site/index', 'slug_producer' => $producer->slug])); |
</div> | </div> | ||||
<footer id="footer"> | <footer id="footer"> | ||||
<div class="container"> | <div class="container"> | ||||
<a href="<?php echo $this->getUrlManager()->createUrl('site/software'); ?>">Fonctionnalités, services & tarifs</a> • | |||||
<a href="<?php echo $this->getUrlManager()->createUrl('site/service'); ?>">Fonctionnalités, services & tarifs</a> • | |||||
<a href="<?php echo $this->getUrlManager()->createUrl('site/mentions'); ?>">Mentions légales</a> • | <a href="<?php echo $this->getUrlManager()->createUrl('site/mentions'); ?>">Mentions légales</a> • | ||||
<a href="<?php echo $this->getUrlManager()->createUrl('site/cgv'); ?>">Conditions générales de service</a> • | <a href="<?php echo $this->getUrlManager()->createUrl('site/cgv'); ?>">Conditions générales de service</a> • | ||||
<a id="code-source" href="https://forge.laclic.fr/Laclic/Opendistrib">Code source</a> | |||||
<a href="<?php echo $this->getUrlManager()->createUrl('site/source-code'); ?>">Code source</a> | |||||
</div> | </div> | ||||
</footer> | </footer> | ||||
<div class="panel panel-primary" id="few-numbers"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="glyphicon glyphicon-stats"></span> | |||||
<span class="the-title">Opendistrib en quelques chiffres</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<?= few_numbers_item($countProducersActive, 'Producteurs', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($countUsersActive), 'Clients', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($countPointSalesActive), 'Points de vente', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($averageOrdersPerDay), 'Commandes clients / jour', 'en moyenne sur les 7 derniers jours'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($averageTurnover).' €', 'CA / mois', 'moyenne sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($numberVisitsMonth), 'Visiteurs', 'le mois dernier'); ?> | |||||
<?php //few_numbers_item('4', 'Heures gagnées / semaine'); ?> | |||||
</div> | |||||
</div> | |||||
<?php | |||||
function few_numbers_item($number, $description, $detail = null) { | |||||
$html = '<div class="col-md-6 item"><div class="number">'.$number.'</div><div class="description">'.$description.'</div>'; | |||||
if($detail) { | |||||
$html .= '<div class="detail">'.$detail.'</div>'; | |||||
} | |||||
$html .= '</div>'; | |||||
return $html; | |||||
} | |||||
function few_numbers_format_number($number) { | |||||
return number_format($number, 0, '', ' '); | |||||
} | |||||
?> |
En contrepartie de l'accessibilité au code source et des droits de copie, | 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 | 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, | |||||
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 | seule une responsabilité restreinte pèse sur l'auteur du programme, le | ||||
titulaire des droits patrimoniaux et les concédants successifs. | titulaire des droits patrimoniaux et les concédants successifs. | ||||
?> | ?> | ||||
<p>Les présentes Conditions Générales de Service ( ci-après les « <strong>Conditions</strong> ») | |||||
font partie intégrante du contrat conclu (le « <strong>Contrat</strong> ») entre <strong>Guillaume BOURGEOIS - Cap'Entreprendre</strong> inscrit en tant que <strong>SCOP SARL</strong> au Registre du Commerce et des Sociétés | |||||
de <strong>Sarreguemines</strong>, sous le numéro <strong>47784404700019</strong>, dont le siège social est situé au | |||||
<strong>12 PLACE ROBERT SCHUMAN 57600 FORBACH</strong> (ci-après la « <strong>Société</strong> ») et le producteur | |||||
souhaitant être référencé sur le site internet de la Société (le « <strong>Producteur</strong> »).</p> | |||||
<p>Les présentes Conditions Générales de Service ( ci-après les « <strong>Conditions</strong> ») | |||||
font partie intégrante du contrat conclu (le « <strong>Contrat</strong> ») entre <strong>Guillaume BOURGEOIS - Auto-entrepreneur</strong> | |||||
(N°SIRET : 51442998400024), dont l'adresse est située au | |||||
<strong>6 rue de la Prévoyance 25000 BESANÇON</strong> (ci-après la « <strong>Société</strong> ») et le producteur | |||||
souhaitant être référencé sur le site internet de la Société (le « <strong>Producteur</strong> »).</p> | |||||
<h2>1. Objet</h2> | <h2>1. Objet</h2> | ||||
<p>La Société édite le site internet <a href="http://www.opendistrib.net">http://www.opendistrib.net</a> | <p>La Société édite le site internet <a href="http://www.opendistrib.net">http://www.opendistrib.net</a> |
?> | ?> | ||||
<div class="site-about"> | <div class="site-about"> | ||||
<!-- | |||||
<h1 class="title-system-order"> | |||||
<span class="glyphicon glyphicon-info-sign"></span> | |||||
<?= Html::encode($this->title) ?> | |||||
</h1>--> | |||||
<div class="row"> | <div class="row"> | ||||
<div class="col-md-12"> | |||||
<div class="panel panel-default"> | |||||
<div class="col-md-8"> | |||||
<div class="panel panel-primary"> | |||||
<div class="panel-body"> | <div class="panel-body"> | ||||
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean volutpat justo ac augue volutpat | |||||
lobortis. Nulla facilisi. Cras sed justo et libero lobortis faucibus sed ac metus. Nulla lacinia | |||||
sagittis maximus. In id euismod sapien, sed facilisis quam. Phasellus consectetur libero at | |||||
dolor consequat, rutrum fermentum est laoreet. Quisque pellentesque risus nec augue bibendum | |||||
venenatis.</p> | |||||
<p>Vestibulum magna magna, sollicitudin sed urna ac, vulputate pharetra velit. Sed dictum enim in | |||||
sodales finibus. Sed luctus porta turpis, at pulvinar dui tempus a. Proin dictum vitae erat | |||||
quis dapibus. Praesent felis justo, bibendum nec turpis nec, scelerisque dignissim justo. Etiam | |||||
vel mauris non ipsum feugiat laoreet. Nulla facilisi. Aliquam pellentesque, mauris et pretium | |||||
pellentesque, diam neque hendrerit augue, auctor luctus turpis urna quis purus.</p> | |||||
</div> | |||||
</div> | |||||
<div class="panel panel-primary" id="few-numbers"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="glyphicon glyphicon-stats"></span> | |||||
<span class="the-title">Opendistrib en quelques chiffres</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<?= few_numbers_item($countProducersActive, 'Producteurs', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($countUsersActive), 'Clients', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($countPointSalesActive), 'Points de vente', 'actifs sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($averageOrdersPerDay), 'Commandes clients / jour', 'en moyenne sur les 7 derniers jours'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($averageTurnover).' €', 'CA / mois', 'moyenne sur les 3 derniers mois'); ?> | |||||
<?= few_numbers_item(few_numbers_format_number($numberVisitsMonth), 'Visiteurs', 'le mois dernier'); ?> | |||||
<?php //few_numbers_item('4', 'Heures gagnées / semaine'); ?> | |||||
<p>L'objectif d'Opendistrib est de fournir aux producteurs locaux une solution technique sur | |||||
laquelle s'appuyer pour organiser leurs ventes en circuits courts de manière libre et autonome.</p> | |||||
<h2>Fonctionnalités proposées</h2> | |||||
<p>Voici les fonctionnalités principales disponibles sur Opendistrib : automatiser les prises de | |||||
commandes en ligne, présenter son activité, communiquer avec ses clients, | |||||
gérer les paiements, générer des bons de livraison et des factures, obtenir des statistiques | |||||
de vente.</p> | |||||
<h2>Producteurs</h2> | |||||
<p>Opendistrib est particulièrement adapté aux boulangeries proposant du pain au levain naturel | |||||
car ils ont besoin de connaitre les quantités avant de lancer leurs productions. Néanmoins, le logiciel | |||||
fonctionne également très bien pour tous type de producteurs souhaitant fonctionner sur commande, | |||||
que ce soit pour gagner du temps ou limiter le gaspillage.</p> | |||||
<h2>Historique</h2> | |||||
<p>La première version du logiciel est née en 2015 à l'occasion de la création de la boulangerie | |||||
Le Chat des Noisettes à Déservillers. Le site a ensuite été ouvert à d'autres producteurs pour arriver | |||||
à un total de 35 producteurs actifs à l'heure actuelle.</p> | |||||
<h2>Le développeur</h2> | |||||
<p>La plateforme est actuellement maintenue et développée par Guillaume Bourgeois, développeur web | |||||
depuis 2009. </p> | |||||
<h2>Logiciel libre</h2> | |||||
<p>Lorem ipsum.</p> | |||||
<h2>Objectifs</h2> | |||||
<p>Lorem ipsum.</p> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="col-md-4"> | |||||
<?= $aboutFewNumbers; ?> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | |||||
<?php | |||||
function few_numbers_item($number, $description, $detail = null) { | |||||
$html = '<div class="col-md-4 item"><div class="number">'.$number.'</div><div class="description">'.$description.'</div>'; | |||||
if($detail) { | |||||
$html .= '<div class="detail">'.$detail.'</div>'; | |||||
} | |||||
$html .= '</div>'; | |||||
return $html; | |||||
} | |||||
function few_numbers_format_number($number) { | |||||
return number_format($number, 0, '', ' '); | |||||
} | |||||
?> | |||||
</div> |
?> | ?> | ||||
<div class="site-error"> | <div class="site-error"> | ||||
<h1>Producteur introuvable</h1> | <h1>Producteur introuvable</h1> | ||||
<div class="alert alert-danger"> | <div class="alert alert-danger"> | ||||
Le producteur que vous recherchez est introuvable. | Le producteur que vous recherchez est introuvable. | ||||
</div> | </div> | ||||
<p><?= Html::a("< Retour à l'accueil", ['site/index']) ?> - <?= Html::a("Liste des producteurs", ['site/producers']) ?></p> | <p><?= Html::a("< Retour à l'accueil", ['site/index']) ?> - <?= Html::a("Liste des producteurs", ['site/producers']) ?></p> | ||||
</div> | </div> |
</a> | </a> | ||||
<?php endif; ?> | <?php endif; ?> | ||||
<a class="btn btn-default" | <a class="btn btn-default" | ||||
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/software']); ?>"> | |||||
href="<?= \Yii::$app->urlManagerFrontend->createUrl(['site/service']); ?>"> | |||||
<span class="glyphicon glyphicon-plus-sign"></span> En savoir plus | <span class="glyphicon glyphicon-plus-sign"></span> En savoir plus | ||||
</a> | </a> | ||||
<a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank"> | <a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank"> |
<?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 yii\helpers\Html; | |||||
$this->setTitle('Tarifs'); | |||||
$this->setMeta('description', 'Découvrez les tarifs de l\application Opendistrib.'); | |||||
?> | |||||
<h1 class="title-system-order"><span class="glyphicon glyphicon glyphicon-eur"></span> <?= Html::encode( | |||||
$this->title | |||||
) ?></h1> | |||||
<?= $this->render('_prices_producer', ['dataProviderPrices' => $dataProviderPrices, 'noButton'=> true]); ?> | |||||
<!-- | |||||
<div id="site-prices"> | |||||
<div class="row equal"> | |||||
<div class="col-md-6 col-xs-12 producer"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="the-title">Fonctionnalités</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<p>Hormis le paiement en ligne, vous avez accès à toutes les fonctionnalités d’Opendistrib quelque soit votre tranche tarifaire. | |||||
Les évolutions sont développées en fonction des retours de tous les producteurs. | |||||
</p> | |||||
<p>Si vous avez un besoin spécifique à votre activité, nous pouvons réaliser des développements sur-mesure sur devis : | |||||
<a href="<?= \Yii::$app->urlManager->createUrl(['site/contact']) ?>">nous contacter</a>.</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="col-md-6 col-xs-12 producer"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="the-title">Support, maintenance & hébergement</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<p>Le service comprend :</p> | |||||
<ul> | |||||
<li><strong>Le support</strong> : nous sommes disponibles pour répondre rapidement à toutes vos questions par email ou par téléphone.</li> | |||||
<li><strong>La maintenance</strong> : nous travaillons contamment sur la qualité/sécurité du logiciel et | |||||
intervenons immédiatement en cas de bug.</li> | |||||
<li><strong>L'hébergement</strong> : la plateforme est hébergée en France par la société <a href="https://www.alwaysdata.com/">Alwaysdata</a>.</li> | |||||
</ul> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="row equal"> | |||||
<div class="col-md-6 col-xs-12 producer"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="the-title">Démo & version d'essai</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<p>Vous avez plusieurs solutions pour découvrir le logiciel : </p> | |||||
<ul> | |||||
<li> | |||||
<a href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank">Nous demander une démo</a> pour | |||||
que l'on vous fasse une présentation. | |||||
</li> | |||||
<li> | |||||
Essayer Opendistrib sans inscription via le | |||||
<a href="<?= \Yii::$app->urlManager->createUrl(['site/producer', 'id' => 32]) ?>">compte de démonstration</a>. | |||||
</li> | |||||
<li>Essayer Opendistrib pour votre activité en vous <a href="<?= \Yii::$app->urlManager->createUrl(['site/signup']) ?>">inscrivant en tant que producteur</a>. | |||||
Aucun règlement ne vous sera demandé tant que vous n'aurez pas plus de 100 € de chiffre d'affaire enregistré sur le logiciel.</li> | |||||
</ul> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
<div class="col-md-6 col-xs-12 producer"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="the-title">Formation & accompagnement</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<p>Au moment du lancement de votre circuit court sur Opendistrib, ainsi que tout au long de votre projet, | |||||
la formation et l'accompagnement sont compris dans l'abonnement mensuel.</p> | |||||
</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
--> |
$producerManager = ProducerManager::getInstance(); | $producerManager = ProducerManager::getInstance(); | ||||
$this->setTitle('Producteur '.Html::encode($producer->name)) ; | $this->setTitle('Producteur '.Html::encode($producer->name)) ; | ||||
$this->setIcon('grain'); | |||||
$this->setMeta('description', 'Veuillez vous connecter pour réserver les produits de ce producteur.') ; | $this->setMeta('description', 'Veuillez vous connecter pour réserver les produits de ce producteur.') ; | ||||
?> | ?> | ||||
<div id="page-producer"> | <div id="page-producer"> | ||||
<h1 class="title-system-order"><?= Html::encode($producer->name) ?></h1> | |||||
<p class="info"><span class="alert alert-warning">Veuillez vous connecter pour réserver les produits de ce producteur.</span></p> | |||||
<?php if(isset($producer->photo) && strlen($producer->photo)): ?> | |||||
<!--<img class="img-back" width="200px" height="auto" src="./uploads/<?= $producer->photo ?>" />--> | |||||
<?php endif; ?> | |||||
<!--<p class="info"><span class="alert alert-warning">Veuillez vous connecter pour réserver les produits de ce producteur.</span></p>--> | |||||
<div class="col-md-6"> | <div class="col-md-6"> | ||||
<h2>Connexion</h2> | |||||
<?php if(isset($producer) && $producerManager->isDemo($producer)) : ?> | |||||
<div class="alert alert-warning"> | |||||
<p>Merci d'utiliser les identifiants suivants pour vous connecter à l'espace de démonstration :</p> | |||||
Identifiant : <strong>demo@opendistrib.net</strong><br /> | |||||
Mot de passe : <strong>opendistrib</strong> | |||||
<div class="panel panel-primary"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="glyphicon glyphicon-log-in"></span> | |||||
Connexion | |||||
</h2> | |||||
</div> | </div> | ||||
<?php endif; ?> | |||||
<?php $form = ActiveForm::begin(['id' => 'login-form','enableClientValidation'=> false]); ?> | |||||
<?= $form->field($loginForm, 'email') ?> | |||||
<?= $form->field($loginForm, 'password')->passwordInput() ?> | |||||
<?= $form->field($loginForm, 'rememberMe')->checkbox() ?> | |||||
<p> | |||||
Si vous avez oublié votre mot de passe, vous pouvez le <?= Html::a('réinitialiser', ['site/request-password-reset']) ?>. | |||||
</p> | |||||
<div class="form-group"> | |||||
<?= Html::submitButton('Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> | |||||
<div class="panel-body"> | |||||
<?php if(isset($producer) && $producerManager->isDemo($producer)) : ?> | |||||
<div class="alert alert-warning"> | |||||
<p>Merci d'utiliser les identifiants suivants pour vous connecter à l'espace de démonstration :</p> | |||||
Identifiant : <strong>demo@opendistrib.net</strong><br /> | |||||
Mot de passe : <strong>opendistrib</strong> | |||||
</div> | |||||
<?php endif; ?> | |||||
<?php $form = ActiveForm::begin(['id' => 'login-form','enableClientValidation'=> false]); ?> | |||||
<?= $form->field($loginForm, 'email') ?> | |||||
<?= $form->field($loginForm, 'password')->passwordInput() ?> | |||||
<?= $form->field($loginForm, 'rememberMe')->checkbox() ?> | |||||
<p> | |||||
Si vous avez oublié votre mot de passe, vous pouvez le <?= Html::a('réinitialiser', ['site/request-password-reset']) ?>. | |||||
</p> | |||||
<div class="form-group"> | |||||
<?= Html::submitButton('Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> | |||||
</div> | |||||
<?php ActiveForm::end(); ?> | |||||
</div> | </div> | ||||
<?php ActiveForm::end(); ?> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="col-md-6"> | <div class="col-md-6"> | ||||
<h2>Inscription</h2> | |||||
<?php $form = ActiveForm::begin(['id' => 'form-signup','enableClientValidation'=> false]); ?> | |||||
<?= $form->field($signupForm, 'email') ?> | |||||
<?= $form->field($signupForm, 'password')->passwordInput() ?> | |||||
<?= $form->field($signupForm, 'lastname') ?> | |||||
<?= $form->field($signupForm, 'name') ?> | |||||
<?= $form->field($signupForm, 'phone') ?> | |||||
<?php if(strlen($producer->code)): ?> | |||||
<?= $form->field($signupForm, 'code',[ | |||||
'inputTemplate' => '<div class="input-group"><span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>{input}</div>', | |||||
]) | |||||
<div class="panel panel-primary"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="glyphicon glyphicon-user"></span> | |||||
Inscription | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<?php $form = ActiveForm::begin(['id' => 'form-signup','enableClientValidation'=> false]); ?> | |||||
<?= $form->field($signupForm, 'email') ?> | |||||
<?= $form->field($signupForm, 'password')->passwordInput() ?> | |||||
<?= $form->field($signupForm, 'lastname') ?> | |||||
<?= $form->field($signupForm, 'name') ?> | |||||
<?= $form->field($signupForm, 'phone') ?> | |||||
<?php if(strlen($producer->code)): ?> | |||||
<?= $form->field($signupForm, 'code',[ | |||||
'inputTemplate' => '<div class="input-group"><span class="input-group-addon"><span class="glyphicon glyphicon-lock"></span></span>{input}</div>', | |||||
]) | |||||
->label('Code du producteur') | ->label('Code du producteur') | ||||
->hint('Renseignez-vous auprès de votre producteur pour qu\'il vous fournisse le code d\'accès') ; ?> | ->hint('Renseignez-vous auprès de votre producteur pour qu\'il vous fournisse le code d\'accès') ; ?> | ||||
<?php endif; ?> | |||||
<?= $form->field($signupForm, 'verifyCode')->widget(\yii\captcha\Captcha::className(), [ | |||||
<?php endif; ?> | |||||
<?= $form->field($signupForm, 'verifyCode')->widget(\yii\captcha\Captcha::className(), [ | |||||
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', | 'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>', | ||||
]) ?> | |||||
<div class="form-group" id="boutons-inscrire"> | |||||
<?= Html::submitButton("S'inscrire", ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> | |||||
]) ?> | |||||
<div class="form-group" id="boutons-inscrire"> | |||||
<?= Html::submitButton("S'inscrire", ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?> | |||||
</div> | |||||
<?php ActiveForm::end(); ?> | |||||
</div> | </div> | ||||
<?php ActiveForm::end(); ?> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> |
/* @var $model \frontend\models\PasswordResetRequestForm */ | /* @var $model \frontend\models\PasswordResetRequestForm */ | ||||
$this->setTitle('Mot de passe oublié') ; | $this->setTitle('Mot de passe oublié') ; | ||||
$this->setIcon('question-sign'); | |||||
$this->setMeta('description', 'Vous avez oublié votre mot de passe ?'); | $this->setMeta('description', 'Vous avez oublié votre mot de passe ?'); | ||||
$this->params['breadcrumbs'][] = $this->title; | $this->params['breadcrumbs'][] = $this->title; | ||||
?> | ?> | ||||
<div class="site-request-password-reset"> | <div class="site-request-password-reset"> | ||||
<h1><?= Html::encode($this->title) ?></h1> | |||||
<p>Renseignez votre adresse email. Nous vous transmettrons un lien vous permettant de réinitialiser votre mot de passe.</p> | |||||
<div class="row"> | |||||
<div class="col-lg-5"> | |||||
<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?> | |||||
<?= $form->field($model, 'email') ?> | |||||
<div class="form-group"> | |||||
<?= Html::submitButton('Envoyer', ['class' => 'btn btn-primary']) ?> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-body"> | |||||
<div class="alert alert-warning">Renseignez votre adresse email, nous vous transmettrons un lien vous permettant de réinitialiser votre mot de passe.</div> | |||||
<div class="row"> | |||||
<div class="col-lg-5"> | |||||
<?php $form = ActiveForm::begin(['id' => 'request-password-reset-form']); ?> | |||||
<?= $form->field($model, 'email') ?> | |||||
<div class="form-group"> | |||||
<?= Html::submitButton('Envoyer', ['class' => 'btn btn-primary']) ?> | |||||
</div> | |||||
<?php ActiveForm::end(); ?> | |||||
</div> | </div> | ||||
<?php ActiveForm::end(); ?> | |||||
</div> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</div> | </div> |
</h2> | </h2> | ||||
</div> | </div> | ||||
<div class="panel-body"> | <div class="panel-body"> | ||||
<div class="block block-order col-md-6"> | |||||
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/order.png"/> | |||||
<p>Prise de commande en ligne automatisée avec génération d'un récapitulatif par jour de distribution</p> | |||||
<div class="clr"></div> | |||||
</div> | |||||
<div class="block block-payment col-md-6"> | |||||
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/payment.png"/> | |||||
<p>Système de crédit permettant la comptabilisation des paiements</p> | |||||
<div class="clr"></div> | |||||
</div> | |||||
<div class="clr"></div> | |||||
<div class="block block-points-sale-products col-md-6"> | |||||
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/map-marker.png"/> | |||||
<p>Gestion des différents points de vente et produits</p> | |||||
<div class="clr"></div> | |||||
</div> | |||||
<div class="block block-subscriptions col-md-6"> | |||||
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/subscription.png"/> | |||||
<p>Gestion des abonnements</p> | |||||
<div class="clr"></div> | |||||
</div> | |||||
<?= block_feature('grain', "Un espace producteur dédié accessible aux clients avec un système de prise de commandes, la présentation de l'activité, la liste des produits et des points de vente, un formulaire de contact"); ?> | |||||
<?= block_feature("cog", "Une administration complète et intuitive pour configurer finement l'ensemble des aspects de l'activité de producteur"); ?> | |||||
<div class="clr"></div> | <div class="clr"></div> | ||||
<div class="block block-communication col-md-6"> | |||||
<img src="<?= \Yii::$app->urlManager->getBaseUrl(); ?>/img/megaphone.png"/> | |||||
<p>Communication simplifiée avec les clients</p> | |||||
<div class="clr"></div> | |||||
</div> | |||||
<?= block_feature("calendar", "Planification des jours de distributions"); ?> | |||||
<?= block_feature("download-alt", "Accès à un récapitulatif des commandes par jour de distribution"); ?> | |||||
<?= block_feature("cutlery", "Gestion des produits, catégories et prix spécifiques"); ?> | |||||
<?= block_feature("map-marker", "Gestion des points de vente"); ?> | |||||
<?= block_feature("repeat", "Gestion des abonnements pour les commandes récurrentes"); ?> | |||||
<?= block_feature("user", "Gestion des clients"); ?> | |||||
<?= block_feature("euro", "Système de crédit (ou cagnotte) permettant la comptabilisation des paiements"); ?> | |||||
<?= block_feature("bullhorn", "Communication facilitée avec les clients via l'envoi d'emails en masse"); ?> | |||||
<?= block_feature("folder-open", "Génération de bons de livraison, factures & devis"); ?> | |||||
<?= block_feature("stats", "Statistiques et rapports de vente"); ?> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<?= $this->render('_prices_producer', ['dataProviderPrices' => $dataProviderPrices]); ?> | <?= $this->render('_prices_producer', ['dataProviderPrices' => $dataProviderPrices]); ?> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="panel panel-primary"> | |||||
<div class="panel-heading"> | |||||
<h2 class="panel-title"> | |||||
<span class="glyphicon glyphicon-plus"></span> | |||||
<span class="the-title">Pour aller plus loin</span> | |||||
</h2> | |||||
</div> | |||||
<div class="panel-body"> | |||||
<p class="text-center"> | |||||
<?php if (Yii::$app->user->isGuest): ?> | |||||
<a class="btn btn-default" | |||||
href="<?= $this->getUrlManagerFrontend()->createUrl(['site/signup']); ?>"> | |||||
<span class="glyphicon glyphicon-user"></span> Je crée un espace producteur | |||||
</a> | |||||
<?php endif; ?> | |||||
<a class="btn btn-default" href="<?= $this->getUrlManagerFrontend()->createUrl(['site/producer', 'id' => 32]); ?>"> | |||||
<span class="glyphicon glyphicon-check"></span> Je teste le logiciel | |||||
</a> | |||||
<a class="btn btn-default" href="<?= \Yii::$app->params['appointmentUrl']; ?>" target="_blank"> | |||||
<span class="glyphicon glyphicon-education"></span> Je demande une démo | |||||
</a> | |||||
<a class="btn btn-default" href="<?= $this->getUrlManagerFrontend()->createUrl(['site/contact']); ?>"> | |||||
<span class="glyphicon glyphicon-envelope"></span> Je contacte le développeur | |||||
</a> | |||||
</p> | |||||
</div> | |||||
</div> | |||||
</div> | </div> | ||||
<div class="clr"></div> | <div class="clr"></div> | ||||
</div> | |||||
<?php | |||||
function block_feature($icon, $description) { | |||||
return '<div class="block col-md-6"> | |||||
<span class="glyphicon glyphicon-'.$icon.'"></span> | |||||
<p>'.$description.'</p> | |||||
</div>'; | |||||
} | |||||
</div> | |||||
?> |
'prompt' => '--', | 'prompt' => '--', | ||||
]) | ]) | ||||
->label('TVA à appliquer par défaut'); ?> | ->label('TVA à appliquer par défaut'); ?> | ||||
<?= $form->field($model, 'cgv')->checkbox()->label('J\'accepte les <a class="btn btn-xs btn-default" data-toggle="modal" data-target="#modal-cgv" href="javascript:void(0);">conditions générales de service</a> et les <a class="btn btn-xs btn-default" data-toggle="modal" data-target="#modal-prices" href="javascript:void(0);">conditions tarifaires</a>.') ?> | |||||
<?= $form->field($model, 'cgv')->checkbox()->label('J\'accepte les <button type="button" class="btn btn-xs btn-default btn-modal-cgv" data-toggle="modal" data-target="#modal-cgv">conditions générales de service</button> et les <button type="button" class="btn btn-xs btn-default btn-modal-prices" data-toggle="modal" data-target="#modal-prices">conditions tarifaires</button>.') ?> | |||||
</div> | </div> | ||||
<div id="fields-user"> | <div id="fields-user"> | ||||
<?= $form->field($model, 'id_producer')->dropDownList($dataProducers, ['prompt' => '--','encode' => false,'options' => $optionsProducers]) ?> | <?= $form->field($model, 'id_producer')->dropDownList($dataProducers, ['prompt' => '--','encode' => false,'options' => $optionsProducers]) ?> |
<?php | |||||
/** | |||||
Copyright Opendistrib (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 yii\helpers\Html; | |||||
use yii\bootstrap\ActiveForm; | |||||
use yii\captcha\Captcha; | |||||
$this->setTitle('Code source'); | |||||
$this->setIcon('console'); | |||||
//$this->setMeta('description', 'Code source') ; | |||||
?> | |||||
<div class="site-about"> | |||||
<div class="row"> | |||||
<div class="col-md-12"> | |||||
<div class="panel panel-default"> | |||||
<div class="panel-body"> | |||||
<p>Le logiciel Opendistrib 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 <a href="http://www.cecill.info">http://www.cecill.info</a>.</p> | |||||
<p class="text-center"> | |||||
<a class="btn btn-primary" href="https://forge.laclic.fr/Laclic/Opendistrib"> | |||||
<span class="glyphicon glyphicon-console"></span> | |||||
Accéder au code source | |||||
</a> | |||||
</p> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> | |||||
</div> |
}, | }, | ||||
initMap: function() { | initMap: function() { | ||||
var app = this; | var app = this; | ||||
app.map = L.map('producers-map').setView([46.5471789, 2.534168], 6); | |||||
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { | |||||
maxZoom: 19, | |||||
attribution: '© OpenStreetMap' | |||||
}).addTo(app.map); | |||||
$.get(UrlManager.getBaseUrl() + 'site/ajax-producers', {}, function(producers) { | |||||
for(var i = 0; i < producers.length ; i++) { | |||||
if(producers[i].latitude && producers[i].longitude) { | |||||
app.mapMarkers[producers[i].id] = L.marker([producers[i].latitude, producers[i].longitude]) | |||||
.bindPopup('<div class="popup-producer"><div class="name">'+producers[i].name+'</div><div class="type">'+producers[i].type+'</div><div class="address"><span class="glyphicon glyphicon-map-marker"></span>'+producers[i].address+'</div><div class="link"><a href="'+producers[i].link+'" class="btn btn-primary btn-sm">Visiter</a></div></div>') | |||||
.addTo(app.map); | |||||
if($('#producers-map').length > 0) { | |||||
app.map = L.map('producers-map').setView([46.5471789, 2.534168], 6); | |||||
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { | |||||
maxZoom: 19, | |||||
attribution: '© OpenStreetMap' | |||||
}).addTo(app.map); | |||||
$.get(UrlManager.getBaseUrl() + 'site/ajax-producers', {}, function(producers) { | |||||
for(var i = 0; i < producers.length ; i++) { | |||||
if(producers[i].latitude && producers[i].longitude) { | |||||
app.mapMarkers[producers[i].id] = L.marker([producers[i].latitude, producers[i].longitude]) | |||||
.bindPopup('<div class="popup-producer"><div class="name">'+producers[i].name+'</div><div class="type">'+producers[i].type+'</div><div class="address"><span class="glyphicon glyphicon-map-marker"></span>'+producers[i].address+'</div><div class="link"><a href="'+producers[i].link+'" class="btn btn-primary btn-sm">Visiter</a></div></div>') | |||||
.addTo(app.map); | |||||
} | |||||
} | } | ||||
} | |||||
}); | |||||
}); | |||||
} | |||||
}, | }, | ||||
initEventViewProducer: function() { | initEventViewProducer: function() { | ||||
var app = this; | var app = this; | ||||
initMapPositionFixed: function() { | initMapPositionFixed: function() { | ||||
var $map = $('#producers-map'); | var $map = $('#producers-map'); | ||||
var $wrapperProducerMap = $('#wrapper-producers-map'); | |||||
if($map.length > 0) { | |||||
var $wrapperProducerMap = $('#wrapper-producers-map'); | |||||
$map.width($wrapperProducerMap.width()); | |||||
$(window).resize(function(){ | |||||
$map.width($wrapperProducerMap.width()); | $map.width($wrapperProducerMap.width()); | ||||
}); | |||||
$(window).scroll(function(){ | |||||
if($(window).width() > 768) { | |||||
var wrapperProducersMapOffsetTop = $wrapperProducerMap.offset().top; | |||||
var currentScrollTop = $(this).scrollTop(); | |||||
if(currentScrollTop >= wrapperProducersMapOffsetTop) { | |||||
if(!$map.hasClass('fixed')) { | |||||
$map.addClass('fixed'); | |||||
$(window).resize(function(){ | |||||
$map.width($wrapperProducerMap.width()); | |||||
}); | |||||
$(window).scroll(function(){ | |||||
if($(window).width() > 768) { | |||||
var wrapperProducersMapOffsetTop = $wrapperProducerMap.offset().top; | |||||
var currentScrollTop = $(this).scrollTop(); | |||||
if(currentScrollTop >= wrapperProducersMapOffsetTop) { | |||||
if(!$map.hasClass('fixed')) { | |||||
$map.addClass('fixed'); | |||||
} | |||||
} | } | ||||
} | |||||
else { | |||||
if($map.hasClass('fixed')) { | |||||
$map.removeClass('fixed'); | |||||
else { | |||||
if($map.hasClass('fixed')) { | |||||
$map.removeClass('fixed'); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | |||||
}); | |||||
}); | |||||
} | |||||
}, | }, | ||||
initSearch: function() { | initSearch: function() { | ||||
$('#producer-search input').keyup(function() { | $('#producer-search input').keyup(function() { | ||||
$('#signupform-id_producer').change(function () { | $('#signupform-id_producer').change(function () { | ||||
opendistrib_signup_code_producer(); | opendistrib_signup_code_producer(); | ||||
}); | }); | ||||
// modals | |||||
$('.btn-modal-cgv').click(function() { | |||||
$('#modal-cgv').modal(); | |||||
return false; | |||||
}); | |||||
$('.btn-modal-prices').click(function() { | |||||
$('#modal-prices').modal(); | |||||
return false; | |||||
}); | |||||
} | } | ||||
} | } | ||||
background-color: white; | background-color: white; | ||||
} | } | ||||
.help-block { | |||||
padding-bottom: 5px; | |||||
} | |||||
#main { | #main { | ||||
padding-bottom: 50px; | padding-bottom: 50px; | ||||
min-height: 800px; | min-height: 800px; | ||||
.panel-body { | .panel-body { | ||||
background-color: white; | background-color: white; | ||||
@include border-radius(0px 0px 5px 5px) ; | @include border-radius(0px 0px 5px 5px) ; | ||||
p { | |||||
padding-bottom: 10px; | |||||
} | |||||
} | } | ||||
&.panel-primary { | &.panel-primary { | ||||
#row-functionalities-rates { | #row-functionalities-rates { | ||||
.block { | .block { | ||||
margin-bottom: 10px; | |||||
position: relative; | |||||
margin-bottom: 25px; | |||||
padding-left: 70px; | |||||
min-height: 50px; | |||||
.glyphicon { | |||||
font-size: 40px; | |||||
position: absolute; | |||||
left: 0px; | |||||
top: 0px; | |||||
} | |||||
p { | p { | ||||
font-family: 'capsuularegular'; | font-family: 'capsuularegular'; | ||||
font-size: 18px; | font-size: 18px; | ||||
margin-left: 70px; | |||||
} | |||||
img { | |||||
float: left; | |||||
width: 50px; | |||||
height: auto; | |||||
} | } | ||||
a { | a { | ||||
#block-rates { | #block-rates { | ||||
table { | table { | ||||
th { | th { | ||||
font-family: 'capsuularegular'; | |||||
font-weight: normal; | |||||
font-size: 23px; | |||||
} | |||||
th, td { | |||||
//text-align: center ; | |||||
//font-family: 'capsuularegular'; | |||||
font-weight: bold; | |||||
font-size: 14px; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
.panel-body { | .panel-body { | ||||
h2 { | |||||
font-size: 20px; | |||||
text-transform: none; | |||||
margin-bottom: 7px; | |||||
padding-bottom: 0px; | |||||
margin-top: 0px; | |||||
} | |||||
p:last-child { | p:last-child { | ||||
margin-bottom: 0px; | margin-bottom: 0px; | ||||
padding-bottom: 5px; | padding-bottom: 5px; | ||||
.number { | .number { | ||||
font-family: 'highvoltageregular'; | font-family: 'highvoltageregular'; | ||||
font-weight: bold; | font-weight: bold; | ||||
font-size: 50px; | |||||
font-size: 35px; | |||||
} | } | ||||
.description { | .description { | ||||
font-size: 18px; | |||||
font-size: 16px; | |||||
} | } | ||||
.detail { | .detail { |