Ca a l'air OK pour la partie backOffice du module Recettes
This commit is contained in:
@@ -11,21 +11,36 @@
|
|||||||
<route id="recipe.save" path="/admin/module/Recettes/save" methods="post">
|
<route id="recipe.save" path="/admin/module/Recettes/save" methods="post">
|
||||||
<default key="_controller">Recettes\Controller\BackController::saveRecipe</default>
|
<default key="_controller">Recettes\Controller\BackController::saveRecipe</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="recipe.delete_product" path="/admin/module/Recettes/remove-product/{recipeId}/{pseId}/{contentId}">
|
<route id="recipe.delete_product" path="/admin/module/Recettes/remove-product/{recipeId}/{pseId}/{contentId}">
|
||||||
<default key="_controller">Recettes\Controller\BackController::removeProduct</default>
|
<default key="_controller">Recettes\Controller\BackController::removeProduct</default>
|
||||||
<requirement key="recipeId">\d+</requirement>
|
<requirement key="recipeId">\d+</requirement>
|
||||||
<requirement key="pseId">\d+</requirement>
|
<requirement key="pseId">\d+</requirement>
|
||||||
<requirement key="contentId">\d+</requirement>
|
<requirement key="contentId">\d+</requirement>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="recipe.search_product" path="/admin/module/Recettes/search-product">
|
<route id="recipe.search_product" path="/admin/module/Recettes/search-product">
|
||||||
<default key="_controller">Recettes\Controller\BackController::searchProduct</default>
|
<default key="_controller">Recettes\Controller\BackController::searchProduct</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="recipe.add_product" path="/admin/module/Recettes/add-product/{contentId}">
|
<route id="recipe.add_product" path="/admin/module/Recettes/add-product/{contentId}">
|
||||||
<default key="_controller">Recettes\Controller\BackController::addProduct</default>
|
<default key="_controller">Recettes\Controller\BackController::addProduct</default>
|
||||||
<requirement key="contentId">\d+</requirement>
|
<requirement key="contentId">\d+</requirement>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<route id="recipe.add_step" path="/admin/module/Recettes/add-step" methods="post">
|
<route id="recipe.add_step" path="/admin/module/Recettes/add-step" methods="post">
|
||||||
<default key="_controller">Recettes\Controller\BackController::addStep</default>
|
<default key="_controller">Recettes\Controller\BackController::addStep</default>
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
</routes>
|
<route id="recipe.remove_step" path="/admin/module/Recettes/remove-step/{recipeId}/{step}/{contentId}">
|
||||||
|
<default key="_controller">Recettes\Controller\BackController::removeStep</default>
|
||||||
|
<requirement key="step">\d+</requirement>
|
||||||
|
<requirement key="recipeId">\d+</requirement>
|
||||||
|
<requirement key="contentId">\d+</requirement>
|
||||||
|
</route>
|
||||||
|
|
||||||
|
<route id="recipe.update_position" path="/admin/module/Recettes/update-position">
|
||||||
|
<default key="_controller">Recettes\Controller\BackController::updatePosition</default>
|
||||||
|
</route>
|
||||||
|
|
||||||
|
</routes>
|
||||||
@@ -211,7 +211,83 @@ class BackController extends BaseAdminController
|
|||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$error = $e->getMessage();
|
$error = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function removeStep($step, $recipeId, $contentId)
|
||||||
|
{
|
||||||
|
$con = Propel::getConnection();
|
||||||
|
|
||||||
|
$foundStep = RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->findOneByStep($step);
|
||||||
|
$nextSteps = RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->filterByStep($step, Criteria::GREATER_THAN)
|
||||||
|
->orderByStep()
|
||||||
|
->find($con);
|
||||||
|
|
||||||
|
if ($foundStep) {
|
||||||
|
$foundStep->delete();
|
||||||
|
|
||||||
|
foreach ($nextSteps as $next) {
|
||||||
|
$nouveauNumero = $next->getStep()-1;
|
||||||
|
(new RecipeSteps())
|
||||||
|
->setRecipeId($recipeId)
|
||||||
|
->setStep($nouveauNumero)
|
||||||
|
->setDescription($next->getDescription())
|
||||||
|
->save();
|
||||||
|
$next->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function updatePosition()
|
||||||
|
{
|
||||||
|
$step = $this->getRequest()->get('step');
|
||||||
|
|
||||||
|
$mode = $this->getRequest()->get('mode');
|
||||||
|
if ($mode === "up") $replacedStep = $step - 1;
|
||||||
|
else $replacedStep = $step + 1;
|
||||||
|
|
||||||
|
$recipeId = $this->getRequest()->get('recipe_id');
|
||||||
|
$contentId = $this->getRequest()->get('content_id');
|
||||||
|
|
||||||
|
$current = RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->findOneByStep($step);
|
||||||
|
|
||||||
|
$replaced = RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->findOneByStep($replacedStep);
|
||||||
|
|
||||||
|
// On supprime les 2 étapes (celle que l'on déplace et celle que l'on remplace) pour les recréer par la suite.
|
||||||
|
RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->findOneByStep($step)
|
||||||
|
->delete();
|
||||||
|
|
||||||
|
RecipeStepsQuery::create()
|
||||||
|
->filterByRecipeId($recipeId)
|
||||||
|
->findOneByStep($replacedStep)
|
||||||
|
->delete();
|
||||||
|
|
||||||
|
(new RecipeSteps())
|
||||||
|
->setRecipeId($recipeId)
|
||||||
|
->setStep($step)
|
||||||
|
->setDescription($replaced->getDescription())
|
||||||
|
->save();
|
||||||
|
|
||||||
|
(new RecipeSteps())
|
||||||
|
->setRecipeId($recipeId)
|
||||||
|
->setStep($replacedStep)
|
||||||
|
->setDescription($current->getDescription())
|
||||||
|
->save();
|
||||||
|
|
||||||
|
return new RedirectResponse(URL::getInstance()->absoluteUrl("/admin/content/update/" . $contentId . "?current_tab=recipe"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,10 +9,10 @@
|
|||||||
<td>
|
<td>
|
||||||
{$STEP}
|
{$STEP}
|
||||||
{if $LOOP_COUNT > 1}
|
{if $LOOP_COUNT > 1}
|
||||||
<a href="{url path='/admin/module/Recettes/update-position?mode=up&step=%step' step=$STEP}" class="u-position-up"><i class="glyphicon glyphicon-arrow-up"></i></a>
|
<a href="{url path='/admin/module/Recettes/update-position?mode=up&step=%step&recipe_id=%recipe_id&content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-up" id="move-up"><i class="glyphicon glyphicon-arrow-up"></i></a>
|
||||||
{/if}
|
{/if}
|
||||||
{if $LOOP_COUNT < $LOOP_TOTAL}
|
{if $LOOP_COUNT < $LOOP_TOTAL}
|
||||||
<a href="{url path='/admin/module/Recettes/update-position?mode=down&step=%step' step=$STEP}" class="u-position-down"><i class="glyphicon glyphicon-arrow-down"></i></a>
|
<a href="{url path='/admin/module/Recettes/update-position?mode=down&step=%step&recipe_id=%recipe_id&content_id=%content_id' step=$STEP recipe_id=$recipe_id content_id=$content_id}" class="u-position-down" id="move-down"><i class="glyphicon glyphicon-arrow-down"></i></a>
|
||||||
{/if}</td>
|
{/if}</td>
|
||||||
<td>{$DESCRIPTION|unescape:"html" nofilter}</td>
|
<td>{$DESCRIPTION|unescape:"html" nofilter}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
@@ -21,10 +21,4 @@
|
|||||||
</tr>
|
</tr>
|
||||||
{/loop}
|
{/loop}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<a class="btn btn-default btn-primary"
|
|
||||||
title="{intl l='Add a new step' d='recettes'}"
|
|
||||||
data-target="#add-step-modal" data-toggle="modal">
|
|
||||||
<i class="glyphicon glyphicon-plus-sign"></i>
|
|
||||||
</a>
|
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
{form_field form=$form field="content_id"}
|
{form_field form=$form field="content_id"}
|
||||||
<input type="hidden" name="{$name}" value="{$content_id}">
|
<input type="hidden" name="{$name}" value="{$content_id}">
|
||||||
{/form_field}
|
{/form_field}
|
||||||
|
<input type="hidden" class="form-control" name="recipe_id" value="{$recipe_id}">
|
||||||
<br>
|
<br>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
|
|
||||||
@@ -125,6 +126,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<br>
|
<br>
|
||||||
<label class="control-label">Etapes de la recette</label>
|
<label class="control-label">Etapes de la recette</label>
|
||||||
|
<div style="display: inline-block; margin-left: 50px;">
|
||||||
|
<a class="btn btn-default btn-primary" title="{intl l='Add a new step' d='recettes'}" data-target="#add-step-modal" data-toggle="modal">
|
||||||
|
<i class="glyphicon glyphicon-plus-sign"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<div id="steps-block">
|
<div id="steps-block">
|
||||||
{include file="includes/steps.html" recipe_id="$recipe_id"}
|
{include file="includes/steps.html" recipe_id="$recipe_id"}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
.btn,.tag-produit{border-radius:5px}@font-face{font-family:sofia_prolight;src:url(../fonts/sofiapro/sofiapro-light-webfont.woff2) format('woff2'),url(../fonts/sofiapro/sofiapro-light-webfont.woff) format('woff');font-weight:400;font-style:normal}#product-details .product-info .sku,aside.col-left,div.product-options,footer.footer-info,section.category-description,ul.pager{display:none}html{font-family:sofia_prolight,sans-serif!important}#products-new .overlay:after,#products-offer .overlay:after,#products-upsell .overlay:after,body{font-family:sofia_prolight,'Open Sans',sans-serif!important}div.container{width:90%!important}@media (min-width:992px){.header__main{width:90%}}@media (min-width:768px){.header__content{flex-direction:column}}.header__content{display:flex}.header__main{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.header__secondary,.inline-flex{display:inline-flex}.overlay:before{background-color:rgba(128,189,138,.4)}.navbar-default{background-color:transparent}.navbar li>a.home:before{display:none}.navbar li{font-size:1.72rem}.nav>li{text-transform:uppercase}.navbar-customer{display:flex;flex-direction:column;text-align:center}#search-button:before,address.adr span.street-address,article.col-main div#google-map{display:none}.navbar-customer>li>a{text-transform:none}.header__content .container-fluid{padding-left:0;padding-right:0}.navbar-form .form-control{width:150px}.navbar-form{margin:auto}.logo-boutique{width:160px}.navbar{margin-bottom:0}.glyphicon,a{color:#95c11e}.btn{border-color:#95c11e;border-left:1px solid #95c11e}.btn-default{color:#3c3c3b;background-color:#fff}.btn-default:active,.btn-default:focus,.btn-default:hover{color:#fff;background-color:#3c3c3b;text-decoration:none}.btn-primary{background-color:#95c11e;color:#fff}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#fff;border-color:#95c11e;color:#95c11e}.btn-primary[disabled]:focus,.btn-primary[disabled]:hover{background-color:#95c11e;border-color:#95c11e;color:#fff}.btn-link:focus,.btn-link:hover{color:#95c11e}.navbar-default .navbar-nav>li>a{color:#3c3c3b}.nav>li>a:focus,.nav>li>a:hover,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{background-color:#95c11e;color:#fff}.breadcrumb{text-align:center;font-size:large;margin-bottom:30px}.checkout-progress .btn-step.active{background:#95c11e}.toolbar .amount{color:#95c11e}.grid #category-products .item>article .product-info .name{height:1.5em}.product-title,.product-title:active,.product-title:hover{text-decoration:none;color:#3c3c3b}.price,.table-cart tbody td.subprice .price,.table-cart thead th.subprice,.table-order tbody td.subprice .price,.table-order thead th.subprice{color:#95c11e}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#95c11e;border-color:#95c11e}.products-heading{text-transform:uppercase;text-align:center}.products-heading>h2{color:#3c3c3b;font-weight:900}.fa-cart-plus,.fa-user,.glyphicon-search{font-size:2rem!important}#search-button{padding-top:6px}.footer-container .footer-block{background-color:rgba(128,189,138,.08)}.block.block-contact .block-content ul>li:before{color:#95c11e}.block.block-contact .block-content ul>li.contact-address:before{font-size:26px}.block .block-title{color:#3c3c3b}.block .block-content .block-subtitle,.block-default .block-content li:before{color:#95c11e}.tag-produit{transform:rotate(-10deg);padding:0 5px;text-align:center;position:absolute;z-index:300;bottom:5px;right:10px}.tag-bio{background-color:#95c11e;color:#fff}.tag-local{background-color:red;color:#fff}.product-provenance{text-align:center;line-height:1rem;padding:5px 0 2px;border:1px solid #95c11e;border-radius:8px}.texte-provenance{color:#95c11e}.inline-flex{flex-wrap:nowrap;align-items:center;margin-left:5px}.table-pictos{margin-bottom:0!important}.table-pictos td.ligne{border:none!important;vertical-align:baseline!important}.produit-bio,.produit-local{color:#fff;padding:0 2px;border-radius:3px;cursor:default}.image-auxbieauxlegumes{width:30px;height:auto}.produit-bio{background-color:#95c11e}.produit-local{background-color:red}.grid #category-products .item{line-height:6.5rem}.texte-normal{font-family:inherit;line-height:1.1;color:inherit}.texte-normal:link{text-decoration:none}span.product-categorie{margin:auto!important;line-height:1rem!important;height:1.5rem}.autres-ingredients{text-align:left}
|
.btn,.tag-produit{border-radius:5px}@font-face{font-family:sofia_prolight;src:url(../fonts/sofiapro/sofiapro-light-webfont.woff2) format('woff2'),url(../fonts/sofiapro/sofiapro-light-webfont.woff) format('woff');font-weight:400;font-style:normal}#product-details .product-info .sku,aside.col-left,div.product-options,footer.footer-info,section.category-description,ul.pager{display:none}html{font-family:sofia_prolight,sans-serif!important}#products-new .overlay:after,#products-offer .overlay:after,#products-upsell .overlay:after,body{font-family:sofia_prolight,'Open Sans',sans-serif!important}div.container{width:90%!important}@media (min-width:992px){.header__main{width:90%}}@media (min-width:768px){.header__content{flex-direction:column}}.header__content{display:flex}.header__main{align-items:center;display:flex;flex-direction:row;justify-content:space-between}.header__secondary,.inline-flex{display:inline-flex}.overlay:before{background-color:rgba(128,189,138,.4)}.navbar-default{background-color:transparent}.navbar li>a.home:before{display:none}.navbar li{font-size:1.72rem}.nav>li{text-transform:uppercase}.navbar-customer{display:flex;flex-direction:column;text-align:center}#search-button:before,address.adr span.street-address,article.col-main div#google-map{display:none}.navbar-customer>li>a{text-transform:none}.header__content .container-fluid{padding-left:0;padding-right:0}.navbar-form .form-control{width:150px}.navbar-form{margin:auto}.logo-boutique{width:160px}.navbar{margin-bottom:0}.glyphicon,a{color:#95c11e}.btn{border-color:#95c11e;border-left:1px solid #95c11e}.btn-default{color:#3c3c3b;background-color:#fff}.btn-default:active,.btn-default:focus,.btn-default:hover{color:#fff;background-color:#3c3c3b;text-decoration:none}.btn-primary{background-color:#95c11e;color:#fff}.btn-primary:active,.btn-primary:focus,.btn-primary:hover{background-color:#fff;border-color:#95c11e;color:#95c11e}.btn-primary[disabled]:focus,.btn-primary[disabled]:hover{background-color:#95c11e;border-color:#95c11e;color:#fff}.btn-link:focus,.btn-link:hover{color:#95c11e}.navbar-default .navbar-nav>li>a{color:#3c3c3b}.nav>li>a:focus,.nav>li>a:hover,.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{background-color:#95c11e;color:#fff}.breadcrumb{text-align:center;font-size:large;margin-bottom:30px}.checkout-progress .btn-step.active{background:#95c11e}.toolbar .amount{color:#95c11e}.grid #category-products .item>article .product-info .name{height:1.5em}.product-title,.product-title:active,.product-title:hover{text-decoration:none;color:#3c3c3b}.price,.table-cart tbody td.subprice .price,.table-cart thead th.subprice,.table-order tbody td.subprice .price,.table-order thead th.subprice{color:#95c11e}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{background-color:#95c11e;border-color:#95c11e}.products-heading{text-transform:uppercase;text-align:center}.products-heading>h2{color:#3c3c3b;font-weight:900}.fa-cart-plus,.fa-user,.glyphicon-search{font-size:2rem!important}#search-button{padding-top:6px}.footer-container .footer-block{background-color:rgba(128,189,138,.08)}.block.block-contact .block-content ul>li:before{color:#95c11e}.block.block-contact .block-content ul>li.contact-address:before{font-size:26px}.block .block-title{color:#3c3c3b}.block .block-content .block-subtitle,.block-default .block-content li:before{color:#95c11e}.tag-produit{transform:rotate(-10deg);padding:0 5px;text-align:center;position:absolute;z-index:300;bottom:5px;right:10px}.tag-bio{background-color:#95c11e;color:#fff}.tag-local{background-color:red;color:#fff}.product-provenance{text-align:center;line-height:1rem;padding:5px 0 2px;border:1px solid #95c11e;border-radius:8px}.texte-provenance{color:#95c11e}.inline-flex{flex-wrap:nowrap;align-items:center;margin-left:5px}.table-pictos{margin-bottom:0!important}.table-pictos td.ligne{border:none!important;vertical-align:baseline!important}.produit-bio,.produit-local{color:#fff;padding:0 2px;border-radius:3px;cursor:default}.image-auxbieauxlegumes{width:30px;height:auto}.produit-bio{background-color:#95c11e}.produit-local{background-color:red}.grid #category-products .item{line-height:6.5rem}.texte-normal{font-family:inherit;line-height:1.1;color:inherit}.texte-normal:link{text-decoration:none}span.product-categorie{margin:auto!important;line-height:1rem!important;height:1.5rem}.autres-ingredients,.table-steps .description{text-align:left}div.add-step-button{display:inline-block;margin-left:100px!important}
|
||||||
@@ -238,20 +238,7 @@ article.col-main div#google-map {
|
|||||||
color: #95c11e;
|
color: #95c11e;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
.boutons-plusmoins {
|
|
||||||
display: inline-grid !important;
|
|
||||||
margin-right: 20px;
|
|
||||||
}
|
|
||||||
.bouton-plus {
|
|
||||||
font-family: FontAwesome;
|
|
||||||
content: "f067";
|
|
||||||
}
|
|
||||||
.bouton-moins {
|
|
||||||
font-family: FontAwesome;
|
|
||||||
content: "f067";
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
.tag-produit {
|
.tag-produit {
|
||||||
transform: rotate(-10deg);
|
transform: rotate(-10deg);
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
@@ -357,4 +344,7 @@ span.product-categorie {
|
|||||||
}
|
}
|
||||||
.autres-ingredients {
|
.autres-ingredients {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
.table-steps .description {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user