first commit
This commit is contained in:
@@ -0,0 +1,265 @@
|
||||
{{ header }}{{ column_left }}
|
||||
<div id="content">
|
||||
<div class="page-header">
|
||||
<div class="container-fluid">
|
||||
<div class="pull-right">
|
||||
<button id="button-send" data-loading-text="{{ text_loading }}" data-toggle="tooltip" title="{{ button_send }}" class="btn btn-primary" onclick="send('index.php?route=marketing/contact/send&user_token={{ user_token }}');"><i class="fa fa-envelope"></i></button>
|
||||
<a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
|
||||
<h1>{{ heading_title }}</h1>
|
||||
<ul class="breadcrumb">
|
||||
{% for breadcrumb in breadcrumbs %}
|
||||
<li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container-fluid">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h3 class="panel-title"><i class="fa fa-envelope"></i> {{ heading_title }}</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<form class="form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-store">{{ entry_store }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="store_id" id="input-store" class="form-control">
|
||||
<option value="0">{{ text_default }}</option>
|
||||
|
||||
{% for store in stores %}
|
||||
|
||||
<option value="{{ store.store_id }}">{{ store.name }}</option>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label" for="input-to">{{ entry_to }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="to" id="input-to" class="form-control">
|
||||
<option value="newsletter">{{ text_newsletter }}</option>
|
||||
<option value="customer_all">{{ text_customer_all }}</option>
|
||||
<option value="customer_group">{{ text_customer_group }}</option>
|
||||
<option value="customer">{{ text_customer }}</option>
|
||||
<option value="affiliate_all">{{ text_affiliate_all }}</option>
|
||||
<option value="affiliate">{{ text_affiliate }}</option>
|
||||
<option value="product">{{ text_product }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group to" id="to-customer-group">
|
||||
<label class="col-sm-2 control-label" for="input-customer-group">{{ entry_customer_group }}</label>
|
||||
<div class="col-sm-10">
|
||||
<select name="customer_group_id" id="input-customer-group" class="form-control">
|
||||
|
||||
{% for customer_group in customer_groups %}
|
||||
|
||||
<option value="{{ customer_group.customer_group_id }}">{{ customer_group.name }}</option>
|
||||
|
||||
{% endfor %}
|
||||
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group to" id="to-customer">
|
||||
<label class="col-sm-2 control-label" for="input-customer"><span data-toggle="tooltip" title="{{ help_customer }}">{{ entry_customer }}</span></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="customers" value="" placeholder="{{ entry_customer }}" id="input-customer" class="form-control" />
|
||||
<div class="well well-sm" style="height: 150px; overflow: auto;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group to" id="to-affiliate">
|
||||
<label class="col-sm-2 control-label" for="input-affiliate"><span data-toggle="tooltip" title="{{ help_affiliate }}">{{ entry_affiliate }}</span></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="affiliates" value="" placeholder="{{ entry_affiliate }}" id="input-affiliate" class="form-control" />
|
||||
<div class="well well-sm" style="height: 150px; overflow: auto;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group to" id="to-product">
|
||||
<label class="col-sm-2 control-label" for="input-product"><span data-toggle="tooltip" title="{{ help_product }}">{{ entry_product }}</span></label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="products" value="" placeholder="{{ entry_product }}" id="input-product" class="form-control" />
|
||||
<div class="well well-sm" style="height: 150px; overflow: auto;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group required">
|
||||
<label class="col-sm-2 control-label" for="input-subject">{{ entry_subject }}</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="text" name="subject" value="" placeholder="{{ entry_subject }}" id="input-subject" class="form-control" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group required">
|
||||
<label class="col-sm-2 control-label" for="input-message">{{ entry_message }}</label>
|
||||
<div class="col-sm-10">
|
||||
<textarea name="message" placeholder="{{ entry_message }}" id="input-message" data-toggle="summernote" data-lang="{{ summernote }}" class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<link href="view/javascript/codemirror/lib/codemirror.css" rel="stylesheet" />
|
||||
<link href="view/javascript/codemirror/theme/monokai.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="view/javascript/codemirror/lib/codemirror.js"></script>
|
||||
<script type="text/javascript" src="view/javascript/codemirror/lib/xml.js"></script>
|
||||
<script type="text/javascript" src="view/javascript/codemirror/lib/formatting.js"></script>
|
||||
<script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
|
||||
<link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="view/javascript/summernote/summernote-image-attributes.js"></script>
|
||||
<script type="text/javascript" src="view/javascript/summernote/opencart.js"></script>
|
||||
<script type="text/javascript"><!--
|
||||
$('select[name=\'to\']').on('change', function() {
|
||||
$('.to').hide();
|
||||
|
||||
$('#to-' + this.value.replace('_', '-')).show();
|
||||
});
|
||||
|
||||
$('select[name=\'to\']').trigger('change');
|
||||
//--></script>
|
||||
<script type="text/javascript"><!--
|
||||
// Customers
|
||||
$('input[name=\'customers\']').autocomplete({
|
||||
'source': function(request, response) {
|
||||
$.ajax({
|
||||
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
response($.map(json, function(item) {
|
||||
return {
|
||||
label: item['name'],
|
||||
value: item['customer_id']
|
||||
}
|
||||
}));
|
||||
},
|
||||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
},
|
||||
'select': function(item) {
|
||||
$('input[name=\'customers\']').val('');
|
||||
|
||||
$('#customer' + item['value']).remove();
|
||||
|
||||
$('#input-customer').parent().find('.well').append('<div id="customer' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="customer[]" value="' + item['value'] + '" /></div>');
|
||||
}
|
||||
});
|
||||
|
||||
$('#input-customer').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
|
||||
$(this).parent().remove();
|
||||
});
|
||||
|
||||
// Affiliates
|
||||
$('input[name=\'affiliates\']').autocomplete({
|
||||
'source': function(request, response) {
|
||||
$.ajax({
|
||||
url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request) + '&filter_affiliate=1',
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
response($.map(json, function(item) {
|
||||
return {
|
||||
label: item['name'],
|
||||
value: item['customer_id']
|
||||
}
|
||||
}));
|
||||
},
|
||||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
},
|
||||
'select': function(item) {
|
||||
$('input[name=\'affiliates\']').val('');
|
||||
|
||||
$('#affiliate' + item['value']).remove();
|
||||
|
||||
$('#input-affiliate').parent().find('.well').append('<div id="affiliate' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="affiliate[]" value="' + item['value'] + '" /></div>');
|
||||
}
|
||||
});
|
||||
|
||||
$('#input-affiliate').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
|
||||
$(this).parent().remove();
|
||||
});
|
||||
|
||||
// Products
|
||||
$('input[name=\'products\']').autocomplete({
|
||||
'source': function(request, response) {
|
||||
$.ajax({
|
||||
url: 'index.php?route=catalog/product/autocomplete&user_token={{ user_token }}&filter_name=' + encodeURIComponent(request),
|
||||
dataType: 'json',
|
||||
success: function(json) {
|
||||
response($.map(json, function(item) {
|
||||
return {
|
||||
label: item['name'],
|
||||
value: item['product_id']
|
||||
}
|
||||
}));
|
||||
},
|
||||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
},
|
||||
'select': function(item) {
|
||||
$('input[name=\'products\']').val('');
|
||||
|
||||
$('#product' + item['value']).remove();
|
||||
|
||||
$('#input-product').parent().find('.well').append('<div id="product' + item['value'] + '"><i class="fa fa-minus-circle"></i> ' + item['label'] + '<input type="hidden" name="product[]" value="' + item['value'] + '" /></div>');
|
||||
}
|
||||
});
|
||||
|
||||
$('#input-product').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
|
||||
$(this).parent().remove();
|
||||
});
|
||||
|
||||
function send(url) {
|
||||
$.ajax({
|
||||
url: url,
|
||||
type: 'post',
|
||||
data: $('#content select, #content input, #content textarea'),
|
||||
dataType: 'json',
|
||||
beforeSend: function() {
|
||||
$('#button-send').button('loading');
|
||||
},
|
||||
success: function(json) {
|
||||
$('.alert-dismissible, .text-danger').remove();
|
||||
|
||||
if (json['error']) {
|
||||
if (json['error']['warning']) {
|
||||
$('#content > .container-fluid').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error']['warning'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
|
||||
}
|
||||
|
||||
if (json['error']['email']) {
|
||||
$('#content > .container-fluid').prepend('<div class="alert alert-danger alert-dismissible"><i class="fa fa-exclamation-circle"></i> ' + json['error']['email'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
|
||||
}
|
||||
|
||||
if (json['error']['subject']) {
|
||||
$('input[name=\'subject\']').after('<div class="text-danger">' + json['error']['subject'] + '</div>');
|
||||
}
|
||||
|
||||
if (json['error']['message']) {
|
||||
$('textarea[name=\'message\']').parent().append('<div class="text-danger">' + json['error']['message'] + '</div>');
|
||||
}
|
||||
}
|
||||
|
||||
if (json['success']) {
|
||||
$('#content > .container-fluid').prepend('<div class="alert alert-success alert-dismissible"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
|
||||
}
|
||||
|
||||
if (json['next']) {
|
||||
send(json['next']);
|
||||
} else {
|
||||
$('#button-send').button('reset');
|
||||
}
|
||||
|
||||
},
|
||||
error: function(xhr, ajaxOptions, thrownError) {
|
||||
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
|
||||
}
|
||||
});
|
||||
}
|
||||
//--></script></div>
|
||||
{{ footer }}
|
||||
Reference in New Issue
Block a user