- Coupon Add/Edit/Delete rule AJAX
This commit is contained in:
gmorel
2013-09-09 21:43:58 +02:00
parent 6b6dc1c800
commit 0fe443f53d
8 changed files with 252 additions and 138 deletions

View File

@@ -203,8 +203,12 @@ abstract class CouponRuleAbstract implements CouponRuleInterface
$validator['availableOperators'] = $translatedOperators;
$translatedInputs[$key] = $validator;
}
$validators = array();
$validators['inputs'] = $translatedInputs;
$validators['setOperators'] = $this->operators;
$validators['setValues'] = $this->values;
return $translatedInputs;
return $validators;
}
/**

View File

@@ -184,8 +184,9 @@ class CouponController extends BaseAdminController
);
/** @var CouponRuleInterface $rule */
foreach ($rules as $rule) {
foreach ($rules->getRules() as $rule) {
$args['rulesObject'][] = array(
'serviceId' => $rule->getServiceId(),
'name' => $rule->getName(),
'tooltip' => $rule->getToolTip(),
'validators' => $rule->getValidators()
@@ -338,15 +339,15 @@ class CouponController extends BaseAdminController
{
$this->checkAuth('ADMIN', 'admin.coupon.read');
if (!$this->getRequest()->isXmlHttpRequest()) {
$this->redirect(
$this->getRoute(
'admin',
array(),
Router::ABSOLUTE_URL
)
);
}
// if (!$this->getRequest()->isXmlHttpRequest()) {
// $this->redirect(
// $this->getRoute(
// 'admin',
// array(),
// Router::ABSOLUTE_URL
// )
// );
// }
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');

View File

@@ -24,6 +24,9 @@
namespace Thelia\Core\Template\Loop;
use Propel\Runtime\ActiveQuery\Criteria;
use Thelia\Constraint\ConstraintFactory;
use Thelia\Constraint\Rule\CouponRuleInterface;
use Thelia\Core\HttpFoundation\Request;
use Thelia\Core\Template\Element\BaseI18nLoop;
use Thelia\Core\Template\Element\LoopResult;
use Thelia\Core\Template\Element\LoopResultRow;
@@ -84,10 +87,27 @@ class Coupon extends BaseI18nLoop
$coupons = $this->search($search, $pagination);
$loopResult = new LoopResult();
/** @var ConstraintFactory $constraintFactory */
$constraintFactory = $this->container->get('thelia.constraint.factory');
/** @var Request $request */
$request = $this->container->get('request');
/** @var Lang $lang */
$lang = $request->getSession()->getLang();
/** @var MCoupon $coupon */
foreach ($coupons as $coupon) {
$loopResultRow = new LoopResultRow();
$rules = $constraintFactory->unserializeCouponRuleCollection(
$coupon->getSerializedRules()
);
$cleanedRules = array();
/** @var CouponRuleInterface $rule */
foreach ($rules->getRules() as $key => $rule) {
$cleanedRules[] = $rule->getToolTip();
}
$loopResultRow->set("ID", $coupon->getId())
->set("IS_TRANSLATED", $coupon->getVirtualColumn('IS_TRANSLATED'))
->set("LOCALE", $locale)
@@ -95,13 +115,13 @@ class Coupon extends BaseI18nLoop
->set("TITLE", $coupon->getVirtualColumn('i18n_TITLE'))
->set("SHORT_DESCRIPTION", $coupon->getVirtualColumn('i18n_SHORT_DESCRIPTION'))
->set("DESCRIPTION", $coupon->getVirtualColumn('i18n_DESCRIPTION'))
->set("EXPIRATION_DATE", $coupon->getExpirationDate())
->set("EXPIRATION_DATE", $coupon->getExpirationDate($lang->getDateFormat()))
->set("USAGE_LEFT", $coupon->getMaxUsage())
->set("IS_CUMULATIVE", $coupon->getIsCumulative())
->set("IS_REMOVING_POSTAGE", $coupon->getIsRemovingPostage())
->set("IS_ENABLED", $coupon->getIsEnabled())
->set("AMOUNT", $coupon->getAmount())
->set("APPLICATION_CONDITIONS", $coupon->getRules());
->set("APPLICATION_CONDITIONS", $cleanedRules);
$loopResult->addRow($loopResultRow);
}