diff --git a/local/modules/Recettes/Config/routing.xml b/local/modules/Recettes/Config/routing.xml index 57513eb0..5a7367d3 100644 --- a/local/modules/Recettes/Config/routing.xml +++ b/local/modules/Recettes/Config/routing.xml @@ -11,21 +11,36 @@ Recettes\Controller\BackController::saveRecipe + Recettes\Controller\BackController::removeProduct \d+ \d+ \d+ + Recettes\Controller\BackController::searchProduct + Recettes\Controller\BackController::addProduct \d+ + Recettes\Controller\BackController::addStep - + + Recettes\Controller\BackController::removeStep + \d+ + \d+ + \d+ + + + + Recettes\Controller\BackController::updatePosition + + + \ No newline at end of file diff --git a/local/modules/Recettes/Controller/BackController.php b/local/modules/Recettes/Controller/BackController.php index 129277ab..930987b9 100755 --- a/local/modules/Recettes/Controller/BackController.php +++ b/local/modules/Recettes/Controller/BackController.php @@ -211,7 +211,83 @@ class BackController extends BaseAdminController } catch (\Exception $e) { $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")); } } diff --git a/local/modules/Recettes/templates/backOffice/default/includes/steps.html b/local/modules/Recettes/templates/backOffice/default/includes/steps.html index dc4caf2b..af3787db 100644 --- a/local/modules/Recettes/templates/backOffice/default/includes/steps.html +++ b/local/modules/Recettes/templates/backOffice/default/includes/steps.html @@ -9,10 +9,10 @@ {$STEP} {if $LOOP_COUNT > 1} - + {/if} {if $LOOP_COUNT < $LOOP_TOTAL} - + {/if} {$DESCRIPTION|unescape:"html" nofilter} @@ -21,10 +21,4 @@ {/loop} - - - - - + \ No newline at end of file diff --git a/local/modules/Recettes/templates/backOffice/default/recette-tab.html b/local/modules/Recettes/templates/backOffice/default/recette-tab.html index 734598aa..0a31a4f2 100644 --- a/local/modules/Recettes/templates/backOffice/default/recette-tab.html +++ b/local/modules/Recettes/templates/backOffice/default/recette-tab.html @@ -24,6 +24,7 @@ {form_field form=$form field="content_id"} {/form_field} +
@@ -125,6 +126,11 @@

+
+ + + +
{include file="includes/steps.html" recipe_id="$recipe_id"}
diff --git a/templates/frontOffice/custom/assets/dist/css/custom.min.css b/templates/frontOffice/custom/assets/dist/css/custom.min.css index b22722ac..bee708cf 100644 --- a/templates/frontOffice/custom/assets/dist/css/custom.min.css +++ b/templates/frontOffice/custom/assets/dist/css/custom.min.css @@ -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} \ No newline at end of file +.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} \ No newline at end of file diff --git a/templates/frontOffice/custom/assets/src/css/custom.css b/templates/frontOffice/custom/assets/src/css/custom.css index 9fc04a1d..29583ad5 100644 --- a/templates/frontOffice/custom/assets/src/css/custom.css +++ b/templates/frontOffice/custom/assets/src/css/custom.css @@ -238,20 +238,7 @@ article.col-main div#google-map { 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 { transform: rotate(-10deg); padding: 0 5px; @@ -357,4 +344,7 @@ span.product-categorie { } .autres-ingredients { text-align: left; -} \ No newline at end of file +} +.table-steps .description { + text-align: left; +}