@@ -46,6 +46,7 @@ $common_config_main = array_merge(require(__DIR__ . '/../../common/config/main.p | |||
return [ | |||
'id' => 'app-backend', | |||
'name' => "Distrib", | |||
'basePath' => dirname(__DIR__), | |||
'controllerNamespace' => 'backend\controllers', | |||
'defaultRoute' => 'site/index', | |||
@@ -65,6 +66,13 @@ return [ | |||
'errorAction' => 'site/error', | |||
], | |||
'urlManager' => $common_config_main['components']['urlManagerBackend'], | |||
'assetManager' => [ | |||
'bundles' => [ | |||
'dmstr\web\AdminLteAsset' => [ | |||
'skin' => 'skin-red', | |||
], | |||
], | |||
], | |||
], | |||
'params' => $params, | |||
]; |
@@ -0,0 +1,272 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.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\widgets\Breadcrumbs; | |||
use dmstr\widgets\Alert; | |||
?> | |||
<div class="content-wrapper"> | |||
<section class="content-header"> | |||
<?php if (isset($this->blocks['content-header'])) { ?> | |||
<h1><?= $this->blocks['content-header'] ?></h1> | |||
<?php } else { ?> | |||
<h1> | |||
<?php | |||
if ($this->title !== null) { | |||
echo \yii\helpers\Html::encode($this->title); | |||
} else { | |||
echo \yii\helpers\Inflector::camel2words( | |||
\yii\helpers\Inflector::id2camel($this->context->module->id) | |||
); | |||
echo ($this->context->module->id !== \Yii::$app->id) ? '<small>Module</small>' : ''; | |||
} ?> | |||
</h1> | |||
<?php } ?> | |||
<?= | |||
Breadcrumbs::widget( | |||
[ | |||
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], | |||
] | |||
) ?> | |||
</section> | |||
<section class="content"> | |||
<?= Alert::widget() ?> | |||
<?= $content ?> | |||
</section> | |||
</div> | |||
<footer class="main-footer"> | |||
<div class="pull-right hidden-xs"> | |||
<b>Version</b> 2.0 | |||
</div> | |||
<strong>Copyright © 2014-2015 <a href="http://almsaeedstudio.com">Almsaeed Studio</a>.</strong> All rights | |||
reserved. | |||
</footer> | |||
<!-- Control Sidebar --> | |||
<aside class="control-sidebar control-sidebar-dark"> | |||
<!-- Create the tabs --> | |||
<ul class="nav nav-tabs nav-justified control-sidebar-tabs"> | |||
<li><a href="#control-sidebar-home-tab" data-toggle="tab"><i class="fa fa-home"></i></a></li> | |||
<li><a href="#control-sidebar-settings-tab" data-toggle="tab"><i class="fa fa-gears"></i></a></li> | |||
</ul> | |||
<!-- Tab panes --> | |||
<div class="tab-content"> | |||
<!-- Home tab content --> | |||
<div class="tab-pane" id="control-sidebar-home-tab"> | |||
<h3 class="control-sidebar-heading">Recent Activity</h3> | |||
<ul class='control-sidebar-menu'> | |||
<li> | |||
<a href='javascript::;'> | |||
<i class="menu-icon fa fa-birthday-cake bg-red"></i> | |||
<div class="menu-info"> | |||
<h4 class="control-sidebar-subheading">Langdon's Birthday</h4> | |||
<p>Will be 23 on April 24th</p> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<i class="menu-icon fa fa-user bg-yellow"></i> | |||
<div class="menu-info"> | |||
<h4 class="control-sidebar-subheading">Frodo Updated His Profile</h4> | |||
<p>New phone +1(800)555-1234</p> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<i class="menu-icon fa fa-envelope-o bg-light-blue"></i> | |||
<div class="menu-info"> | |||
<h4 class="control-sidebar-subheading">Nora Joined Mailing List</h4> | |||
<p>nora@example.com</p> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<i class="menu-icon fa fa-file-code-o bg-green"></i> | |||
<div class="menu-info"> | |||
<h4 class="control-sidebar-subheading">Cron Job 254 Executed</h4> | |||
<p>Execution time 5 seconds</p> | |||
</div> | |||
</a> | |||
</li> | |||
</ul> | |||
<!-- /.control-sidebar-menu --> | |||
<h3 class="control-sidebar-heading">Tasks Progress</h3> | |||
<ul class='control-sidebar-menu'> | |||
<li> | |||
<a href='javascript::;'> | |||
<h4 class="control-sidebar-subheading"> | |||
Custom Template Design | |||
<span class="label label-danger pull-right">70%</span> | |||
</h4> | |||
<div class="progress progress-xxs"> | |||
<div class="progress-bar progress-bar-danger" style="width: 70%"></div> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<h4 class="control-sidebar-subheading"> | |||
Update Resume | |||
<span class="label label-success pull-right">95%</span> | |||
</h4> | |||
<div class="progress progress-xxs"> | |||
<div class="progress-bar progress-bar-success" style="width: 95%"></div> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<h4 class="control-sidebar-subheading"> | |||
Laravel Integration | |||
<span class="label label-waring pull-right">50%</span> | |||
</h4> | |||
<div class="progress progress-xxs"> | |||
<div class="progress-bar progress-bar-warning" style="width: 50%"></div> | |||
</div> | |||
</a> | |||
</li> | |||
<li> | |||
<a href='javascript::;'> | |||
<h4 class="control-sidebar-subheading"> | |||
Back End Framework | |||
<span class="label label-primary pull-right">68%</span> | |||
</h4> | |||
<div class="progress progress-xxs"> | |||
<div class="progress-bar progress-bar-primary" style="width: 68%"></div> | |||
</div> | |||
</a> | |||
</li> | |||
</ul> | |||
<!-- /.control-sidebar-menu --> | |||
</div> | |||
<!-- /.tab-pane --> | |||
<!-- Settings tab content --> | |||
<div class="tab-pane" id="control-sidebar-settings-tab"> | |||
<form method="post"> | |||
<h3 class="control-sidebar-heading">General Settings</h3> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Report panel usage | |||
<input type="checkbox" class="pull-right" checked/> | |||
</label> | |||
<p> | |||
Some information about this general settings option | |||
</p> | |||
</div> | |||
<!-- /.form-group --> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Allow mail redirect | |||
<input type="checkbox" class="pull-right" checked/> | |||
</label> | |||
<p> | |||
Other sets of options are available | |||
</p> | |||
</div> | |||
<!-- /.form-group --> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Expose author name in posts | |||
<input type="checkbox" class="pull-right" checked/> | |||
</label> | |||
<p> | |||
Allow the user to show his name in blog posts | |||
</p> | |||
</div> | |||
<!-- /.form-group --> | |||
<h3 class="control-sidebar-heading">Chat Settings</h3> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Show me as online | |||
<input type="checkbox" class="pull-right" checked/> | |||
</label> | |||
</div> | |||
<!-- /.form-group --> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Turn off notifications | |||
<input type="checkbox" class="pull-right"/> | |||
</label> | |||
</div> | |||
<!-- /.form-group --> | |||
<div class="form-group"> | |||
<label class="control-sidebar-subheading"> | |||
Delete chat history | |||
<a href="javascript::;" class="text-red pull-right"><i class="fa fa-trash-o"></i></a> | |||
</label> | |||
</div> | |||
<!-- /.form-group --> | |||
</form> | |||
</div> | |||
<!-- /.tab-pane --> | |||
</div> | |||
</aside><!-- /.control-sidebar --> | |||
<!-- Add the sidebar's background. This div must be placed | |||
immediately after the control sidebar --> | |||
<div class='control-sidebar-bg'></div> |
@@ -0,0 +1,318 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.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; | |||
/* @var $this \yii\web\View */ | |||
/* @var $content string */ | |||
?> | |||
<header class="main-header"> | |||
<?= Html::a('<span class="logo-mini">APP</span><span class="logo-lg">' . Yii::$app->name . '</span>', Yii::$app->homeUrl, ['class' => 'logo']) ?> | |||
<nav class="navbar navbar-static-top" role="navigation"> | |||
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button"> | |||
<span class="sr-only">Toggle navigation</span> | |||
</a> | |||
<div class="navbar-custom-menu"> | |||
<ul class="nav navbar-nav"> | |||
<!-- Messages: style can be found in dropdown.less--> | |||
<li class="dropdown messages-menu"> | |||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> | |||
<i class="fa fa-envelope-o"></i> | |||
<span class="label label-success">4</span> | |||
</a> | |||
<ul class="dropdown-menu"> | |||
<li class="header">You have 4 messages</li> | |||
<li> | |||
<!-- inner menu: contains the actual data --> | |||
<ul class="menu"> | |||
<li><!-- start message --> | |||
<a href="#"> | |||
<div class="pull-left"> | |||
<img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle" | |||
alt="User Image"/> | |||
</div> | |||
<h4> | |||
Support Team | |||
<small><i class="fa fa-clock-o"></i> 5 mins</small> | |||
</h4> | |||
<p>Why not buy a new awesome theme?</p> | |||
</a> | |||
</li> | |||
<!-- end message --> | |||
<li> | |||
<a href="#"> | |||
<div class="pull-left"> | |||
<img src="<?= $directoryAsset ?>/img/user3-128x128.jpg" class="img-circle" | |||
alt="user image"/> | |||
</div> | |||
<h4> | |||
AdminLTE Design Team | |||
<small><i class="fa fa-clock-o"></i> 2 hours</small> | |||
</h4> | |||
<p>Why not buy a new awesome theme?</p> | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<div class="pull-left"> | |||
<img src="<?= $directoryAsset ?>/img/user4-128x128.jpg" class="img-circle" | |||
alt="user image"/> | |||
</div> | |||
<h4> | |||
Developers | |||
<small><i class="fa fa-clock-o"></i> Today</small> | |||
</h4> | |||
<p>Why not buy a new awesome theme?</p> | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<div class="pull-left"> | |||
<img src="<?= $directoryAsset ?>/img/user3-128x128.jpg" class="img-circle" | |||
alt="user image"/> | |||
</div> | |||
<h4> | |||
Sales Department | |||
<small><i class="fa fa-clock-o"></i> Yesterday</small> | |||
</h4> | |||
<p>Why not buy a new awesome theme?</p> | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<div class="pull-left"> | |||
<img src="<?= $directoryAsset ?>/img/user4-128x128.jpg" class="img-circle" | |||
alt="user image"/> | |||
</div> | |||
<h4> | |||
Reviewers | |||
<small><i class="fa fa-clock-o"></i> 2 days</small> | |||
</h4> | |||
<p>Why not buy a new awesome theme?</p> | |||
</a> | |||
</li> | |||
</ul> | |||
</li> | |||
<li class="footer"><a href="#">See All Messages</a></li> | |||
</ul> | |||
</li> | |||
<li class="dropdown notifications-menu"> | |||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> | |||
<i class="fa fa-bell-o"></i> | |||
<span class="label label-warning">10</span> | |||
</a> | |||
<ul class="dropdown-menu"> | |||
<li class="header">You have 10 notifications</li> | |||
<li> | |||
<!-- inner menu: contains the actual data --> | |||
<ul class="menu"> | |||
<li> | |||
<a href="#"> | |||
<i class="fa fa-users text-aqua"></i> 5 new members joined today | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<i class="fa fa-warning text-yellow"></i> Very long description here that may | |||
not fit into the page and may cause design problems | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<i class="fa fa-users text-red"></i> 5 new members joined | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<i class="fa fa-shopping-cart text-green"></i> 25 sales made | |||
</a> | |||
</li> | |||
<li> | |||
<a href="#"> | |||
<i class="fa fa-user text-red"></i> You changed your username | |||
</a> | |||
</li> | |||
</ul> | |||
</li> | |||
<li class="footer"><a href="#">View all</a></li> | |||
</ul> | |||
</li> | |||
<!-- Tasks: style can be found in dropdown.less --> | |||
<li class="dropdown tasks-menu"> | |||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> | |||
<i class="fa fa-flag-o"></i> | |||
<span class="label label-danger">9</span> | |||
</a> | |||
<ul class="dropdown-menu"> | |||
<li class="header">You have 9 tasks</li> | |||
<li> | |||
<!-- inner menu: contains the actual data --> | |||
<ul class="menu"> | |||
<li><!-- Task item --> | |||
<a href="#"> | |||
<h3> | |||
Design some buttons | |||
<small class="pull-right">20%</small> | |||
</h3> | |||
<div class="progress xs"> | |||
<div class="progress-bar progress-bar-aqua" style="width: 20%" | |||
role="progressbar" aria-valuenow="20" aria-valuemin="0" | |||
aria-valuemax="100"> | |||
<span class="sr-only">20% Complete</span> | |||
</div> | |||
</div> | |||
</a> | |||
</li> | |||
<!-- end task item --> | |||
<li><!-- Task item --> | |||
<a href="#"> | |||
<h3> | |||
Create a nice theme | |||
<small class="pull-right">40%</small> | |||
</h3> | |||
<div class="progress xs"> | |||
<div class="progress-bar progress-bar-green" style="width: 40%" | |||
role="progressbar" aria-valuenow="20" aria-valuemin="0" | |||
aria-valuemax="100"> | |||
<span class="sr-only">40% Complete</span> | |||
</div> | |||
</div> | |||
</a> | |||
</li> | |||
<!-- end task item --> | |||
<li><!-- Task item --> | |||
<a href="#"> | |||
<h3> | |||
Some task I need to do | |||
<small class="pull-right">60%</small> | |||
</h3> | |||
<div class="progress xs"> | |||
<div class="progress-bar progress-bar-red" style="width: 60%" | |||
role="progressbar" aria-valuenow="20" aria-valuemin="0" | |||
aria-valuemax="100"> | |||
<span class="sr-only">60% Complete</span> | |||
</div> | |||
</div> | |||
</a> | |||
</li> | |||
<!-- end task item --> | |||
<li><!-- Task item --> | |||
<a href="#"> | |||
<h3> | |||
Make beautiful transitions | |||
<small class="pull-right">80%</small> | |||
</h3> | |||
<div class="progress xs"> | |||
<div class="progress-bar progress-bar-yellow" style="width: 80%" | |||
role="progressbar" aria-valuenow="20" aria-valuemin="0" | |||
aria-valuemax="100"> | |||
<span class="sr-only">80% Complete</span> | |||
</div> | |||
</div> | |||
</a> | |||
</li> | |||
<!-- end task item --> | |||
</ul> | |||
</li> | |||
<li class="footer"> | |||
<a href="#">View all tasks</a> | |||
</li> | |||
</ul> | |||
</li> | |||
<!-- User Account: style can be found in dropdown.less --> | |||
<li class="dropdown user user-menu"> | |||
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> | |||
<img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="user-image" alt="User Image"/> | |||
<span class="hidden-xs">Alexander Pierce</span> | |||
</a> | |||
<ul class="dropdown-menu"> | |||
<!-- User image --> | |||
<li class="user-header"> | |||
<img src="<?= $directoryAsset ?>/img/user2-160x160.jpg" class="img-circle" | |||
alt="User Image"/> | |||
<p> | |||
Alexander Pierce - Web Developer | |||
<small>Member since Nov. 2012</small> | |||
</p> | |||
</li> | |||
<!-- Menu Body --> | |||
<li class="user-body"> | |||
<div class="col-xs-4 text-center"> | |||
<a href="#">Followers</a> | |||
</div> | |||
<div class="col-xs-4 text-center"> | |||
<a href="#">Sales</a> | |||
</div> | |||
<div class="col-xs-4 text-center"> | |||
<a href="#">Friends</a> | |||
</div> | |||
</li> | |||
<!-- Menu Footer--> | |||
<li class="user-footer"> | |||
<div class="pull-left"> | |||
<a href="#" class="btn btn-default btn-flat">Profile</a> | |||
</div> | |||
<div class="pull-right"> | |||
<?= Html::a( | |||
'Sign out', | |||
['/site/logout'], | |||
['data-method' => 'post', 'class' => 'btn btn-default btn-flat'] | |||
) ?> | |||
</div> | |||
</li> | |||
</ul> | |||
</li> | |||
<!-- User Account: style can be found in dropdown.less --> | |||
<li> | |||
<a href="#" data-toggle="control-sidebar"><i class="fa fa-gears"></i></a> | |||
</li> | |||
</ul> | |||
</div> | |||
</nav> | |||
</header> |
@@ -0,0 +1,108 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.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. | |||
*/ | |||
?> | |||
<aside class="main-sidebar"> | |||
<section class="sidebar"> | |||
<?= dmstr\widgets\Menu::widget( | |||
[ | |||
'options' => ['class' => 'sidebar-menu tree', 'data-widget'=> 'tree'], | |||
'items' => [ | |||
['label' => 'Tableau de bord','icon' => 'dashboard','url' => ['/site/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Distributions','icon' => 'calendar','url' => ['/order/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Abonnements','icon' => 'repeat','url' => ['/subscription/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Produits','icon' => 'clone','url' => ['/product/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Points de vente','icon' => 'map-marker','url' => ['/point-sale/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Clients','icon' => 'users','url' => ['/user/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Paramètres','icon' => 'cog','url' => ['/producer/update'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Communiquer','icon' => 'bullhorn','url' => ['/communicate/index'], 'visible' => User::isCurrentProducer()], | |||
[ | |||
'label' => 'Statistiques', | |||
'icon' => 'line-chart', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Chiffre d\'affaire','icon' => 'line-chart','url' => ['/stats/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Produits','icon' => 'table','url' => ['/stats/products'], 'visible' => User::isCurrentProducer()], | |||
], | |||
], | |||
['label' => 'Développement','icon' => 'wrench','url' => ['/development/index'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Mon abonnement','icon' => 'euro','url' => ['/producer/billing'], 'visible' => User::isCurrentProducer()], | |||
['label' => 'Administration', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Producteurs','icon' => 'th-list','url' => ['/producer-admin/index'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Outils', 'options' => ['class' => 'header'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Debug', 'icon' => 'dashboard', 'url' => ['/debug'], 'visible' => User::isCurrentAdmin()], | |||
['label' => 'Login', 'url' => ['site/login'], 'visible' => !User::isCurrentConnected()], | |||
/*[ | |||
'label' => 'Some tools', | |||
'icon' => 'share', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Gii', 'icon' => 'file-code-o', 'url' => ['/gii'],], | |||
['label' => 'Debug', 'icon' => 'dashboard', 'url' => ['/debug'],], | |||
[ | |||
'label' => 'Level One', | |||
'icon' => 'circle-o', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Level Two', 'icon' => 'circle-o', 'url' => '#',], | |||
[ | |||
'label' => 'Level Two', | |||
'icon' => 'circle-o', | |||
'url' => '#', | |||
'items' => [ | |||
['label' => 'Level Three', 'icon' => 'circle-o', 'url' => '#',], | |||
['label' => 'Level Three', 'icon' => 'circle-o', 'url' => '#',], | |||
], | |||
], | |||
], | |||
], | |||
], | |||
],*/ | |||
], | |||
] | |||
) ?> | |||
</section> | |||
</aside> |
@@ -0,0 +1,66 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.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 backend\assets\AppAsset; | |||
use yii\helpers\Html; | |||
/* @var $this \yii\web\View */ | |||
/* @var $content string */ | |||
dmstr\web\AdminLteAsset::register($this); | |||
?> | |||
<?php $this->beginPage() ?> | |||
<!DOCTYPE html> | |||
<html lang="<?= Yii::$app->language ?>"> | |||
<head> | |||
<meta charset="<?= Yii::$app->charset ?>"/> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<?= Html::csrfMetaTags() ?> | |||
<title><?= Html::encode($this->title) ?></title> | |||
<?php $this->head() ?> | |||
</head> | |||
<body class="login-page"> | |||
<?php $this->beginBody() ?> | |||
<?= $content ?> | |||
<?php $this->endBody() ?> | |||
</body> | |||
</html> | |||
<?php $this->endPage() ?> |
@@ -0,0 +1,290 @@ | |||
<?php | |||
/** | |||
Copyright La boîte à pain (2018) | |||
contact@laboiteapain.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\Nav; | |||
use yii\bootstrap\NavBar; | |||
use yii\widgets\Breadcrumbs; | |||
use common\models\Producer; | |||
use common\models\User; | |||
use yii\widgets\ActiveForm; | |||
use yii\helpers\ArrayHelper; | |||
use common\helpers\Url; | |||
/* @var $this \yii\web\View */ | |||
/* @var $content string */ | |||
\common\assets\CommonAsset::register($this); | |||
\backend\assets\AppAsset::register($this); | |||
$producer = null ; | |||
if(!Yii::$app->user->isGuest) { | |||
$producer = Producer::findOne(Producer::getId()) ; | |||
} | |||
?> | |||
<?php $this->beginPage() ?> | |||
<!DOCTYPE html> | |||
<html lang="<?= Yii::$app->language ?>"> | |||
<head> | |||
<meta charset="<?= Yii::$app->charset ?>"> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<meta name="baseurl" content="<?= Yii::$app->urlManagerBackend->baseUrl ; ?>"> | |||
<meta name="baseurl-absolute" content="<?= Yii::$app->urlManagerBackend->getHostInfo().Yii::$app->urlManagerBackend->baseUrl; ?>"> | |||
<link rel="icon" type="image/png" href="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/favicon3.png" /> | |||
<?= Html::csrfMetaTags() ?> | |||
<title><?= Html::encode($this->title) ?> - La boîte à pain</title> | |||
<?php $this->head() ?> | |||
</head> | |||
<body> | |||
<?php $this->beginBody() ?> | |||
<div class="wrap"> | |||
<?php | |||
NavBar::begin([ | |||
'brandLabel' => '<img class="logo" src="' . Yii::$app->urlManager->getBaseUrl() . '/img/laboulange3.png" />', | |||
'brandUrl' => Yii::$app->homeUrl, | |||
'innerContainerOptions' => ['class' => 'container-fluid'], | |||
'options' => [ | |||
'class' => 'navbar-inverse navbar-fixed-top nav-header', | |||
], | |||
]); | |||
$menuItems = [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-home"></span> Tableau de bord', | |||
'url' => ['/site/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-calendar"></span> Commandes', | |||
'url' => ['/order/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-calendar"></span> Toutes les commandes', | |||
'url' => ['/order/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-repeat"></span> Abonnements', | |||
'url' => ['/subscription/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
] | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-grain"></span> Produits', | |||
'url' => ['/product/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-map-marker"></span> Points de vente', | |||
'url' => ['/point-sale/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-user"></span> Clients', | |||
'url' => ['/user/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-plus"></span>', | |||
'url' => ['/producer/update'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-cog"></span> Paramètres', | |||
'url' => ['/producer/update'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-bullhorn"></span> Communiquer', | |||
'url' => ['/communicate/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-euro"></span> Mon abonnement', | |||
'url' => ['/producer/billing'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-stats"></span> Statistiques', | |||
'url' => ['/stats/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-stats"></span> Statistiques produits', | |||
'url' => ['/stats/products'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-wrench"></span> Développement', | |||
'url' => ['/development/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
], | |||
] | |||
]; | |||
if (Yii::$app->user->isGuest) { | |||
$menuItems[] = ['label' => 'Connexion', 'url' => ['/site/login']]; | |||
} else { | |||
if (Yii::$app->user->identity->status == USER::STATUS_ADMIN) { | |||
$menuItems[] = [ | |||
'label' => '<span class="glyphicon glyphicon-asterisk"></span>', | |||
'url' => '#', | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-th-list"></span> Producteurs', | |||
'url' => ['producer-admin/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-euro"></span> Facturation', | |||
'url' => ['producer-admin/billing'], | |||
'visible' => false, | |||
], | |||
] | |||
]; | |||
} | |||
$menuItems[] = [ | |||
'label' => '<span class="glyphicon glyphicon-off"></span>', | |||
'url' => ['/site/logout'], | |||
'linkOptions' => ['data-method' => 'post', 'title' => 'Déconnexion'] | |||
]; | |||
$menuItems[] = [ | |||
'label' => '<span class="retour-site">Retour sur le site</span>', | |||
'url' => Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index','slug_producer' => $producer->slug]), | |||
]; | |||
} | |||
echo Nav::widget([ | |||
'options' => ['class' => 'navbar-nav navbar-right'], | |||
'items' => $menuItems, | |||
'encodeLabels' => false | |||
]); | |||
NavBar::end(); | |||
?> | |||
<div class="container-fluid container-body"> | |||
<?php if (YII_ENV == 'dev' || YII_ENV == 'demo'): ?> | |||
<div id="env-dev"><?php if (YII_ENV == 'dev'): ?>Dév.<?php elseif (YII_ENV == 'demo'): ?>Démo<?php endif; ?></div> | |||
<?php endif; ?> | |||
<?php if (!Yii::$app->user->isGuest): ?> | |||
<div class="name-producer"> | |||
<?php if (User::getCurrentStatus() == User::STATUS_PRODUCER): ?> | |||
<span><?= Html::encode(Yii::$app->user->identity->getNameProducer()); ?></span> | |||
<?php elseif (User::getCurrentStatus() == User::STATUS_ADMIN): ?> | |||
<?php $form = ActiveForm::begin(['id' => 'select-producer']); ?> | |||
<?= | |||
Html::dropDownList('select_producer', Producer::getId(), ArrayHelper::map(Producer::find()->orderBy('name ASC')->all(), 'id', function($model, $defaultValue) { | |||
return $model->name; | |||
})); | |||
?> | |||
<?php ActiveForm::end(); ?> | |||
<?php endif; ?> | |||
<?php | |||
$producer = Producer::findOne(Producer::getId()); | |||
if (!$producer->active): | |||
?> | |||
<span class="label label-danger" data-toggle="tooltip" data-placement="bottom" data-original-title="Activez votre établissement quand vous le souhaitez afin de la rendre visible à vos clients."> | |||
<?= Html::a('Hors-ligne', ['producer/update']); ?> | |||
</span> | |||
<?php endif; ?> | |||
<div class="clr"></div> | |||
</div> | |||
<?php endif; ?> | |||
<?php if (YII_ENV == 'demo'): ?> | |||
<div id="block-demo"> | |||
<div class="container-fluid"> | |||
<span class="glyphicon glyphicon-eye-open"></span> <strong>Espace de démonstration</strong> : | |||
Testez la plateforme sans avoir à vous inscrire. Les données sont réinitialisées quotidiennement • <?= Html::a('Retour', Url::env('prod', 'frontend')) ?> | |||
</div> | |||
</div> | |||
<?php endif; ?> | |||
<?= | |||
Breadcrumbs::widget([ | |||
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], | |||
]) | |||
?> | |||
<?= $content ?> | |||
</div> | |||
</div> | |||
<div id="alerts-fixed"></div> | |||
<footer class="footer"> | |||
<div class="container-fluid"> | |||
<p class="pull-left"> | |||
<a href="<?php echo Url::frontend('site/contact'); ?>">Contact</a> • | |||
<a href="<?php echo Url::frontend('site/mentions'); ?>">Mentions légales</a> • | |||
<a href="<?php echo Url::frontend('site/cgv'); ?>">CGS</a> | |||
<a id="code-source" href="https://framagit.org/guillaume-bourgeois/laboiteapain">Code source <img src="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/logo-framagit.png" alt="Hébergé par Framasoft" /> <img src="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/logo-gitlab.png" alt="Propulsé par Gitlab" /></a> | |||
</p> | |||
<p class="pull-right"><?= Yii::powered() ?></p> | |||
</div> | |||
</footer> | |||
<?php $this->endBody() ?> | |||
<!-- analytics --> | |||
<script> | |||
(function (i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function () { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); | |||
ga('create', 'UA-86917043-1', 'auto'); | |||
ga('send', 'pageview'); | |||
</script> | |||
</body> | |||
</html> | |||
<?php $this->endPage() ?> |
@@ -37,254 +37,66 @@ termes. | |||
*/ | |||
use yii\helpers\Html; | |||
use yii\bootstrap\Nav; | |||
use yii\bootstrap\NavBar; | |||
use yii\widgets\Breadcrumbs; | |||
use common\models\Producer; | |||
use common\models\User; | |||
use yii\widgets\ActiveForm; | |||
use yii\helpers\ArrayHelper; | |||
use common\helpers\Url; | |||
/* @var $this \yii\web\View */ | |||
/* @var $content string */ | |||
\common\assets\CommonAsset::register($this); | |||
\backend\assets\AppAsset::register($this); | |||
$producer = null ; | |||
if(!Yii::$app->user->isGuest) { | |||
$producer = Producer::findOne(Producer::getId()) ; | |||
} | |||
?> | |||
<?php $this->beginPage() ?> | |||
<!DOCTYPE html> | |||
<html lang="<?= Yii::$app->language ?>"> | |||
if (Yii::$app->controller->action->id === 'login') { | |||
/** | |||
* Do not use this code in your template. Remove it. | |||
* Instead, use the code $this->layout = '//main-login'; in your controller. | |||
*/ | |||
echo $this->render( | |||
'main-login', | |||
['content' => $content] | |||
); | |||
} else { | |||
if (class_exists('backend\assets\AppAsset')) { | |||
backend\assets\AppAsset::register($this); | |||
} else { | |||
app\assets\AppAsset::register($this); | |||
} | |||
dmstr\web\AdminLteAsset::register($this); | |||
$directoryAsset = Yii::$app->assetManager->getPublishedUrl('@vendor/almasaeed2010/adminlte/dist'); | |||
?> | |||
<?php $this->beginPage() ?> | |||
<!DOCTYPE html> | |||
<html lang="<?= Yii::$app->language ?>"> | |||
<head> | |||
<meta charset="<?= Yii::$app->charset ?>"> | |||
<meta charset="<?= Yii::$app->charset ?>"/> | |||
<meta name="viewport" content="width=device-width, initial-scale=1"> | |||
<meta name="baseurl" content="<?= Yii::$app->urlManagerBackend->baseUrl ; ?>"> | |||
<meta name="baseurl-absolute" content="<?= Yii::$app->urlManagerBackend->getHostInfo().Yii::$app->urlManagerBackend->baseUrl; ?>"> | |||
<link rel="icon" type="image/png" href="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/favicon3.png" /> | |||
<?= Html::csrfMetaTags() ?> | |||
<title><?= Html::encode($this->title) ?> - La boîte à pain</title> | |||
<?php $this->head() ?> | |||
<title><?= Html::encode($this->title) ?></title> | |||
<?php $this->head() ?> | |||
</head> | |||
<body> | |||
<?php $this->beginBody() ?> | |||
<div class="wrap"> | |||
<?php | |||
NavBar::begin([ | |||
'brandLabel' => '<img class="logo" src="' . Yii::$app->urlManager->getBaseUrl() . '/img/laboulange3.png" />', | |||
'brandUrl' => Yii::$app->homeUrl, | |||
'innerContainerOptions' => ['class' => 'container-fluid'], | |||
'options' => [ | |||
'class' => 'navbar-inverse navbar-fixed-top nav-header', | |||
], | |||
]); | |||
$menuItems = [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-home"></span> Tableau de bord', | |||
'url' => ['/site/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-calendar"></span> Commandes', | |||
'url' => ['/order/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-calendar"></span> Toutes les commandes', | |||
'url' => ['/order/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-repeat"></span> Abonnements', | |||
'url' => ['/subscription/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
] | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-grain"></span> Produits', | |||
'url' => ['/product/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-map-marker"></span> Points de vente', | |||
'url' => ['/point-sale/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-user"></span> Clients', | |||
'url' => ['/user/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-plus"></span>', | |||
'url' => ['/producer/update'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-cog"></span> Paramètres', | |||
'url' => ['/producer/update'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-bullhorn"></span> Communiquer', | |||
'url' => ['/communicate/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-euro"></span> Mon abonnement', | |||
'url' => ['/producer/billing'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-stats"></span> Statistiques', | |||
'url' => ['/stats/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-stats"></span> Statistiques produits', | |||
'url' => ['/stats/products'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-wrench"></span> Développement', | |||
'url' => ['/development/index'], | |||
'visible' => !Yii::$app->user->isGuest | |||
], | |||
], | |||
] | |||
]; | |||
if (Yii::$app->user->isGuest) { | |||
$menuItems[] = ['label' => 'Connexion', 'url' => ['/site/login']]; | |||
} else { | |||
if (Yii::$app->user->identity->status == USER::STATUS_ADMIN) { | |||
$menuItems[] = [ | |||
'label' => '<span class="glyphicon glyphicon-asterisk"></span>', | |||
'url' => '#', | |||
'items' => [ | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-th-list"></span> Producteurs', | |||
'url' => ['producer-admin/index'], | |||
'visible' => !Yii::$app->user->isGuest, | |||
], | |||
[ | |||
'label' => '<span class="glyphicon glyphicon-euro"></span> Facturation', | |||
'url' => ['producer-admin/billing'], | |||
'visible' => false, | |||
], | |||
] | |||
]; | |||
} | |||
$menuItems[] = [ | |||
'label' => '<span class="glyphicon glyphicon-off"></span>', | |||
'url' => ['/site/logout'], | |||
'linkOptions' => ['data-method' => 'post', 'title' => 'Déconnexion'] | |||
]; | |||
$menuItems[] = [ | |||
'label' => '<span class="retour-site">Retour sur le site</span>', | |||
'url' => Yii::$app->urlManagerProducer->createAbsoluteUrl(['site/index','slug_producer' => $producer->slug]), | |||
]; | |||
} | |||
echo Nav::widget([ | |||
'options' => ['class' => 'navbar-nav navbar-right'], | |||
'items' => $menuItems, | |||
'encodeLabels' => false | |||
]); | |||
NavBar::end(); | |||
?> | |||
<div class="container-fluid container-body"> | |||
<?php if (YII_ENV == 'dev' || YII_ENV == 'demo'): ?> | |||
<div id="env-dev"><?php if (YII_ENV == 'dev'): ?>Dév.<?php elseif (YII_ENV == 'demo'): ?>Démo<?php endif; ?></div> | |||
<?php endif; ?> | |||
<?php if (!Yii::$app->user->isGuest): ?> | |||
<div class="name-producer"> | |||
<?php if (User::getCurrentStatus() == User::STATUS_PRODUCER): ?> | |||
<span><?= Html::encode(Yii::$app->user->identity->getNameProducer()); ?></span> | |||
<?php elseif (User::getCurrentStatus() == User::STATUS_ADMIN): ?> | |||
<?php $form = ActiveForm::begin(['id' => 'select-producer']); ?> | |||
<?= | |||
Html::dropDownList('select_producer', Producer::getId(), ArrayHelper::map(Producer::find()->orderBy('name ASC')->all(), 'id', function($model, $defaultValue) { | |||
return $model->name; | |||
})); | |||
?> | |||
<?php ActiveForm::end(); ?> | |||
<?php endif; ?> | |||
<?php | |||
$producer = Producer::findOne(Producer::getId()); | |||
if (!$producer->active): | |||
?> | |||
<span class="label label-danger" data-toggle="tooltip" data-placement="bottom" data-original-title="Activez votre établissement quand vous le souhaitez afin de la rendre visible à vos clients."> | |||
<?= Html::a('Hors-ligne', ['producer/update']); ?> | |||
</span> | |||
<?php endif; ?> | |||
<div class="clr"></div> | |||
</div> | |||
<?php endif; ?> | |||
<?php if (YII_ENV == 'demo'): ?> | |||
<div id="block-demo"> | |||
<div class="container-fluid"> | |||
<span class="glyphicon glyphicon-eye-open"></span> <strong>Espace de démonstration</strong> : | |||
Testez la plateforme sans avoir à vous inscrire. Les données sont réinitialisées quotidiennement • <?= Html::a('Retour', Url::env('prod', 'frontend')) ?> | |||
</div> | |||
</div> | |||
<?php endif; ?> | |||
<?= | |||
Breadcrumbs::widget([ | |||
'links' => isset($this->params['breadcrumbs']) ? $this->params['breadcrumbs'] : [], | |||
]) | |||
?> | |||
<?= $content ?> | |||
</div> | |||
</div> | |||
<body class="hold-transition <?= \dmstr\helpers\AdminLteHelper::skinClass() ?> sidebar-mini"> | |||
<?php $this->beginBody() ?> | |||
<div class="wrapper"> | |||
<div id="alerts-fixed"></div> | |||
<?= $this->render( | |||
'header.php', | |||
['directoryAsset' => $directoryAsset] | |||
) ?> | |||
<footer class="footer"> | |||
<div class="container-fluid"> | |||
<p class="pull-left"> | |||
<a href="<?php echo Url::frontend('site/contact'); ?>">Contact</a> • | |||
<a href="<?php echo Url::frontend('site/mentions'); ?>">Mentions légales</a> • | |||
<a href="<?php echo Url::frontend('site/cgv'); ?>">CGS</a> | |||
<a id="code-source" href="https://framagit.org/guillaume-bourgeois/laboiteapain">Code source <img src="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/logo-framagit.png" alt="Hébergé par Framasoft" /> <img src="<?php echo Yii::$app->urlManager->getBaseUrl(); ?>/img/logo-gitlab.png" alt="Propulsé par Gitlab" /></a> | |||
</p> | |||
<p class="pull-right"><?= Yii::powered() ?></p> | |||
</div> | |||
</footer> | |||
<?= $this->render( | |||
'left.php', | |||
['directoryAsset' => $directoryAsset] | |||
) | |||
?> | |||
<?php $this->endBody() ?> | |||
<?= $this->render( | |||
'content.php', | |||
['content' => $content, 'directoryAsset' => $directoryAsset] | |||
) ?> | |||
<!-- analytics --> | |||
<script> | |||
(function (i, s, o, g, r, a, m) { | |||
i['GoogleAnalyticsObject'] = r; | |||
i[r] = i[r] || function () { | |||
(i[r].q = i[r].q || []).push(arguments) | |||
}, i[r].l = 1 * new Date(); | |||
a = s.createElement(o), | |||
m = s.getElementsByTagName(o)[0]; | |||
a.async = 1; | |||
a.src = g; | |||
m.parentNode.insertBefore(a, m) | |||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); | |||
</div> | |||
ga('create', 'UA-86917043-1', 'auto'); | |||
ga('send', 'pageview'); | |||
</script> | |||
<?php $this->endBody() ?> | |||
</body> | |||
</html> | |||
<?php $this->endPage() ?> | |||
</html> | |||
<?php $this->endPage() ?> | |||
<?php } ?> |
@@ -45,19 +45,36 @@ use yii\helpers\Html; | |||
$this->title = $name; | |||
?> | |||
<div class="site-error"> | |||
<section class="content"> | |||
<h1><?= Html::encode($this->title) ?></h1> | |||
<div class="error-page"> | |||
<h2 class="headline text-info"><i class="fa fa-warning text-yellow"></i></h2> | |||
<div class="alert alert-danger"> | |||
<?= nl2br(Html::encode($message)) ?> | |||
</div> | |||
<div class="error-content"> | |||
<h3><?= $name ?></h3> | |||
<p> | |||
<?= nl2br(Html::encode($message)) ?> | |||
</p> | |||
<p> | |||
The above error occurred while the Web server was processing your request. | |||
Please contact us if you think this is a server error. Thank you. | |||
Meanwhile, you may <a href='<?= Yii::$app->homeUrl ?>'>return to dashboard</a> or try using the search | |||
form. | |||
</p> | |||
<p> | |||
The above error occurred while the Web server was processing your request. | |||
</p> | |||
<p> | |||
Please contact us if you think this is a server error. Thank you. | |||
</p> | |||
<form class='search-form'> | |||
<div class='input-group'> | |||
<input type="text" name="search" class='form-control' placeholder="Search"/> | |||
<div class="input-group-btn"> | |||
<button type="submit" name="submit" class="btn btn-primary"><i class="fa fa-search"></i> | |||
</button> | |||
</div> | |||
</div> | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
</section> |
@@ -36,6 +36,7 @@ pris connaissance de la licence CeCILL, et que vous en avez accepté les | |||
termes. | |||
*/ | |||
use yii\helpers\Html; | |||
use yii\bootstrap\ActiveForm; | |||
@@ -43,29 +44,65 @@ use yii\bootstrap\ActiveForm; | |||
/* @var $form yii\bootstrap\ActiveForm */ | |||
/* @var $model \common\models\LoginForm */ | |||
$this->title = 'Connexion'; | |||
$this->params['breadcrumbs'][] = $this->title; | |||
$this->title = 'Sign In'; | |||
$fieldOptions1 = [ | |||
'options' => ['class' => 'form-group has-feedback'], | |||
'inputTemplate' => "{input}<span class='glyphicon glyphicon-envelope form-control-feedback'></span>" | |||
]; | |||
$fieldOptions2 = [ | |||
'options' => ['class' => 'form-group has-feedback'], | |||
'inputTemplate' => "{input}<span class='glyphicon glyphicon-lock form-control-feedback'></span>" | |||
]; | |||
?> | |||
<div class="site-login"> | |||
<h1><?= Html::encode($this->title) ?></h1> | |||
<div class="row"> | |||
<div class="col-lg-5"> | |||
<?php if(YII_ENV == 'demo') : ?> | |||
<div class="alert alert-warning"> | |||
Identifiant : <strong>producteur@laboiteapain.net</strong><br /> | |||
Mot de passe : <strong>laboiteapain</strong> | |||
</div> | |||
<?php endif; ?> | |||
<?php $form = ActiveForm::begin(['id' => 'login-form']); ?> | |||
<?= $form->field($model, 'email') ?> | |||
<?= $form->field($model, 'password')->passwordInput() ?> | |||
<div class="login-box"> | |||
<div class="login-logo"> | |||
<a href="#"><b>Admin</b>LTE</a> | |||
</div> | |||
<!-- /.login-logo --> | |||
<div class="login-box-body"> | |||
<p class="login-box-msg">Sign in to start your session</p> | |||
<?php $form = ActiveForm::begin(['id' => 'login-form', 'enableClientValidation' => false]); ?> | |||
<?= $form | |||
->field($model, 'username', $fieldOptions1) | |||
->label(false) | |||
->textInput(['placeholder' => $model->getAttributeLabel('username')]) ?> | |||
<?= $form | |||
->field($model, 'password', $fieldOptions2) | |||
->label(false) | |||
->passwordInput(['placeholder' => $model->getAttributeLabel('password')]) ?> | |||
<div class="row"> | |||
<div class="col-xs-8"> | |||
<?= $form->field($model, 'rememberMe')->checkbox() ?> | |||
<div class="form-group"> | |||
<?= Html::submitButton('Connexion', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
</div> | |||
<!-- /.col --> | |||
<div class="col-xs-4"> | |||
<?= Html::submitButton('Sign in', ['class' => 'btn btn-primary btn-block btn-flat', 'name' => 'login-button']) ?> | |||
</div> | |||
<!-- /.col --> | |||
</div> | |||
<?php ActiveForm::end(); ?> | |||
<div class="social-auth-links text-center"> | |||
<p>- OR -</p> | |||
<a href="#" class="btn btn-block btn-social btn-facebook btn-flat"><i class="fa fa-facebook"></i> Sign in | |||
using Facebook</a> | |||
<a href="#" class="btn btn-block btn-social btn-google-plus btn-flat"><i class="fa fa-google-plus"></i> Sign | |||
in using Google+</a> | |||
</div> | |||
<!-- /.social-auth-links --> | |||
<a href="#">I forgot my password</a><br> | |||
<a href="register.html" class="text-center">Register a new membership</a> | |||
</div> | |||
</div> | |||
<!-- /.login-box-body --> | |||
</div><!-- /.login-box --> |
@@ -424,7 +424,31 @@ class User extends ActiveRecordCommon implements IdentityInterface | |||
} | |||
/** | |||
* Retourne si l'utilisateur est un boulanger ou non. | |||
* Retourne l'utilisateur courant. | |||
* | |||
* @return User | |||
*/ | |||
public static function getCurrent() | |||
{ | |||
if(!Yii::$app->user->isGuest) { | |||
return Yii::$app->user->identity ; | |||
} | |||
return false ; | |||
} | |||
/** | |||
* Retourne si l'utilisateur courant est connecté ou non. | |||
* | |||
* @return boolean | |||
*/ | |||
public static function isCurrentConnected() | |||
{ | |||
return !Yii::$app->user->isGuest ; | |||
} | |||
/** | |||
* Retourne si l'utilisateur est un producteur ou non. | |||
* | |||
* @return boolean | |||
*/ | |||
@@ -432,6 +456,43 @@ class User extends ActiveRecordCommon implements IdentityInterface | |||
{ | |||
return ($this->status == User::STATUS_ADMIN || $this->status == User::STATUS_PRODUCER) && $this->id_producer; | |||
} | |||
/** | |||
* Retourne si l'utilisateur courant est un producteur ou non. | |||
* | |||
* @return boolean | |||
*/ | |||
public static function isCurrentProducer() | |||
{ | |||
$user = User::getCurrent() ; | |||
if($user) { | |||
return $user->isProducer() ; | |||
} | |||
return false ; | |||
} | |||
/** | |||
* Retourne si l'utilisateur est un admin ou non. | |||
* | |||
* @return boolean | |||
*/ | |||
public function isAdmin() { | |||
return $this->status == User::STATUS_ADMIN ; | |||
} | |||
/** | |||
* Retourne si l'utilisateur courant est un admin ou non. | |||
* | |||
* @return boolean | |||
*/ | |||
public static function isCurrentAdmin() | |||
{ | |||
$user = User::getCurrent() ; | |||
if($user) { | |||
return $user->isAdmin() ; | |||
} | |||
return false ; | |||
} | |||
/** | |||
* Retourne le nom du producteur. |