LivraisonParSecteurs : partie back-office terminée !!!
This commit is contained in:
@@ -9,6 +9,7 @@
|
|||||||
<form name="lps-area-cities-update" class="LivraisonParSecteurs\Form\CitiesForm" />
|
<form name="lps-area-cities-update" class="LivraisonParSecteurs\Form\CitiesForm" />
|
||||||
<form name="lps-area-schedule-update" class="LivraisonParSecteurs\Form\ScheduleUpdateForm" />
|
<form name="lps-area-schedule-update" class="LivraisonParSecteurs\Form\ScheduleUpdateForm" />
|
||||||
<form name="lps-area-schedule-create" class="LivraisonParSecteurs\Form\ScheduleCreateForm"/>
|
<form name="lps-area-schedule-create" class="LivraisonParSecteurs\Form\ScheduleCreateForm"/>
|
||||||
|
<form name="lps-area-cities-add" class="LivraisonParSecteurs\Form\CitiesAddForm"/>
|
||||||
</forms>
|
</forms>
|
||||||
|
|
||||||
<loops>
|
<loops>
|
||||||
|
|||||||
@@ -5,30 +5,40 @@
|
|||||||
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
|
xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd">
|
||||||
|
|
||||||
<route id="livraisonparsecteurs.area.list" path="/admin/module/LivraisonParSecteurs">
|
<route id="livraisonparsecteurs.area.list" path="/admin/module/LivraisonParSecteurs">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewAction</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\ListController::viewAction</default>
|
||||||
</route>
|
</route>
|
||||||
<route id="livraisonparsecteurs.toggle.active" 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>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\ListController::toggleActive</default>
|
||||||
<requirement key="id">\d+</requirement>
|
<requirement key="id">\d+</requirement>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="livraisonparsecteurs.area.view" path="/admin/module/LivraisonParSecteurs/edit" methods="get">
|
<route id="livraisonparsecteurs.area.view" path="/admin/module/LivraisonParSecteurs/edit" methods="get">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::viewArea</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\GeneralController::viewArea</default>
|
||||||
</route>
|
</route>
|
||||||
<route id="livraisonparsecteurs.area.edit" path="/admin/module/LivraisonParSecteurs/edit" methods="post">
|
<route id="livraisonparsecteurs.area.edit" path="/admin/module/LivraisonParSecteurs/edit" methods="post">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::editArea</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\GeneralController::editArea</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
|
|
||||||
<route id="livraisonparsecteurs.area.schedule.delete" path="/admin/module/LivraisonParSecteurs/schedule/delete" methods="post">
|
<route id="livraisonparsecteurs.area.schedule.delete" path="/admin/module/LivraisonParSecteurs/schedule/delete" methods="post">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::deleteSchedule</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\ScheduleController::deleteSchedule</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="livraisonparsecteurs.area.schedule.update" path="admin/module/LivraisonParSecteurs/schedule/update" methods="post">
|
<route id="livraisonparsecteurs.area.schedule.update" path="admin/module/LivraisonParSecteurs/schedule/update" methods="post">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::updateSchedule</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\ScheduleController::updateSchedule</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="livraisonparsecteurs.area.schedule.create" path="admin/module/LivraisonParSecteurs/schedule/create" methods="post">
|
<route id="livraisonparsecteurs.area.schedule.create" path="admin/module/LivraisonParSecteurs/schedule/create" methods="post">
|
||||||
<default key="_controller">LivraisonParSecteurs\Controller\BackOfficeController::createSchedule</default>
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\ScheduleController::createSchedule</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
|
|
||||||
|
<route id="livraisonparsecteurs.area.cities.remove" path="/admin/module/LivraisonParSecteurs/city/remove" methods="post">
|
||||||
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\CitiesController::removeCity</default>
|
||||||
|
</route>
|
||||||
|
<route id="livraisonparsecteurs.area.cities.add" path="/admin/module/LivraisonParSecteurs/city/add" methods="post">
|
||||||
|
<default key="_controller">LivraisonParSecteurs\Controller\backOffice\CitiesController::addCity</default>
|
||||||
|
</route>
|
||||||
|
|
||||||
|
|
||||||
</routes>
|
</routes>
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace LivraisonParSecteurs\Controller\backOffice;
|
||||||
|
|
||||||
|
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||||
|
use LivraisonParSecteurs\Model\LpsAreaCity;
|
||||||
|
use LivraisonParSecteurs\Model\LpsAreaCityQuery;
|
||||||
|
use LivraisonParSecteurs\Model\LpsAreaSchedule;
|
||||||
|
use Propel\Runtime\Map\TableMap;
|
||||||
|
use Propel\Runtime\Propel;
|
||||||
|
use Symfony\Component\HttpFoundation\RedirectResponse;
|
||||||
|
use Thelia\Controller\Admin\BaseAdminController;
|
||||||
|
use Thelia\Core\Security\AccessManager;
|
||||||
|
use Thelia\Core\Security\Resource\AdminResources;
|
||||||
|
use Thelia\Form\Exception\FormValidationException;
|
||||||
|
use Thelia\Tools\URL;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class CitiesController
|
||||||
|
* @package LivraisonParSecteurs\Controller
|
||||||
|
*/
|
||||||
|
class CitiesController extends BaseAdminController
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove a city from an area delivery tour
|
||||||
|
*/
|
||||||
|
public function removeCity()
|
||||||
|
{
|
||||||
|
// Check current user authorization
|
||||||
|
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::UPDATE))
|
||||||
|
return $response;
|
||||||
|
|
||||||
|
$areaCity_id = $this->getRequest()->get('area-cities_id');
|
||||||
|
$query = LpsAreaCityQuery::create()->findById($areaCity_id);
|
||||||
|
if ($query === null)
|
||||||
|
$error_msg = "City not found by Id in this area";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$con = Propel::getConnection();
|
||||||
|
$con->beginTransaction();
|
||||||
|
$query->delete($con);
|
||||||
|
$con->commit();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getRequest()->request->get("success_url") == null) {
|
||||||
|
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/module/LivraisonParSecteurs"));
|
||||||
|
} else {
|
||||||
|
return new RedirectResponse(URL::getInstance()->absoluteUrl($this->getRequest()->request->get("success_url")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Add a new delivered city in an area
|
||||||
|
*/
|
||||||
|
public function addCity()
|
||||||
|
{
|
||||||
|
// Check current user authorization
|
||||||
|
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::UPDATE))
|
||||||
|
return $response;
|
||||||
|
|
||||||
|
$con = Propel::getConnection();
|
||||||
|
$con->beginTransaction();
|
||||||
|
|
||||||
|
$error_msg = "";
|
||||||
|
$addForm = $this->createForm("lps-area-cities-add", "form");
|
||||||
|
try {
|
||||||
|
$form = $this->validateForm($addForm, "POST");
|
||||||
|
$data = $form->getData();
|
||||||
|
|
||||||
|
$query = new LpsAreaCity();
|
||||||
|
$query->fromArray($data, TableMap::TYPE_FIELDNAME);
|
||||||
|
$query->setIdArea($data['area_id']);
|
||||||
|
$query->save($con);
|
||||||
|
$con->commit();
|
||||||
|
|
||||||
|
} catch (FormValidationException $ex) {
|
||||||
|
$error_msg = $this->createStandardFormValidationErrorMessage($ex);
|
||||||
|
|
||||||
|
if (false !== $error_msg) {
|
||||||
|
$this->setupFormErrorContext(
|
||||||
|
$this->getTranslator()->trans("City add"),
|
||||||
|
$error_msg,
|
||||||
|
$addForm,
|
||||||
|
$ex
|
||||||
|
);
|
||||||
|
|
||||||
|
return $this->generateErrorRedirect($addForm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($data['success_url'] == null) {
|
||||||
|
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/module/LivraisonParSecteurs"));
|
||||||
|
} else {
|
||||||
|
return $this->generateSuccessRedirect($addForm);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace LivraisonParSecteurs\Controller\backOffice;
|
||||||
|
|
||||||
|
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||||
|
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||||
|
use Propel\Runtime\Map\TableMap;
|
||||||
|
use Propel\Runtime\Propel;
|
||||||
|
use Thelia\Controller\Admin\BaseAdminController;
|
||||||
|
use Thelia\Core\Security\AccessManager;
|
||||||
|
use Thelia\Core\Security\Resource\AdminResources;
|
||||||
|
use Thelia\Form\Exception\FormValidationException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class GeneralController
|
||||||
|
* @package LivraisonParSecteurs\Controller
|
||||||
|
*/
|
||||||
|
class GeneralController extends BaseAdminController
|
||||||
|
{
|
||||||
|
|
||||||
|
public function updatePrice($params = [])
|
||||||
|
{
|
||||||
|
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' => LivraisonParSecteurs::getModuleCode(),
|
||||||
|
'area_id' => $selectedArea));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function editArea()
|
||||||
|
{
|
||||||
|
// Check current user authorization
|
||||||
|
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::VIEW))
|
||||||
|
return $response;
|
||||||
|
|
||||||
|
$con = Propel::getConnection();
|
||||||
|
$con->beginTransaction();
|
||||||
|
|
||||||
|
$error_msg = "";
|
||||||
|
$changeForm = $this->createForm("lps-area-general-update", "form");
|
||||||
|
|
||||||
|
try {
|
||||||
|
$form = $this->validateForm($changeForm, "POST");
|
||||||
|
|
||||||
|
$data = $form->getData();
|
||||||
|
$area = LpsAreaQuery::create()->findOneById($data['area_id']);
|
||||||
|
if ($area === null) {
|
||||||
|
$error_msg = "Delivery area not found by Id";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$area->fromArray($data, TableMap::TYPE_FIELDNAME);
|
||||||
|
$area->save();
|
||||||
|
$con->commit();
|
||||||
|
}
|
||||||
|
} catch (FormValidationException $ex) {
|
||||||
|
$error_msg = $this->createStandardFormValidationErrorMessage($ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->getRequest()->get('save_mode') == 'stay')
|
||||||
|
return $this->render("deliveryarea-edit");
|
||||||
|
|
||||||
|
return $this->render("deliveryarea-list");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace LivraisonParSecteurs\Controller\backOffice;
|
||||||
|
|
||||||
|
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||||
|
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
||||||
|
use Thelia\Controller\Admin\BaseAdminController;
|
||||||
|
use Thelia\Core\Security\AccessManager;
|
||||||
|
use Thelia\Core\Security\Resource\AdminResources;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class ListController
|
||||||
|
* @package LivraisonParSecteurs\Controller
|
||||||
|
*/
|
||||||
|
class ListController extends BaseAdminController
|
||||||
|
{
|
||||||
|
public function viewAction($params = [])
|
||||||
|
{
|
||||||
|
return $this->render("deliveryarea-list");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function toggleActive($id)
|
||||||
|
{
|
||||||
|
// 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");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace LivraisonParSecteurs\Controller;
|
namespace LivraisonParSecteurs\Controller\backOffice;
|
||||||
|
|
||||||
use LivraisonParSecteurs\LivraisonParSecteurs;
|
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||||
use LivraisonParSecteurs\Model\LpsAreaQuery;
|
|
||||||
use LivraisonParSecteurs\Model\LpsAreaSchedule;
|
use LivraisonParSecteurs\Model\LpsAreaSchedule;
|
||||||
use LivraisonParSecteurs\Model\LpsAreaScheduleQuery;
|
use LivraisonParSecteurs\Model\LpsAreaScheduleQuery;
|
||||||
use Propel\Runtime\Map\TableMap;
|
use Propel\Runtime\Map\TableMap;
|
||||||
@@ -16,75 +15,11 @@ use Thelia\Form\Exception\FormValidationException;
|
|||||||
use Thelia\Tools\URL;
|
use Thelia\Tools\URL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class BackOfficeController
|
* Class ScheduleController
|
||||||
* @package LivraisonParSecteurs\Controller
|
* @package LivraisonParSecteurs\Controller
|
||||||
*/
|
*/
|
||||||
class BackOfficeController extends BaseAdminController
|
class ScheduleController extends BaseAdminController
|
||||||
{
|
{
|
||||||
public function viewAction($params = [])
|
|
||||||
{
|
|
||||||
return $this->render("deliveryarea-list");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function toggleActive($id)
|
|
||||||
{
|
|
||||||
// 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("deliveryarea-list");
|
|
||||||
}
|
|
||||||
|
|
||||||
public function viewArea()
|
|
||||||
{
|
|
||||||
$selectedArea = LpsAreaQuery::create()->findOneById($this->getRequest()->query->get("area_id"));
|
|
||||||
|
|
||||||
return $this->render("deliveryarea-edit", array('module_code' => LivraisonParSecteurs::getModuleCode(),
|
|
||||||
'area_id' => $selectedArea));
|
|
||||||
}
|
|
||||||
|
|
||||||
public function editArea()
|
|
||||||
{
|
|
||||||
// Check current user authorization
|
|
||||||
if (null !== $response = $this->checkAuth(AdminResources::MODULE, LivraisonParSecteurs::getModuleCode(), AccessManager::VIEW))
|
|
||||||
return $response;
|
|
||||||
|
|
||||||
$con = Propel::getConnection();
|
|
||||||
$con->beginTransaction();
|
|
||||||
|
|
||||||
$error_msg = "";
|
|
||||||
$changeForm = $this->createForm("lps-area-general-update", "form");
|
|
||||||
|
|
||||||
try {
|
|
||||||
$form = $this->validateForm($changeForm, "POST");
|
|
||||||
|
|
||||||
$data = $form->getData();
|
|
||||||
$area = LpsAreaQuery::create()->findOneById($data['area_id']);
|
|
||||||
if ($area === null) {
|
|
||||||
$error_msg = "Delivery area not found by Id";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$area->fromArray($data, TableMap::TYPE_FIELDNAME);
|
|
||||||
$area->save();
|
|
||||||
$con->commit();
|
|
||||||
}
|
|
||||||
} catch (FormValidationException $ex) {
|
|
||||||
$error_msg = $this->createStandardFormValidationErrorMessage($ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->getRequest()->get('save_mode') == 'stay')
|
|
||||||
return $this->render("deliveryarea-edit");
|
|
||||||
|
|
||||||
return $this->render("deliveryarea-list");
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Delete a day in an area's delivery schedule
|
* Delete a day in an area's delivery schedule
|
||||||
@@ -167,8 +102,8 @@ class BackOfficeController extends BaseAdminController
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update a day in an area's delivery schedule
|
* Add a new delivery day in an area
|
||||||
*/
|
*/
|
||||||
public function createSchedule()
|
public function createSchedule()
|
||||||
{
|
{
|
||||||
// Check current user authorization
|
// Check current user authorization
|
||||||
@@ -210,7 +145,6 @@ class BackOfficeController extends BaseAdminController
|
|||||||
} else {
|
} else {
|
||||||
return $this->generateSuccessRedirect($changeForm);
|
return $this->generateSuccessRedirect($changeForm);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
58
local/modules/LivraisonParSecteurs/Form/CitiesAddForm.php
Normal file
58
local/modules/LivraisonParSecteurs/Form/CitiesAddForm.php
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace LivraisonParSecteurs\Form;
|
||||||
|
|
||||||
|
use LivraisonParSecteurs\LivraisonParSecteurs;
|
||||||
|
use Thelia\Form\BaseForm;
|
||||||
|
use Symfony\Component\Validator\Constraints;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class CitiesAddForm
|
||||||
|
* @package LivraisonParSecteurs\Form
|
||||||
|
*/
|
||||||
|
class CitiesAddForm extends BaseForm
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
protected function buildForm()
|
||||||
|
{
|
||||||
|
$this->formBuilder
|
||||||
|
->add("area_id","integer", [
|
||||||
|
"label_attr" => ["for" => "attr-area-id"],
|
||||||
|
"required" => true,
|
||||||
|
"constraints" => [new Constraints\NotBlank()]
|
||||||
|
])
|
||||||
|
->add("zipcode", "integer", [
|
||||||
|
"label" => $this->translator->trans("Zipcode", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
||||||
|
"label_attr" => ["for" => "attr-city-zipcode"],
|
||||||
|
"required" => true,
|
||||||
|
"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()],
|
||||||
|
])
|
||||||
|
->add("title", "text", [
|
||||||
|
"label" => $this->translator->trans("City", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
||||||
|
"label_attr" => ["for" => "attr-city-title"],
|
||||||
|
"required" => true,
|
||||||
|
"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()],
|
||||||
|
"attr" => array()
|
||||||
|
])
|
||||||
|
->add("latitude", "number", [
|
||||||
|
"label" => $this->translator->trans("Latitude", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
||||||
|
"label_attr" => ["for" => "attr-city-latitude"],
|
||||||
|
"required" => false
|
||||||
|
])
|
||||||
|
->add("longitude", "number", [
|
||||||
|
"label" => $this->translator->trans("Longitude", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
||||||
|
"label_attr" => ["for" => "attr-city-longitude"],
|
||||||
|
"required" => false
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return "lps-area-cities-add";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -23,14 +23,15 @@ class CitiesForm extends BaseForm
|
|||||||
"integer",
|
"integer",
|
||||||
[
|
[
|
||||||
"required" => true,
|
"required" => true,
|
||||||
"constraints" => [new Constraints\NotBlank()]
|
"constraints" => [new Constraints\NotBlank()],
|
||||||
|
'label' => $this->translator->trans('Area Id', [], LivraisonParSecteurs::DOMAIN_NAME)
|
||||||
])
|
])
|
||||||
->add(
|
->add(
|
||||||
'zipcode',
|
'zipcode',
|
||||||
'integer',
|
'integer',
|
||||||
[
|
[
|
||||||
'constraints' => [new Constraints\NotBlank()],
|
'constraints' => [new Constraints\NotBlank()],
|
||||||
'label' => $this->translator->trans('Delivery price', [], LivraisonParSecteurs::DOMAIN_NAME)
|
'label' => $this->translator->trans('Zipcode', [], LivraisonParSecteurs::DOMAIN_NAME)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -35,11 +35,10 @@ class ScheduleCreateForm extends BaseForm
|
|||||||
])
|
])
|
||||||
->add("begin_time", "time", [
|
->add("begin_time", "time", [
|
||||||
"label" => $this->translator->trans("Delivery beginning time", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
"label" => $this->translator->trans("Delivery beginning time", [], LivraisonParSecteurs::MESSAGE_DOMAIN),
|
||||||
"label_attr" => ["for" => "attr-area-schedule-begin"],
|
"label_attr" => ["for" => "attr-area-schedule-start"],
|
||||||
"input" => "string",
|
"input" => "string",
|
||||||
"widget" => "single_text",
|
"widget" => "single_text",
|
||||||
"required" => true,
|
"required" => true,"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()],
|
||||||
"constraints" => [new Constraints\NotBlank(), new Constraints\NotNull()],
|
|
||||||
"attr" => array()
|
"attr" => array()
|
||||||
])
|
])
|
||||||
->add("end_time", "time", [
|
->add("end_time", "time", [
|
||||||
|
|||||||
@@ -2,11 +2,13 @@
|
|||||||
return array(
|
return array(
|
||||||
'Active' => 'Actif',
|
'Active' => 'Actif',
|
||||||
'Actions' => 'Actions',
|
'Actions' => 'Actions',
|
||||||
|
'Add a new city' => 'Rajouter une commune',
|
||||||
'Add a new delivery day' => 'Ajouter un jour de livraison',
|
'Add a new delivery day' => 'Ajouter un jour de livraison',
|
||||||
'Area name' => 'Nom du secteur',
|
'Area name' => 'Nom du secteur',
|
||||||
'Cities' => 'Communes desservies',
|
'Cities' => 'Communes desservies',
|
||||||
'City' => 'Commune',
|
'City' => 'Commune',
|
||||||
'Create a delivery day' => 'Créer un nouveau jour de livraison',
|
'Create a delivery day' => 'Créer un nouveau jour de livraison',
|
||||||
|
'Delete a city from this area' => 'Supprimer une commune de livraison',
|
||||||
'Delete an entry of schedule' => 'Supprimer un jour de livraison',
|
'Delete an entry of schedule' => 'Supprimer un jour de livraison',
|
||||||
'Delivered cities count' => 'Nb de communes desservies',
|
'Delivered cities count' => 'Nb de communes desservies',
|
||||||
'Delivery beginning time' => 'Début de la tournée',
|
'Delivery beginning time' => 'Début de la tournée',
|
||||||
@@ -14,14 +16,18 @@ return array(
|
|||||||
'Delivery days' => 'Jours de livraison',
|
'Delivery days' => 'Jours de livraison',
|
||||||
'Delivery ending time' => 'Fin de la tournée',
|
'Delivery ending time' => 'Fin de la tournée',
|
||||||
'Delivery price' => 'Frais de livraison',
|
'Delivery price' => 'Frais de livraison',
|
||||||
|
'Do you really want to remove this city ?' => 'Voulez-vous réellement retirer cette commune de ce secteur de livraison ?',
|
||||||
'Do you really want to delete this delivery day ?' => 'Voulez-vous réellement supprimer ce jour de livraison ?',
|
'Do you really want to delete this delivery day ?' => 'Voulez-vous réellement supprimer ce jour de livraison ?',
|
||||||
'Edit an area' => 'Modifier le secteur',
|
'Edit an area' => 'Modifier le secteur',
|
||||||
|
'Format to respect' => 'Merci de respecter le format 50.255612 ou -3.121146 (le séparateur est un point et le nombre peut être négatif)',
|
||||||
'General' => 'Général',
|
'General' => 'Général',
|
||||||
'Home delivery cost' => 'Frais de livraison à domicile',
|
'Home delivery cost' => 'Frais de livraison à domicile',
|
||||||
'Modify a delivery day' => 'Modifier un jour de livraison',
|
'Modify a delivery day' => 'Modifier un jour de livraison',
|
||||||
'My areas' => 'Mes secteurs de livraison',
|
'My areas' => 'Mes secteurs de livraison',
|
||||||
|
'Remove this city' => 'Retirer cette commune',
|
||||||
'Save' => 'Sauvegarder',
|
'Save' => 'Sauvegarder',
|
||||||
'Schedule' => 'Horaires de livraison',
|
'Schedule' => 'Horaires de livraison',
|
||||||
|
'There is no city delivered in this area' => 'Aucune commune desservie dans ce secteur',
|
||||||
'There is no schedule for this area' => 'Aucune livraison actuellement sur ce secteur',
|
'There is no schedule for this area' => 'Aucune livraison actuellement sur ce secteur',
|
||||||
'Title of config view' => 'Module LivraisonParSecteurs - Configuration',
|
'Title of config view' => 'Module LivraisonParSecteurs - Configuration',
|
||||||
'Zipcode' => 'Code postal',
|
'Zipcode' => 'Code postal',
|
||||||
|
|||||||
@@ -3,12 +3,15 @@
|
|||||||
namespace LivraisonParSecteurs\Loop;
|
namespace LivraisonParSecteurs\Loop;
|
||||||
|
|
||||||
use LivraisonParSecteurs\Model\LpsAreaCityQuery;
|
use LivraisonParSecteurs\Model\LpsAreaCityQuery;
|
||||||
|
use Propel\Runtime\ActiveQuery\Criteria;
|
||||||
use Thelia\Core\Template\Element\BaseLoop;
|
use Thelia\Core\Template\Element\BaseLoop;
|
||||||
use Thelia\Core\Template\Element\LoopResult;
|
use Thelia\Core\Template\Element\LoopResult;
|
||||||
use Thelia\Core\Template\Element\LoopResultRow;
|
use Thelia\Core\Template\Element\LoopResultRow;
|
||||||
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
|
use Thelia\Core\Template\Element\PropelSearchLoopInterface;
|
||||||
use Thelia\Core\Template\Loop\Argument\Argument;
|
use Thelia\Core\Template\Loop\Argument\Argument;
|
||||||
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
use Thelia\Core\Template\Loop\Argument\ArgumentCollection;
|
||||||
|
use Thelia\Type\EnumListType;
|
||||||
|
use Thelia\Type\TypeCollection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class AreaCitiesLoop
|
* Class AreaCitiesLoop
|
||||||
@@ -48,7 +51,9 @@ class AreaCitiesLoop extends BaseLoop implements PropelSearchLoopInterface
|
|||||||
protected function getArgDefinitions()
|
protected function getArgDefinitions()
|
||||||
{
|
{
|
||||||
return new ArgumentCollection(
|
return new ArgumentCollection(
|
||||||
Argument::createIntListTypeArgument('area_id')
|
Argument::createIntListTypeArgument('area_id'),
|
||||||
|
Argument::createEnumListTypeArgument('order',
|
||||||
|
['title', 'zipcode'], 'title')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -58,11 +63,23 @@ class AreaCitiesLoop extends BaseLoop implements PropelSearchLoopInterface
|
|||||||
public function buildModelCriteria()
|
public function buildModelCriteria()
|
||||||
{
|
{
|
||||||
$query = LpsAreaCityQuery::create();
|
$query = LpsAreaCityQuery::create();
|
||||||
|
|
||||||
if (null != $id = $this->getAreaId()) {
|
if (null != $id = $this->getAreaId()) {
|
||||||
$query->filterByIdArea($id);
|
$query->filterByIdArea($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query->orderByZipcode();
|
foreach ($this->getOrder() as $order) {
|
||||||
|
switch ($order) {
|
||||||
|
case 'title':
|
||||||
|
$query->orderByTitle();
|
||||||
|
break;
|
||||||
|
case 'zipcode':
|
||||||
|
$query->orderByZipcode()->orderByTitle();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -64,6 +64,6 @@ class AreaScheduleLoop extends BaseLoop implements PropelSearchLoopInterface
|
|||||||
$query->filterByIdArea($id);
|
$query->filterByIdArea($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $query->orderByDay();
|
return $query->orderByDay()->orderByBeginTime();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,6 +52,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{include file="modal/area-schedule-modal.html"}
|
{include file="modal/area-schedule-modal.html"}
|
||||||
|
{include file="modal/area-cities-modal.html"}
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
<td>{$PRICE} €</td>
|
<td>{$PRICE} €</td>
|
||||||
<td>{$DELIVERY_DAYS}</td>
|
<td>{$DELIVERY_DAYS}{if $DELIVERY_DAYS eq ''}<i>{intl l="There is no schedule for this area" d="livraisonparsecteurs"}</i>{/if}</td>
|
||||||
<td>{$COVERED_CITIES_NUMBER}</td>
|
<td>{$COVERED_CITIES_NUMBER}</td>
|
||||||
<td class="actions">
|
<td class="actions">
|
||||||
<div class="btn-group" role="group">
|
<div class="btn-group" role="group">
|
||||||
|
|||||||
@@ -0,0 +1,73 @@
|
|||||||
|
{form name=$form_name}
|
||||||
|
{form_hidden_fields form=$form}
|
||||||
|
|
||||||
|
{render_form_field form=$form field="success_url" value={url path="/admin/module/LivraisonParSecteurs/edit?area_id={$area_id}#cities"}}
|
||||||
|
{render_form_field form=$form field="error_url" value={url path="/admin/module/LivraisonParSecteurs/edit?area_id={$area_id}#cities"}}
|
||||||
|
|
||||||
|
{form_field form=$form field="area_id"}
|
||||||
|
<div class="form-group hidden">
|
||||||
|
<input type="hidden" class="form-control" name="{$name}" id="{$label_attr.for}"
|
||||||
|
value="{$area_id}"/>
|
||||||
|
</div>
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
|
||||||
|
{form_field form=$form field="zipcode"}
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
|
{intl l=$label d='livraisonparsecteurs'}
|
||||||
|
{if $required}<span class="required">*</span>{/if}
|
||||||
|
</label>
|
||||||
|
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="" {if $required}required{/if} />
|
||||||
|
</div>
|
||||||
|
{form_error form=$form field="zipcode"}{$message}{/form_error}
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
{form_field form=$form field="title"}
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
|
{intl l=$label d='livraisonparsecteurs'}
|
||||||
|
{if $required}<span class="required">*</span>{/if}
|
||||||
|
</label>
|
||||||
|
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="" {if $required}required{/if} />
|
||||||
|
</div>
|
||||||
|
{form_error form=$form field="title"}{$message}{/form_error}
|
||||||
|
{/form_field}
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-6">
|
||||||
|
{form_field form=$form field="latitude"}
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
|
{intl l=$label d='livraisonparsecteurs'}
|
||||||
|
{if $required}<span class="required">*</span>{/if}
|
||||||
|
</label>
|
||||||
|
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="" {if $required}required{/if} />
|
||||||
|
</div>
|
||||||
|
{form_error form=$form field="latitude"}{$message}{/form_error}
|
||||||
|
{/form_field}
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
{form_field form=$form field="longitude"}
|
||||||
|
<div class="form-group form-inline">
|
||||||
|
<label class="control-label" for="{$label_attr.for}">
|
||||||
|
{intl l=$label d='livraisonparsecteurs'}
|
||||||
|
{if $required}<span class="required">*</span>{/if}
|
||||||
|
</label>
|
||||||
|
<input type="text" id="{$label_attr.for}" class="form-control" name="{$name}" value="" {if $required}required{/if} />
|
||||||
|
</div>
|
||||||
|
{form_error form=$form field="longitude"}{$message}{/form_error}
|
||||||
|
{/form_field}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<span class="help-block" style="text-align: center">{intl l="Format to respect" d="livraisonparsecteurs"}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/form}
|
||||||
@@ -23,91 +23,121 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.city-remove {
|
.city-remove {
|
||||||
height: 30x !important;
|
height: 30px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pin {
|
||||||
|
height: 25px;
|
||||||
|
margin-left: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.legende {
|
||||||
|
margin-top: 25px;
|
||||||
|
text-align: center;
|
||||||
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
{form name='lps-area-cities-update'}
|
{form name='lps-area-cities-update'}
|
||||||
<div class="form-container">
|
<div class="form-container">
|
||||||
|
|
||||||
{if $form_error}
|
{if $form_error}
|
||||||
<div class="alert alert-danger">{$form_error_message}</div>
|
<div class="alert alert-danger">{$form_error_message}</div>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
|
|
||||||
{loop name="area" type="lps_area" id="$area_id"}
|
{loop name="area" type="lps_area" id="$area_id"}
|
||||||
<form action="{url path='/admin/module/LivraisonParSecteurs/edit' area_id={$area_id}}" method="POST" class="clearfix" {form_enctype form=$form}>
|
<form action="{url path='/admin/module/LivraisonParSecteurs/edit' area_id={$area_id}}" method="POST" class="clearfix" {form_enctype form=$form}>
|
||||||
{form_hidden_fields form=$form}
|
{form_hidden_fields form=$form}
|
||||||
|
|
||||||
{form_field form=$form field="area_id"}
|
{form_field form=$form field="area_id"}
|
||||||
<input type="hidden" name="{$name}" value="{$area_id}"/>
|
<input type="hidden" name="{$name}" value="{$area_id}"/>
|
||||||
{/form_field}
|
{/form_field}
|
||||||
|
|
||||||
<div class="general-block-decorator">
|
<div class="general-block-decorator">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
<table class="table table-striped table-condensed" id="areas-table">
|
<table class="table table-striped table-condensed" id="areas-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>{intl l="Zipcode" d="livraisonparsecteurs"}</th>
|
<th>{intl l="Zipcode" d="livraisonparsecteurs"}</th>
|
||||||
<th>{intl l="City" d="livraisonparsecteurs"}</th>
|
<th>{intl l="City" d="livraisonparsecteurs"}</th>
|
||||||
<th class="pull-right">
|
<th class="pull-right">
|
||||||
<div>
|
<div>
|
||||||
<a class="btn btn-default btn-primary city-add"
|
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.lps.cities" access="CREATE" module="LivraisonParSecteurs"}
|
||||||
title="{intl l='Add a new city' d='livraisonparsecteurs'}"
|
<a class="btn btn-default btn-primary city-add"
|
||||||
data-target="#city-add" data-toggle="modal">
|
title="{intl l='Add a new city' d='livraisonparsecteurs'}"
|
||||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
data-target="#area-cities-add" data-toggle="modal">
|
||||||
</a>
|
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||||
</div>
|
</a>
|
||||||
</th>
|
{/loop}
|
||||||
</tr>
|
</div>
|
||||||
</thead>
|
</th>
|
||||||
<tbody>
|
</tr>
|
||||||
{loop name="cities" type="lps_area_cities" area_id="$area_id"}
|
</thead>
|
||||||
<tr>
|
<tbody>
|
||||||
<td>{$ZIPCODE}</td>
|
{loop name="cities" type="lps_area_cities" area_id="$area_id" order="title"}
|
||||||
<td>{$TITLE}</td>
|
<tr>
|
||||||
<td class="actions">
|
<td>{$ZIPCODE}</td>
|
||||||
<div class="btn-group" role="group">
|
<td>{$TITLE}{if $LATITUDE eq '' or $LONGITUDE eq ''}<img src="{image file='assets/img/pin.svg'}" title="Pas de coordonnées pour cette commune" alt="Pas de coordonnées" class="pin" />{/if}</td>
|
||||||
<a class="btn btn-danger btn-responsive city-remove" title="{intl l='Remove this city'}" data-target="#city-remove" data-toggle="modal" data-id="{$ID}">
|
<td class="actions">
|
||||||
<i class="glyphicon glyphicon-trash"></i>
|
<div class="btn-group" role="group">
|
||||||
</a>
|
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.lps.cities" access="DELETE" module="LivraisonParSecteurs"}
|
||||||
</div>
|
<a class="btn btn-danger btn-responsive cities-remove" title="{intl l='Remove this city'}" data-target="#area-cities-remove" data-toggle="modal" data-id="{$ID}">
|
||||||
</td>
|
<i class="glyphicon glyphicon-trash"></i>
|
||||||
</tr>
|
</a>
|
||||||
{/loop}
|
{/loop}
|
||||||
</tbody>
|
</div>
|
||||||
</table>
|
</td>
|
||||||
</div>
|
</tr>
|
||||||
|
{/loop}
|
||||||
|
{elseloop rel="cities"}
|
||||||
|
<tr>
|
||||||
|
<td colspan="1000">
|
||||||
|
<div class="alert alert-info">
|
||||||
|
{intl l="There is no city delivered in this area" d="livraisonparsecteurs"}
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{/elseloop}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<table id="coordinates" class="hidden">
|
<table id="coordinates" class="hidden">
|
||||||
<thead></thead>
|
<thead></thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
{loop name="cities-coordinates" type="lps_area_cities" area_id="$area_id"}
|
{loop name="cities-coordinates" type="lps_area_cities" area_id="$area_id"}
|
||||||
<tr>
|
<tr>
|
||||||
<td>{$LATITUDE}</td>
|
<td>{$LATITUDE}</td>
|
||||||
<td>{$LONGITUDE}</td>
|
<td>{$LONGITUDE}</td>
|
||||||
<td>{$TITLE}</td>
|
<td>{$TITLE}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{/loop}
|
{/loop}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</form>
|
<input id="attr-city-id-remove" type="hidden" value=""/>
|
||||||
{/loop}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-8">
|
</form>
|
||||||
<input type="hidden" id="map-center-lon" value="2.2667287624488397" />
|
{/loop}
|
||||||
<input type="hidden" id="map-center-lat" value="50.749980292425974" />
|
</div>
|
||||||
|
|
||||||
<div id="map" class="locationMap"></div>
|
<div class="col-md-8">
|
||||||
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBb07YA_unrh5w821I1xHxbeYb5KCF_WaM&libraries=&v=weekly" async></script>
|
<input type="hidden" id="map-center-lon" value="2.2667287624488397" />
|
||||||
</div>
|
<input type="hidden" id="map-center-lat" value="50.749980292425974" />
|
||||||
|
|
||||||
|
<div id="map" class="locationMap"></div>
|
||||||
|
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBb07YA_unrh5w821I1xHxbeYb5KCF_WaM&libraries=&v=weekly" async></script>
|
||||||
|
|
||||||
|
<caption class="clearfix">
|
||||||
|
<div class="legende">NB : Les communes sans coordonnées GPS n'apparaitront pas sur la carte ci-dessus.</div>
|
||||||
|
</caption>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
{/form}
|
{/form}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{loop name="area" type="lps_area" id="$area_id"}
|
{loop name="area" type="lps_area" id="$area_id"}
|
||||||
<form action="{url path='/admin/module/LivraisonParSecteurs/edit' area_id={$area_id}}" method="POST" class="clearfix" {form_enctype form=$form}>
|
<form action="{url path='/admin/module/LivraisonParSecteurs/edit' area_id={$area_id}}" method="POST" class="clearfix" {form_enctype form=$form}>
|
||||||
{form_hidden_fields form=$form}
|
{form_hidden_fields form=$form}
|
||||||
|
|
||||||
{include
|
{include
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.lps.schedule" access="UPDATE" module="LivraisonParSecteurs"}
|
{loop name="auth-edit" type="auth" role="ADMIN" resource="admin.lps.schedule" access="UPDATE" module="LivraisonParSecteurs"}
|
||||||
<a class="btn btn-default btn-xs area-schedule-update-default"
|
<a class="btn btn-info btn-responsive area-schedule-update-default"
|
||||||
title="{intl l='Modify this delivery day' d='livraisonparsecteurs'}"
|
title="{intl l='Modify this delivery day' d='livraisonparsecteurs'}"
|
||||||
data-target="#area-schedule-update" data-toggle="modal" data-id="{$ID}"
|
data-target="#area-schedule-update" data-toggle="modal" data-id="{$ID}"
|
||||||
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
|
data-day="{$DAY}" data-begin="{format_date date=$BEGIN format="H:i"}"
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
</a>
|
</a>
|
||||||
{/loop}
|
{/loop}
|
||||||
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.lps.schedule" access="DELETE" module="LivraisonParSecteurs"}
|
{loop name="auth-delete" type="auth" role="ADMIN" resource="admin.lps.schedule" access="DELETE" module="LivraisonParSecteurs"}
|
||||||
<a class="btn btn-default btn-xs area-schedule-delete"
|
<a class="btn btn-danger btn-responsive area-schedule-delete"
|
||||||
title="{intl l='Delete this delivery day' d='livraisonparsecteurs'}"
|
title="{intl l='Delete this delivery day' d='livraisonparsecteurs'}"
|
||||||
data-target="#area-schedule-delete" data-toggle="modal" data-id="{$ID}">
|
data-target="#area-schedule-delete" data-toggle="modal" data-id="{$ID}">
|
||||||
<i class="glyphicon glyphicon-trash"></i>
|
<i class="glyphicon glyphicon-trash"></i>
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
(function($){
|
(function($){
|
||||||
|
|
||||||
$('a[href="#cities"]').on("shown.bs.tab",function(){
|
$('a[href="#cities"]').on("shown.bs.tab",function(){
|
||||||
|
|
||||||
var opt = {
|
var opt = {
|
||||||
center: new google.maps.LatLng($("#map-center-lat").val(), $("#map-center-lon").val()),
|
center: new google.maps.LatLng($("#map-center-lat").val(), $("#map-center-lon").val()),
|
||||||
zoom: 12,
|
zoom: 12,
|
||||||
@@ -24,7 +23,6 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
function displayPins() {
|
function displayPins() {
|
||||||
|
|
||||||
var arrays = [];
|
var arrays = [];
|
||||||
$('#coordinates').eq(0).find('tr').each((r,row) => arrays.push($(row).find('td,th').map((c,cell) => $(cell).text()).toArray()))
|
$('#coordinates').eq(0).find('tr').each((r,row) => arrays.push($(row).find('td,th').map((c,cell) => $(cell).text()).toArray()))
|
||||||
|
|
||||||
@@ -37,6 +35,18 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// On sélectionne une commune à supprimer
|
||||||
|
$('a.cities-remove').click(function (ev) {
|
||||||
|
$('#attr-cities-id-remove').val($(this).data('id'));
|
||||||
|
});
|
||||||
|
|
||||||
|
// On ajoute une commune au secteur
|
||||||
|
$('a.city-add').click(function (ev) {
|
||||||
|
$("#attr-city-zipcode input, #attr-city-title input").prop('required', true);
|
||||||
|
$("#attr-city-latitude input, #attr-city-longitude input").prop('required', false);
|
||||||
|
});
|
||||||
|
|
||||||
})(jQuery);
|
})(jQuery);
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
@@ -17,10 +17,11 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
$('a.area-schedule-add').click(function (ev) {
|
$('a.area-schedule-add').click(function (ev) {
|
||||||
$("#attr-area-schedule-begin input, #attr-area-schedule-end input").prop('required', false);
|
$("#attr-area-schedule-begin input, #attr-area-schedule-end input").prop('required', true);
|
||||||
$("#attr-area-schedule-day").prop('required', true);
|
$("#attr-area-schedule-day").prop('required', true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
{$langcode = {lang attr="code"}|substr:0:2}
|
{$langcode = {lang attr="code"}|substr:0:2}
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
$('.input-group.time').datetimepicker({
|
$('.input-group.time').datetimepicker({
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{* DELETE modal *}
|
||||||
|
{capture "cities_delete"}
|
||||||
|
{intl l="Do you really want to remove this city ?" d="livraisonparsecteurs"}
|
||||||
|
<input type="hidden" name="area-cities_id" id="attr-cities-id-remove" value=""/>
|
||||||
|
<input type="hidden" name="area_id" value="{$smarty.get.area_id}"/>
|
||||||
|
<input type="hidden" name="success_url" value="{url path="/admin/module/LivraisonParSecteurs/edit?area_id={$area_id}#cities"}"/>
|
||||||
|
{/capture}
|
||||||
|
|
||||||
|
{include file="includes/generic-confirm-dialog.html"
|
||||||
|
dialog_id = "area-cities-remove"
|
||||||
|
dialog_title = {intl l="Delete a city from this area" d="livraisonparsecteurs"}
|
||||||
|
dialog_message = {$smarty.capture.cities_delete nofilter}
|
||||||
|
dialog_ok_label = {intl l="Delete"}
|
||||||
|
dialog_cancel_label = {intl l="Cancel"}
|
||||||
|
form_action = {token_url path='/admin/module/LivraisonParSecteurs/city/remove'}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
{* CREATE Modal *}
|
||||||
|
{form name="lps-area-cities-add"}
|
||||||
|
{capture "cities_add"}
|
||||||
|
{include file="form/area-cities-add.html" form_name="lps-area-cities-add" area_id=$smarty.get.area_id}
|
||||||
|
{/capture}
|
||||||
|
|
||||||
|
{include file="includes/generic-create-dialog.html"
|
||||||
|
dialog_id = "area-cities-add"
|
||||||
|
dialog_title = {intl l="Add a new city" d="livraisonparsecteurs"}
|
||||||
|
dialog_body = {$smarty.capture.cities_add nofilter}
|
||||||
|
dialog_ok_label = {intl l="Create"}
|
||||||
|
dialog_cancel_label = {intl l="Cancel"}
|
||||||
|
form_action = {url path="admin/module/LivraisonParSecteurs/city/add"}
|
||||||
|
form_enctype = {form_enctype form=$form}
|
||||||
|
}
|
||||||
|
{/form}
|
||||||
16
templates/backOffice/custom/assets/img/pin.svg
Normal file
16
templates/backOffice/custom/assets/img/pin.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 117 KiB |
44
templates/backOffice/custom/template.xml
Normal file
44
templates/backOffice/custom/template.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<template xmlns="http://thelia.net/schema/dic/template"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://thelia.net/schema/dic/template http://thelia.net/schema/dic/template/template-1_0.xsd">
|
||||||
|
<descriptive locale="fr">
|
||||||
|
<title>Template back office par défaut</title>
|
||||||
|
</descriptive>
|
||||||
|
<descriptive locale="en">
|
||||||
|
<title>Default back-office template</title>
|
||||||
|
</descriptive>
|
||||||
|
<parent>default</parent>
|
||||||
|
<languages>
|
||||||
|
<language>ar_SA</language>
|
||||||
|
<language>cs_CZ</language>
|
||||||
|
<language>de_DE</language>
|
||||||
|
<language>el_GR</language>
|
||||||
|
<language>en_US</language>
|
||||||
|
<language>es_ES</language>
|
||||||
|
<language>fa_IR</language>
|
||||||
|
<language>fr_FR</language>
|
||||||
|
<language>hu_HU</language>
|
||||||
|
<language>id_ID</language>
|
||||||
|
<language>it_IT</language>
|
||||||
|
<language>nl_NL</language>
|
||||||
|
<language>pl_PL</language>
|
||||||
|
<language>pt_BR</language>
|
||||||
|
<language>pt_PT</language>
|
||||||
|
<language>ru_RU</language>
|
||||||
|
<language>sk_SK</language>
|
||||||
|
<language>tr_TR</language>
|
||||||
|
<language>uk_UA</language>
|
||||||
|
</languages>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
<authors>
|
||||||
|
<author>
|
||||||
|
<name>Thelia team</name>
|
||||||
|
<company>thelia.net</company>
|
||||||
|
<email>contact@thelia.net</email>
|
||||||
|
<website>thelia.net</website>
|
||||||
|
</author>
|
||||||
|
</authors>
|
||||||
|
<thelia>2.4.3</thelia>
|
||||||
|
<stability>prod</stability>
|
||||||
|
</template>
|
||||||
Reference in New Issue
Block a user