Files
sterivein/templates/admin/default/coupon-update.html
gmorel f481da7a2f WIP
- Coupon Add/Edit/Delete rule AJAX
2013-09-10 15:41:23 +02:00

162 lines
5.3 KiB
HTML
Executable File

{extends file="admin-layout.tpl"}
{block name="check-permissions"}admin.coupon.update{/block}
{block name="page-title"}{intl l='Update coupon'}{/block}
{block name="main-content"}
<section id="wrapper" class="container">
<nav>
<ul class="breadcrumb">
{include file="includes/coupon_breadcrumb.html"}
</ul>
</nav>
<div class="page-header">
<h1>Coupons : <small>Update a coupon</small></h1>
</div>
{form name="thelia.admin.coupon.creation"}
{include file='coupon/form.html' formAction={url path={$formAction}} form=$form}
{/form}
</section> <!-- #wrapper -->
{/block}
{include file='includes/confirmation-modal.html'}
{block name="javascript-initialization"}
{javascripts file='assets/bootstrap-datepicker/js/bootstrap-datepicker.js'}
<script src="{$asset_url}"></script>
{/javascripts}
{javascripts file='assets/js/main.js'}
<script src="{$asset_url}"></script>
{/javascripts}
{javascripts file='assets/js/json2.js'}
<script src="{$asset_url}"></script>
{/javascripts}
<script>
$(function($){
miniBrowser(0, '/test_to_remove/datas_coupon_edit.json');
// Init Rules
var initRule = function() {
var rules = [];
{foreach from=$rulesObject key=k item=rule}
var rule = {};
rule['serviceId'] = '{$rule.serviceId nofilter}';
rule['operators'] = {};
rule['values'] = {};
{foreach from=$rule.validators.setOperators key=input item=operator}
rule['operators']['{$input nofilter}'] = '{$operator nofilter}';
rule['values']['{$input nofilter}'] = '{$rule.validators.setValues[$input] nofilter}';
{/foreach}
rules.push(rule);
{/foreach}
return rules;
}
// Save Rules AJAX
var saveRuleAjax = function() {
var $url = '{$urlAjaxUpdateRules}';
console.log('save');
console.log('{$urlAjaxUpdateRules}');
console.log(rules);
console.log(JSON.stringify(rules));
$.ajax({
type: "POST",
url: $url,
{*data: {literal}{{/literal}rules:rules{literal}}{/literal},*}
data: {literal}{{/literal}rules:JSON.stringify(rules){literal}}{/literal},
statusCode: {
404: function() {
$('#constraint-add-operators-values').html(
'{intl l='Please retry'}'
);
}
}
}).done(function(data) {
$('#constraint-list').html(data);
$('#constraint-add-operators-values').html('');
});
}
// Remove 1 Rule then Save Rules AJAX
var removeRuleAjax = function($id) {
rules.slice($id, 1);
saveRuleAjax();
}
// Add 1 Rule then Save Rules AJAX
var addRuleAjax = function() {
rules.push(ruleToSave);
saveRuleAjax();
}
var rules = initRule();
console.log(rules);
// Save rules on click
var onClickSaveRule = function() {
$('#constraint-save-btn').on('click', function (e) {
addRuleAjax();
});
}
onClickSaveRule();
// Remove rule on click
var onClickDeleteRule = function() {
$('#constraint-delete-btn').on('click', function (e) {
// removeRuleAjax();
});
}
onClickDeleteRule();
// Reload effect inputs when changing effect
var onEffectChange = function() {
$('#effect').on('change', function (e) {
var optionSelected = $("option:selected", this);
$('#effectToolTip').html(optionSelected.attr("data-description"));
});
}
onEffectChange();
// Reload rule inputs when changing effect
var onRuleChange = function() {
$('#category-rule').on('change', function (e) {
$('#constraint-add-operators-values').html('<div class="loading" ></div>');
var url = "{$urlAjaxGetRuleInput}";
url = url.replace('ruleId', $(this).val())
$.ajax({
url: url,
statusCode: {
404: function() {
$('#constraint-add-operators-values').html(
'{intl l='Please select another rule'}'
);
}
}
}).done(function(data) {
$('#constraint-add-operators-values').html(data);
});
});
}
onRuleChange();
});
</script>
{/block}