From 413e77fa97c7d3633f3f8ccabdbaa7ccc3f20ae1 Mon Sep 17 00:00:00 2001 From: gmorel Date: Mon, 9 Sep 2013 17:46:01 +0200 Subject: [PATCH] WIP - Coupon : ajax add --- .../Rule/AvailableForTotalAmountManager.php | 13 +++++++++++++ .../Rule/AvailableForXArticlesManager.php | 7 +++++++ .../Controller/Admin/CouponController.php | 17 +++++++++++------ .../admin/default/assets/img/ajax-loader.gif | Bin 0 -> 2545 bytes .../default/assets/less/thelia/thelia.less | 6 ++++++ templates/admin/default/coupon-update.html | 11 ++++++----- templates/admin/default/coupon/form.html | 9 ++++++--- .../admin/default/coupon/rule-input-ajax.html | 2 +- 8 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 templates/admin/default/assets/img/ajax-loader.gif diff --git a/core/lib/Thelia/Constraint/Rule/AvailableForTotalAmountManager.php b/core/lib/Thelia/Constraint/Rule/AvailableForTotalAmountManager.php index 62c77ead2..6ab746e6c 100644 --- a/core/lib/Thelia/Constraint/Rule/AvailableForTotalAmountManager.php +++ b/core/lib/Thelia/Constraint/Rule/AvailableForTotalAmountManager.php @@ -344,8 +344,20 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract $cleanedCurrencies[$currency->getCode()] = $currency->getSymbol(); } + $name1 = $this->translator->trans( + 'Price', + array(), + 'constraint' + ); + $name2 = $this->translator->trans( + 'Currency', + array(), + 'constraint' + ); + return array( self::INPUT1 => array( + 'title' => $name1, 'availableOperators' => $this->availableOperators[self::INPUT1], 'availableValues' => '', 'type' => 'text', @@ -354,6 +366,7 @@ class AvailableForTotalAmountManager extends CouponRuleAbstract 'selectedOperator' => '' ), self::INPUT2 => array( + 'title' => $name2, 'availableOperators' => $this->availableOperators[self::INPUT2], 'availableValues' => $cleanedCurrencies, 'type' => 'select', diff --git a/core/lib/Thelia/Constraint/Rule/AvailableForXArticlesManager.php b/core/lib/Thelia/Constraint/Rule/AvailableForXArticlesManager.php index 69b7589fd..20d7eddca 100644 --- a/core/lib/Thelia/Constraint/Rule/AvailableForXArticlesManager.php +++ b/core/lib/Thelia/Constraint/Rule/AvailableForXArticlesManager.php @@ -304,8 +304,15 @@ class AvailableForXArticlesManager extends CouponRuleAbstract */ protected function generateInputs() { + $name1 = $this->translator->trans( + 'Quantity', + array(), + 'constraint' + ); + return array( self::INPUT1 => array( + 'title' => $name1, 'availableOperators' => $this->availableOperators[self::INPUT1], 'type' => 'text', 'class' => 'form-control', diff --git a/core/lib/Thelia/Controller/Admin/CouponController.php b/core/lib/Thelia/Controller/Admin/CouponController.php index a46f3372d..d2368a573 100755 --- a/core/lib/Thelia/Controller/Admin/CouponController.php +++ b/core/lib/Thelia/Controller/Admin/CouponController.php @@ -330,7 +330,7 @@ class CouponController extends BaseAdminController /** * Manage Coupons read display * - * @param int $couponId Coupon Id + * @param string $ruleId Rule service id * * @return \Symfony\Component\HttpFoundation\Response */ @@ -338,16 +338,21 @@ class CouponController extends BaseAdminController { $this->checkAuth('ADMIN', 'admin.coupon.read'); - // @todo uncomment -// if (!$this->getRequest()->isXmlHttpRequest()) { -// $this->redirect('index'); -// } + if (!$this->getRequest()->isXmlHttpRequest()) { + $this->redirect( + $this->getRoute( + 'admin', + array(), + Router::ABSOLUTE_URL + ) + ); + } /** @var ConstraintFactory $constraintFactory */ $constraintFactory = $this->container->get('thelia.constraint.factory'); $inputs = $constraintFactory->getInputs($ruleId); - if (!$inputs) { + if ($inputs === null) { return $this->pageNotFound(); } diff --git a/templates/admin/default/assets/img/ajax-loader.gif b/templates/admin/default/assets/img/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..1321dd374af3334dbcd4e031c15a423a0882a71f GIT binary patch literal 2545 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 Q?ms&a;tm!#2B>%I-{~VEIsgCw literal 0 HcmV?d00001 diff --git a/templates/admin/default/assets/less/thelia/thelia.less b/templates/admin/default/assets/less/thelia/thelia.less index 3883c7067..8576272bf 100644 --- a/templates/admin/default/assets/less/thelia/thelia.less +++ b/templates/admin/default/assets/less/thelia/thelia.less @@ -247,4 +247,10 @@ .ui-slider{ margin-top: 23px; +} + +.loading{ + background: url("@{imgDir}/ajax-loader.gif") no-repeat; + height: 24px; + width: 24px; } \ No newline at end of file diff --git a/templates/admin/default/coupon-update.html b/templates/admin/default/coupon-update.html index 108784996..425d9a7ac 100755 --- a/templates/admin/default/coupon-update.html +++ b/templates/admin/default/coupon-update.html @@ -43,6 +43,7 @@ }); $('#category-rule').on('change', function (e) { + $('#rule-add-operators-values').html('
'); var url = "{$urlAjaxGetRuleInput}"; url = url.replace('ruleId', $(this).val()) console.log(url); @@ -50,13 +51,13 @@ url: url, statusCode: { 404: function() { - alert("page not found"); + $('#rule-add-operators-values').html( + '{intl l='Please select another rule'}' + ); } - }, - context: document.body + } }).done(function(data) { - console.log(data); - $(this).addClass("done"); + $('#rule-add-operators-values').html(data); }); }); diff --git a/templates/admin/default/coupon/form.html b/templates/admin/default/coupon/form.html index e64ab037b..b092e30b1 100644 --- a/templates/admin/default/coupon/form.html +++ b/templates/admin/default/coupon/form.html @@ -194,8 +194,11 @@
+ + + -
+
-
+
-
+
diff --git a/templates/admin/default/coupon/rule-input-ajax.html b/templates/admin/default/coupon/rule-input-ajax.html index 7feda80ee..4e7ab4533 100644 --- a/templates/admin/default/coupon/rule-input-ajax.html +++ b/templates/admin/default/coupon/rule-input-ajax.html @@ -3,7 +3,7 @@ {*{$inputs|var_dump}*} {foreach from=$inputs key=name item=input} - +