On avance sur LivraisonParSecteurs

This commit is contained in:
2021-02-04 17:51:49 +01:00
parent aa5a914df3
commit 4455b37b57
19 changed files with 518 additions and 151 deletions

View File

@@ -0,0 +1,38 @@
INSERT INTO `lps_area`(`id`,`title`) VALUES
(1, 'Capso'),
(2, 'Pays de Lumbres'),
(3, 'Haut des Flandres'),
(4, 'Flandres intérieur');
INSERT INTO `lps_area_city`(`id_area`,`zipcode`) VALUES
(1,'62120'),
(1,'62129'),
(1,'62219'),
(1,'62500'),
(1,'62510'),
(1,'62570'),
(1,'62575'),
(1,'62910');
INSERT INTO `lps_area_city`(`id_area`,`zipcode`) VALUES
(2,'62010'),
(2,'62024'),
(2,'62088'),
(2,'62229'),
(2,'62292'),
(2,'62309'),
(2,'62504'),
(2,'62534'),
(2,'62613'),
(2,'62656'),
(2,'62674'),
(2,'62702'),
(2,'62788'),
(2,'62794'),
(2,'62803'),
(2,'62882'),
(2,'62897'),
(2,'62898'),
(2,'62905');

View File

@@ -4,15 +4,18 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
<route id="livraisonparsecteurs.back.config" path="/admin/module/LivraisonParSecteurs">
<route id="livraisonparsecteurs.area.list" path="/admin/module/LivraisonParSecteurs">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewAction</default>
</route>
<route id="livraisonparsecteurs.back.price" path="/admin/module/LivraisonParSecteurs/config">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::updatePrice</default>
</route>
<route id="livraisonparsecteurs.toggle.visible" path="/admin/module/LivraisonParSecteurs/toggle-online/{id}" methods="post">
<route id="livraisonparsecteurs.toggle.active" path="/admin/module/LivraisonParSecteurs/toggle-online/{id}" methods="post">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::toggleActive</default>
<requirement key="id">\d+</requirement>
</route>
<route id="livraisonparsecteurs.area.view" path="/admin/module/LivraisonParSecteurs/edit" methods="get">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewArea</default>
</route>
<route id="livraisonparsecteurs.area.edit" path="/admin/module/LivraisonParSecteurs/edit" methods="post">
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::editArea</default>
</route>
</routes>

View File

@@ -4,95 +4,63 @@
SET FOREIGN_KEY_CHECKS = 0;
-- ---------------------------------------------------------------------
-- lps_secteur
-- lps_area
-- ---------------------------------------------------------------------
DROP TABLE IF EXISTS `lps_secteur`;
DROP TABLE IF EXISTS `lps_area`;
CREATE TABLE `lps_secteur`
CREATE TABLE `lps_area`
(
`id` INTEGER NOT NULL,
`nom` VARCHAR(50) NOT NULL,
`title` VARCHAR(50) NOT NULL,
`active` TINYINT DEFAULT 1 NOT NULL,
`price` INTEGER DEFAULT 0 NOT NULL,
`created_at` DATETIME,
`updated_at` DATETIME,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
INSERT INTO `lps_secteur`(`id`,`nom`) VALUES (1, 'Capso'), (2, 'Pays de Lumbres'), (3, 'Haut des Flanders'), (4, 'Flandres intérieur');
-- ---------------------------------------------------------------------
-- lps_secteur_commune
-- lps_area_city
-- ---------------------------------------------------------------------
DROP TABLE IF EXISTS `lps_secteur_commune`;
DROP TABLE IF EXISTS `lps_area_city`;
CREATE TABLE `lps_secteur_commune`
CREATE TABLE `lps_area_city`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_secteur` INTEGER NOT NULL,
`id_area` INTEGER NOT NULL,
`zipcode` VARCHAR(10) NOT NULL,
`created_at` DATETIME,
`updated_at` DATETIME,
PRIMARY KEY (`id`),
INDEX `fi_secteur_commune_secteur` (`id_secteur`),
CONSTRAINT `fk_secteur_commune_secteur`
FOREIGN KEY (`id_secteur`)
REFERENCES `lps_secteur` (`id`)
INDEX `fi_area_area_city` (`id_area`),
CONSTRAINT `fk_area_area_city`
FOREIGN KEY (`id_area`)
REFERENCES `lps_area` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;
INSERT INTO `lps_secteur_commune`(`id_secteur`,`zipcode`) VALUES
(1,'62120'),
(1,'62129'),
(1,'62219'),
(1,'62500'),
(1,'62510'),
(1,'62570'),
(1,'62575'),
(1,'62910');
INSERT INTO `lps_secteur_commune`(`id_secteur`,`zipcode`) VALUES
(2,'62010'),
(2,'62024'),
(2,'62088'),
(2,'62229'),
(2,'62292'),
(2,'62309'),
(2,'62504'),
(2,'62534'),
(2,'62613'),
(2,'62656'),
(2,'62674'),
(2,'62702'),
(2,'62788'),
(2,'62794'),
(2,'62803'),
(2,'62882'),
(2,'62897'),
(2,'62898'),
(2,'62905');
-- ---------------------------------------------------------------------
-- lps_secteur_horaires
-- lps_area_schedule
-- ---------------------------------------------------------------------
DROP TABLE IF EXISTS `lps_secteur_horaires`;
DROP TABLE IF EXISTS `lps_area_schedule`;
CREATE TABLE `lps_secteur_horaires`
CREATE TABLE `lps_area_schedule`
(
`id` INTEGER NOT NULL AUTO_INCREMENT,
`id_secteur` INTEGER NOT NULL,
`jour` INTEGER NOT NULL,
`heure_debut` TIME NOT NULL,
`heure_fin` TIME NOT NULL,
`id_area` INTEGER NOT NULL,
`day` INTEGER NOT NULL,
`begin_time` TIME NOT NULL,
`end_time` TIME NOT NULL,
`created_at` DATETIME,
`updated_at` DATETIME,
PRIMARY KEY (`id`),
INDEX `fi_secteur_horaires_secteur` (`id_secteur`),
CONSTRAINT `fk_secteur_horaires_secteur`
FOREIGN KEY (`id_secteur`)
REFERENCES `lps_secteur` (`id`)
INDEX `fi_area_area_schedule` (`id_area`),
CONSTRAINT `fk_area_area_schedule`
FOREIGN KEY (`id_area`)
REFERENCES `lps_area` (`id`)
ON DELETE CASCADE
) ENGINE=InnoDB;

View File

@@ -2,7 +2,11 @@
namespace LivraisonParSecteurs\Controller;
use LivraisonParSecteurs\LivraisonParSecteurs;
use LivraisonParSecteurs\Model\LpsAreaQuery;
use Thelia\Controller\Admin\BaseAdminController;
use Thelia\Core\Security\AccessManager;
use Thelia\Core\Security\Resource\AdminResources;
/**
* Class BackOfficeController
@@ -12,17 +16,36 @@ class BackOfficeController extends BaseAdminController
{
public function viewAction($params = [])
{
return $this->render("secteurs");
return $this->render("deliveryarea-list");
}
public function toggleActive($params = [])
public function toggleActive($id)
{
return $this->render("secteurs");
// Check current user authorization
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::UPDATE))
return $response;
$deliveryarea = LpsAreaQuery::create()->findOneById($id);
$deliveryarea->setActive($deliveryarea->getActive() ? 0 : 1)->save();
return $this->render("deliveryarea-list");
}
public function updatePrice($params = [])
{
return $this->render("secteurs");
return $this->render("deliveryarea-list");
}
public function viewArea()
{
$selectedArea = LpsAreaQuery::create()->findOneById($this->getRequest()->query->get("area_id"));
return $this->render("deliveryarea-edit", array('module_code' => 'DeliveryRound',
'area_id' => $selectedArea));
}
public function editArea()
{
$selectedArea = LpsAreaQuery::create()->findOneById($id);
return $this->render("deliveryarea-edit");
}
}

View File

@@ -3,6 +3,7 @@
namespace LivraisonParSecteurs\Form;
use LivraisonParSecteurs\LivraisonParSecteurs;
use LivraisonParSecteurs\Model\LpsAreaQuery;
use Thelia\Form\BaseForm;
use Symfony\Component\Validator\Constraints;
@@ -23,7 +24,16 @@ class ConfigForm extends BaseForm
'required' => true,
'label' => $this->translator->trans('Price', [], LivraisonParSecteurs::DOMAIN_NAME),
'label_attr' => ['for' => 'price'],
'data' => LivraisonParSecteurs::getConfigValue('price', 0)
'attr' => array()
])
->add(
'active',
'number',
[
'required' => true,
'label' => $this->translator->trans('Active', [], LivraisonParSecteurs::DOMAIN_NAME),
'label_attr' => ['for' => 'active'],
'attr' => array()
]
);
}

View File

@@ -30,13 +30,8 @@ class AdminHook extends BaseHook
);
if ($isGranted) {
$event->add($this->render("secteurs.html", $event->getArguments()));
$event->add($this->render("deliveryarea-list.html", $event->getArguments()));
}
}
public function onModuleConfigJs(HookRenderEvent $event)
{
$event->add($this->render('script/livraisonparsecteurs-js.html'));
}
}

View File

@@ -2,14 +2,13 @@
namespace LivraisonParSecteurs\Loop;
use Propel\Runtime\ActiveQuery\Criteria;
use Thelia\Core\Template\Element\BaseLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
use Thelia\Core\Template\Loop\Argument\Argument;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
use LivraisonParSecteurs\Model\LpsSecteurQuery;
use LivraisonParSecteurs\Model\LpsAreaQuery;
/**
* Class AreaLoop
@@ -33,8 +32,9 @@ class AreaLoop extends BaseLoop implements PropelSearchLoopInterface
$loopResultRow = new LoopResultRow($lps_area);
$loopResultRow
->set("ID", $lps_area->getId())
->set("NAME", $lps_area->getNom())
->set("TITLE", $lps_area->getTitle())
->set("ACTIVE", $lps_area->getActive())
->set("PRICE", $lps_area->getPrice())
->set("DELIVERY_DAYS", "Lundi....")
;
$loopResult->addRow($loopResultRow);
@@ -58,9 +58,17 @@ class AreaLoop extends BaseLoop implements PropelSearchLoopInterface
*/
public function buildModelCriteria()
{
$query = LpsSecteurQuery::create();
$query = LpsAreaQuery::create();
return $query->orderByNom();
/* Filtrage éventuel */
if (null != $id = $this->getId()) {
$query->filterById($id);
}
if (null != $active = $this->getActive()) {
$query->filterByActive($active);
}
return $query->orderByTitle();
}
}

View File

@@ -0,0 +1,67 @@
<?php
namespace LivraisonParSecteurs\Loop;
use LivraisonParSecteurs\Model\LpsAreaScheduleQuery;
use Thelia\Core\Template\Element\BaseLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
use Thelia\Core\Template\Loop\Argument\Argument;
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
use LivraisonParSecteurs\Model\LpsAreaQuery;
/**
* Class AreaScheduleLoop
* @package LivraisonParSecteurs\Loop
*/
class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface
{
public $countable = false;
public $timestampable = false;
public $versionable = false;
/**
* @param LoopResult $loopResult
*
* @return LoopResult
*/
public function parseResults(LoopResult $loopResult)
{
foreach ($loopResult->getResultDataCollection() as $lps_area_schedule) {
$loopResultRow = new LoopResultRow($lps_area_schedule);
$loopResultRow
->set("ID", $lps_area->getId())
->set("TITLE", $lps_area->getTitle())
->set("ACTIVE", $lps_area->getActive())
->set("PRICE", $lps_area->getPrice())
->set("DELIVERY_DAYS", "Lundi....")
;
$loopResult->addRow($loopResultRow);
}
return $loopResult;
}
/**
* @inheritdoc
*/
protected function getArgDefinitions()
{
return new ArgumentCollection(
Argument::createIntListTypeArgument('id_area')
);
}
/**
* @inheritdoc
*/
public function buildModelCriteria()
{
$query = LpsAreaScheduleQuery::create();
$query->filterByIdArea($this->getIdArea());
return $query->orderByDay()->orderByBeginTime();
}
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteur as BaseLpsSecteur;
use LivraisonParSecteurs\Model\Base\LpsArea as BaseLpsArea;
/**
* Skeleton subclass for representing a row from the 'lps_secteur' table.
* Skeleton subclass for representing a row from the 'lps_area' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteur as BaseLpsSecteur;
* long as it does not already exist in the output directory.
*
*/
class LpsSecteur extends BaseLpsSecteur
class LpsArea extends BaseLpsArea
{
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteurCommune as BaseLpsSecteurCommune;
use LivraisonParSecteurs\Model\Base\LpsAreaCity as BaseLpsAreaCity;
/**
* Skeleton subclass for representing a row from the 'lps_secteur_commune' table.
* Skeleton subclass for representing a row from the 'lps_area_city' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurCommune as BaseLpsSecteurCommune;
* long as it does not already exist in the output directory.
*
*/
class LpsSecteurCommune extends BaseLpsSecteurCommune
class LpsAreaCity extends BaseLpsAreaCity
{
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteurCommuneQuery as BaseLpsSecteurCommuneQuery;
use LivraisonParSecteurs\Model\Base\LpsAreaCityQuery as BaseLpsAreaCityQuery;
/**
* Skeleton subclass for performing query and update operations on the 'lps_secteur_commune' table.
* Skeleton subclass for performing query and update operations on the 'lps_area_city' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurCommuneQuery as BaseLpsSecteurComm
* long as it does not already exist in the output directory.
*
*/
class LpsSecteurCommuneQuery extends BaseLpsSecteurCommuneQuery
class LpsAreaCityQuery extends BaseLpsAreaCityQuery
{
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteurQuery as BaseLpsSecteurQuery;
use LivraisonParSecteurs\Model\Base\LpsAreaQuery as BaseLpsAreaQuery;
/**
* Skeleton subclass for performing query and update operations on the 'lps_secteur' table.
* Skeleton subclass for performing query and update operations on the 'lps_area' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurQuery as BaseLpsSecteurQuery;
* long as it does not already exist in the output directory.
*
*/
class LpsSecteurQuery extends BaseLpsSecteurQuery
class LpsAreaQuery extends BaseLpsAreaQuery
{
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteurHoraires as BaseLpsSecteurHoraires;
use LivraisonParSecteurs\Model\Base\LpsAreaSchedule as BaseLpsAreaSchedule;
/**
* Skeleton subclass for representing a row from the 'lps_secteur_horaires' table.
* Skeleton subclass for representing a row from the 'lps_area_schedule' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurHoraires as BaseLpsSecteurHoraires
* long as it does not already exist in the output directory.
*
*/
class LpsSecteurHoraires extends BaseLpsSecteurHoraires
class LpsAreaSchedule extends BaseLpsAreaSchedule
{
}

View File

@@ -2,10 +2,10 @@
namespace LivraisonParSecteurs\Model;
use LivraisonParSecteurs\Model\Base\LpsSecteurHorairesQuery as BaseLpsSecteurHorairesQuery;
use LivraisonParSecteurs\Model\Base\LpsAreaScheduleQuery as BaseLpsAreaScheduleQuery;
/**
* Skeleton subclass for performing query and update operations on the 'lps_secteur_horaires' table.
* Skeleton subclass for performing query and update operations on the 'lps_area_schedule' table.
*
*
*
@@ -14,7 +14,7 @@ use LivraisonParSecteurs\Model\Base\LpsSecteurHorairesQuery as BaseLpsSecteurHor
* long as it does not already exist in the output directory.
*
*/
class LpsSecteurHorairesQuery extends BaseLpsSecteurHorairesQuery
class LpsAreaScheduleQuery extends BaseLpsAreaScheduleQuery
{
}

View File

@@ -0,0 +1,70 @@
{extends file="admin-layout.tpl"}
{block name="page-title"}{intl l='My areas' d="livraisonparsecteurs"}{/block}
{block name="check-access"}update{/block}
{block name="check-module"}LivraisonParSecteurs{/block}
{block name="main-content"}
<div id="wrapper" class="container">
{assign "area_id" $smarty.get.area_id}
{if $form_error}
<div class="alert alert-danger">{$form_error_message}</div>
{/if}
<div class="form-container">
{include
file = "includes/inner-form-toolbar.html"
hide_submit_buttons = false
pageUrl = "{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$area_id}"
closeUrl = "{url path='/admin/module/LivraisonParSecteurs'}"
current_tab = "general"
}
</div>
<div class="general-block-decorator">
<div class="title title-without-tabs">
{intl l='Edit an area' d='livraisonparsecteurs'}&nbsp;: <b>{loop name="area" type="lps_area" id={$area_id}}{$TITLE}{/loop}</b>
</div>
{hookblock name="area.tabs" area=$area_id}
<ul class="nav nav-tabs" id="tabbed-menu">
{loop name="auth-general" type="auth" role="ADMIN" resource="admin" access="VIEW" module="LivraisonParSecteurs"}
<li class="active"><a href="#general" data-toggle="tab">{intl l="General" d="livraisonparsecteurs"}</a></li>
{/loop}
{loop name="auth-schedule" type="auth" role="ADMIN" resource="admin.schedule" access="VIEW" module="LivraisonParSecteurs"}
<li><a href="#schedule" data-toggle="tab">{intl l="Schedule" d="livraisonparsecteurs"}</a></li>
{/loop}
{loop name="auth-cities" type="auth" role="ADMIN" resource="admin.cities" access="VIEW" module="LivraisonParSecteurs"}
<li><a href="#cities" data-toggle="tab">{intl l="Cities" d="livraisonparsecteurs"}</a></li>
{/loop}
</ul>
<div class="tab-content">
{loop name="auth-general-tab" type="auth" role="ADMIN" resource="admin" access="VIEW" module="LivraisonParSecteurs"}
<div class="tab-pane fade in active" id="general">
{include file="includes/area-general.html"}
</div>
{/loop}
{loop name="auth-schedule-tab" type="auth" role="ADMIN" resource="admin.schedule" access="VIEW" module="LivraisonParSecteurs"}
<div class="tab-pane fade" id="schedule">
{* {include file="includes/area-schedule.html"} *}
</div>
{/loop}
{loop name="auth-cities-tab" type="auth" role="ADMIN" resource="admin.cities" access="VIEW" module="LivraisonParSecteurs"}
<div class="tab-pane fade" id="cities">
{* {include file="includes/area-cities.html"} *}
</div>
{/loop}
</div>
{/hookblock}
</div>
</div>
{/block}
{block name="javascript-initialization"}
{javascripts file='assets/js/bootstrap-switch/bootstrap-switch.js'}
<script src="{$asset_url}"></script>
{/javascripts}
{/block}

View File

@@ -4,7 +4,7 @@
{$admin_current_location = 'module'}
{/block}
{block name="page-title"}{intl l='Configuration'}{/block}
{block name="page-title"}{intl l='Title of config view' d='livraisonparsecteurs'}{/block}
{block name="check-resource"}admin.module{/block}
{block name="check-access"}view{/block}
@@ -19,39 +19,7 @@
</div>
{/if}
<div class="general-block-decorator">
<div class="title title-without-tabs">
{intl l="Home delivery cost" d='livraisonparsecteurs'}
</div>
{form name='livraisonparsecteurs.config_form'}
<form action="{url path='/admin/module/LivraisonParSecteurs/config'}" method="post" class="form-inline">
{form_hidden_fields form=$form}
{if $form_error}
<div class="alert alert-danger">{$form_error_message}</div>
{/if}
{form_field form=$form field="price"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
{$label}
</label>
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="{$value}"
{if $required}required{/if} />
</div>
{/form_field}
<div class="form-group">
<button class="btn btn-info" type="submit">{intl l='Save' d='livraisonparsecteurs'}</button>
</div>
</form>
{/form}
</div>
<div class="general-block-decorator">
<div class="general-block-decorator">
<div class="table-responsive">
<table class="table table-striped table-condensed" id="areas-table">
<caption class="clearfix">
@@ -60,28 +28,18 @@
<thead>
<tr>
{$order}
<th>
{intl l="Area name" d='livraisonparsecteurs'}
</th>
<th>
{intl l="Active" d='livraisonparsecteurs'}
</th>
<th>
{intl l="Delivery days" d='livraisonparsecteurs'}
</th>
<th>
{intl l="Actions" d='livraisonparsecteurs'}
</th>
<th>{intl l="Area name" d='livraisonparsecteurs'}</th>
<th>{intl l="Active" d='livraisonparsecteurs'}</th>
<th>{intl l="Delivery price" d='livraisonparsecteurs'}</th>
<th>{intl l="Delivery days" d='livraisonparsecteurs'}</th>
<th>{intl l="Actions" d='livraisonparsecteurs'}</th>
</tr>
</thead>
<tbody>
{loop name="areas" type="lps_area" backend_context="yes" order=$order force_return=true}
{loop name="areas" type="lps_area" backend_context="yes"}
<tr>
<td>
<a href="{url path='/admin/module/LivraisonParSecteurs/secteurs/edit' area_id=$ID}">{$NAME}</a>
</td>
<td><a href="{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$ID}">{$TITLE}</a></td>
<td>
<div class="make-switch switch-small toggle-visible" data-id="{$ID}" data-on="success"
data-off="danger" data-on-label="<i class='glyphicon glyphicon-ok'></i>"
@@ -89,12 +47,11 @@
<input type="checkbox" class="link" {if $ACTIVE == 1}checked="checked"{/if}>
</div>
</td>
<td>
{$DELIVERY_DAYS}
</td>
<td>{$PRICE} €</td>
<td>{$DELIVERY_DAYS}</td>
<td>
<div class="btn-group">
<a class="btn btn-default btn-xs" title="{intl l='Edit this area'}" href="{url path='/admin/module/LivraisonParSecteurs/secteurs/edit' area_id=$ID}">
<a class="btn btn-default btn-xs" title="{intl l='Edit this area'}" href="{url path='/admin/module/LivraisonParSecteurs/edit' area_id=$ID}">
<i class="glyphicon glyphicon-edit"></i>
</a>
<a class="btn btn-default btn-xs area-delete" title="{intl l='Delete this area'}" data-target="#area-delete" data-toggle="modal" data-id="{$ID}">
@@ -124,7 +81,7 @@
$(".toggle-visible").on('switch-change', function (event, data) {
$.ajax({
method: "POST",
url: "{url path='admin/module/LivraisonParSecteurs/secteurs/toggle-online/'}" + $(this).data('id')
url: "{url path='admin/module/LivraisonParSecteurs/toggle-online/'}" + $(this).data('id')
});
});
});

View File

@@ -0,0 +1,88 @@
<div class="row">
<div class="col-md-12">
<table class="table table-striped table-condensed">
<caption class="clearfix">
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.livraisonparsecteurs.schedules" access="CREATE" module="LivraisonParSecteurs"}
<div class="pull-right">
<a class="btn btn-default btn-primary dealer-schedules-default"
title="{intl l='Create a new Default Schedules' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-create" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</div>
{/loop}
<h4>{intl l="Default Schedules" d="livraisonparsecteurs"}</h4>
</caption>
<thead>
<tr>
<th>
{intl l="Day" d="livraisonparsecteurs"}
</th>
<th>
{intl l="Begin" d="livraisonparsecteurs"}
</th>
<th>
{intl l="End" d="livraisonparsecteurs"}
</th>
<th>
{intl l="Actions" d="livraisonparsecteurs"}
</th>
</tr>
</thead>
<tbody>
{loop name="dealer-schedules-defaults" type="dealer_schedules" dealer_id=$smarty.get.dealer_id default_period=true order="day,begin"}
<tr>
<td>
{$DAY_LABEL}
</td>
<td>
{format_date date=$BEGIN format="H:i"}
</td>
<td>
{format_date date=$END format="H:i"}
</td>
{* Actions *}
<td>
<div class="btn-group">
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="UPDATE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-update-default"
title="{intl l='Modify this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-update" data-toggle="modal" data-id="{$ID}"
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
data-end="{format_date date=$END format="H:i"}">
<i class="glyphicon glyphicon-edit"></i>
</a>
{/loop}
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="CREATE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-clone"
title="{intl l='Clone this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-clone" data-toggle="modal" data-id="{$ID}">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
{/loop}
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="DELETE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-delete"
title="{intl l='Delete this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-delete" data-toggle="modal" data-id="{$ID}">
<i class="glyphicon glyphicon-trash"></i>
</a>
{/loop}
</div>
</td>
</tr>
{/loop}
{elseloop rel="dealer-schedules-defaults"}
<tr>
<td colspan="1000">
<div class="alert alert-info">
{intl l="There is no Default Schedules" d="livraisonparsecteurs"}
</div>
</td>
</tr>
{/elseloop}
</tbody>
</table>
</div>
</div>

View File

@@ -0,0 +1,49 @@
<div class="row">
<div class="col-md-12">
<div class="general-block-decorator">
{loop name="area" type="lps_area" id="$area_id"}
{form name='livraisonparsecteurs_config_general'}
<form action="{url path='/admin/module/LivraisonParSecteurs/edit'}" method="post" class="form-inline">
{form_hidden_fields form=$form}
{if $form_error}
<div class="alert alert-danger">{$form_error_message}</div>
{/if}
{form_field form=$form field="price"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
{$label}
</label>
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="{$PRICE}"
{if $required}required{/if} />
</div>
{/form_field}
{form_field form=$form field="active"}
<div class="form-group">
<label class="control-label" for="{$label_attr.for}">
{$label}
</label>
<div class="make-switch switch-small toggle-visible" data-id="{$ID}" data-on="success"
data-off="danger" data-on-label="<i class='glyphicon glyphicon-ok'></i>"
data-off-label="<i class='glyphicon glyphicon-remove'></i>">
<input type="checkbox" class="link" {if $ACTIVE == 1}checked="checked"{/if}>
</div>
</div>
{/form_field}
<div class="form-group">
<button class="btn btn-info" type="submit">{intl l='Save' d='livraisonparsecteurs'}</button>
</div>
</form>
{/form}
{/loop}
</div>
</div>
</div>

View File

@@ -0,0 +1,91 @@
<link rel="stylesheet"
href="{stylesheet file='assets/js/bootstrap-datetimepicker/bootstrap-datetimepicker.min.css'}">
<div class="row">
<div class="col-md-12">
<table class="table table-striped table-condensed">
<caption class="clearfix">
{loop name="auth-create" type="auth" role="ADMIN" resource="admin.livraisonparsecteurs.schedules" access="CREATE" module="LivraisonParSecteurs"}
<div class="pull-right">
<a class="btn btn-default btn-primary dealer-schedules-default"
title="{intl l='Create a new Default Schedules' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-create" data-toggle="modal">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
</div>
{/loop}
<h4>{intl l="Default Schedules" d="livraisonparsecteurs"}</h4>
</caption>
<thead>
<tr>
<th>
{intl l="Day" d="livraisonparsecteurs"}
</th>
<th>
{intl l="Begin" d="livraisonparsecteurs"}
</th>
<th>
{intl l="End" d="livraisonparsecteurs"}
</th>
<th>
{intl l="Actions" d="livraisonparsecteurs"}
</th>
</tr>
</thead>
<tbody>
{loop name="dealer-schedules-defaults" type="dealer_schedules" dealer_id=$smarty.get.dealer_id default_period=true order="day,begin"}
<tr>
<td>
{$DAY_LABEL}
</td>
<td>
{format_date date=$BEGIN format="H:i"}
</td>
<td>
{format_date date=$END format="H:i"}
</td>
{* Actions *}
<td>
<div class="btn-group">
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="UPDATE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-update-default"
title="{intl l='Modify this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-update" data-toggle="modal" data-id="{$ID}"
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
data-end="{format_date date=$END format="H:i"}">
<i class="glyphicon glyphicon-edit"></i>
</a>
{/loop}
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="CREATE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-clone"
title="{intl l='Clone this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-clone" data-toggle="modal" data-id="{$ID}">
<i class="glyphicon glyphicon-plus-sign"></i>
</a>
{/loop}
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.dealer.schedules" access="DELETE" module="Dealer"}
<a class="btn btn-default btn-xs dealer-schedules-delete"
title="{intl l='Delete this Schedule' d='livraisonparsecteurs'}"
data-target="#dealer-schedules-delete" data-toggle="modal" data-id="{$ID}">
<i class="glyphicon glyphicon-trash"></i>
</a>
{/loop}
</div>
</td>
</tr>
{/loop}
{elseloop rel="dealer-schedules-defaults"}
<tr>
<td colspan="1000">
<div class="alert alert-info">
{intl l="There is no Default Schedules" d="livraisonparsecteurs"}
</div>
</td>
</tr>
{/elseloop}
</tbody>
</table>
</div>
</div>