shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

contact.twig (11753B)


      1 {{ header }}{{ column_left }}
      2 <div id="content">
      3   <div class="page-header">
      4     <div class="container-fluid">
      5       <div class="pull-right">
      6         <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>
      7         <a href="{{ cancel }}" data-toggle="tooltip" title="{{ button_cancel }}" class="btn btn-default"><i class="fa fa-reply"></i></a></div>
      8       <h1>{{ heading_title }}</h1>
      9       <ul class="breadcrumb">
     10         {% for breadcrumb in breadcrumbs %}
     11         <li><a href="{{ breadcrumb.href }}">{{ breadcrumb.text }}</a></li>
     12         {% endfor %}
     13       </ul>
     14     </div>
     15   </div>
     16   <div class="container-fluid">
     17     <div class="panel panel-default">
     18       <div class="panel-heading">
     19         <h3 class="panel-title"><i class="fa fa-envelope"></i> {{ heading_title }}</h3>
     20       </div>
     21       <div class="panel-body">
     22         <form class="form-horizontal">
     23           <div class="form-group">
     24             <label class="col-sm-2 control-label" for="input-store">{{ entry_store }}</label>
     25             <div class="col-sm-10">
     26               <select name="store_id" id="input-store" class="form-control">
     27                 <option value="0">{{ text_default }}</option>
     28                 
     29                 {% for store in stores %}
     30                 
     31                 <option value="{{ store.store_id }}">{{ store.name }}</option>
     32                 
     33                 {% endfor %}
     34               
     35               </select>
     36             </div>
     37           </div>
     38           <div class="form-group">
     39             <label class="col-sm-2 control-label" for="input-to">{{ entry_to }}</label>
     40             <div class="col-sm-10">
     41               <select name="to" id="input-to" class="form-control">
     42                 <option value="newsletter">{{ text_newsletter }}</option>
     43                 <option value="customer_all">{{ text_customer_all }}</option>
     44                 <option value="customer_group">{{ text_customer_group }}</option>
     45                 <option value="customer">{{ text_customer }}</option>
     46                 <option value="affiliate_all">{{ text_affiliate_all }}</option>
     47                 <option value="affiliate">{{ text_affiliate }}</option>
     48                 <option value="product">{{ text_product }}</option>
     49               </select>
     50             </div>
     51           </div>
     52           <div class="form-group to" id="to-customer-group">
     53             <label class="col-sm-2 control-label" for="input-customer-group">{{ entry_customer_group }}</label>
     54             <div class="col-sm-10">
     55               <select name="customer_group_id" id="input-customer-group" class="form-control">
     56                 
     57                 {% for customer_group in customer_groups %}
     58                 
     59                 <option value="{{ customer_group.customer_group_id }}">{{ customer_group.name }}</option>
     60                 
     61                 {% endfor %}
     62               
     63               </select>
     64             </div>
     65           </div>
     66           <div class="form-group to" id="to-customer">
     67             <label class="col-sm-2 control-label" for="input-customer"><span data-toggle="tooltip" title="{{ help_customer }}">{{ entry_customer }}</span></label>
     68             <div class="col-sm-10">
     69               <input type="text" name="customers" value="" placeholder="{{ entry_customer }}" id="input-customer" class="form-control" />
     70               <div class="well well-sm" style="height: 150px; overflow: auto;"></div>
     71             </div>
     72           </div>
     73           <div class="form-group to" id="to-affiliate">
     74             <label class="col-sm-2 control-label" for="input-affiliate"><span data-toggle="tooltip" title="{{ help_affiliate }}">{{ entry_affiliate }}</span></label>
     75             <div class="col-sm-10">
     76               <input type="text" name="affiliates" value="" placeholder="{{ entry_affiliate }}" id="input-affiliate" class="form-control" />
     77               <div class="well well-sm" style="height: 150px; overflow: auto;"></div>
     78             </div>
     79           </div>
     80           <div class="form-group to" id="to-product">
     81             <label class="col-sm-2 control-label" for="input-product"><span data-toggle="tooltip" title="{{ help_product }}">{{ entry_product }}</span></label>
     82             <div class="col-sm-10">
     83               <input type="text" name="products" value="" placeholder="{{ entry_product }}" id="input-product" class="form-control" />
     84               <div class="well well-sm" style="height: 150px; overflow: auto;"></div>
     85             </div>
     86           </div>
     87           <div class="form-group required">
     88             <label class="col-sm-2 control-label" for="input-subject">{{ entry_subject }}</label>
     89             <div class="col-sm-10">
     90               <input type="text" name="subject" value="" placeholder="{{ entry_subject }}" id="input-subject" class="form-control" />
     91             </div>
     92           </div>
     93           <div class="form-group required">
     94             <label class="col-sm-2 control-label" for="input-message">{{ entry_message }}</label>
     95             <div class="col-sm-10">
     96               <textarea name="message" placeholder="{{ entry_message }}" id="input-message" data-toggle="summernote" data-lang="{{ summernote }}" class="form-control"></textarea>
     97             </div>
     98           </div>
     99         </form>
    100       </div>
    101     </div>
    102   </div>
    103   <link href="view/javascript/codemirror/lib/codemirror.css" rel="stylesheet" />
    104   <link href="view/javascript/codemirror/theme/monokai.css" rel="stylesheet" />
    105   <script type="text/javascript" src="view/javascript/codemirror/lib/codemirror.js"></script> 
    106   <script type="text/javascript" src="view/javascript/codemirror/lib/xml.js"></script> 
    107   <script type="text/javascript" src="view/javascript/codemirror/lib/formatting.js"></script> 
    108   <script type="text/javascript" src="view/javascript/summernote/summernote.js"></script>
    109   <link href="view/javascript/summernote/summernote.css" rel="stylesheet" />
    110   <script type="text/javascript" src="view/javascript/summernote/summernote-image-attributes.js"></script> 
    111   <script type="text/javascript" src="view/javascript/summernote/opencart.js"></script> 
    112   <script type="text/javascript"><!--
    113 $('select[name=\'to\']').on('change', function() {
    114 	$('.to').hide();
    115 
    116 	$('#to-' + this.value.replace('_', '-')).show();
    117 });
    118 
    119 $('select[name=\'to\']').trigger('change');
    120 //--></script> 
    121   <script type="text/javascript"><!--
    122 // Customers
    123 $('input[name=\'customers\']').autocomplete({
    124 	'source': function(request, response) {
    125 		$.ajax({
    126 			url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' +  encodeURIComponent(request),
    127 			dataType: 'json',
    128 			success: function(json) {
    129 				response($.map(json, function(item) {
    130 					return {
    131 						label: item['name'],
    132 						value: item['customer_id']
    133 					}
    134 				}));
    135 			},
    136 			error: function(xhr, ajaxOptions, thrownError) {
    137 				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    138 			}
    139 		});
    140 	},
    141 	'select': function(item) {
    142 		$('input[name=\'customers\']').val('');
    143 
    144 		$('#input-customer' + item['value']).remove();
    145 
    146 		$('#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>');
    147 	}
    148 });
    149 
    150 $('#input-customer').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
    151 	$(this).parent().remove();
    152 });
    153 
    154 // Affiliates
    155 $('input[name=\'affiliates\']').autocomplete({
    156 	'source': function(request, response) {
    157 		$.ajax({
    158 			url: 'index.php?route=customer/customer/autocomplete&user_token={{ user_token }}&filter_name=' +  encodeURIComponent(request) + '&filter_affiliate=1',
    159 			dataType: 'json',
    160 			success: function(json) {
    161 				response($.map(json, function(item) {
    162 					return {
    163 						label: item['name'],
    164 						value: item['customer_id']
    165 					}
    166 				}));
    167 			},
    168 			error: function(xhr, ajaxOptions, thrownError) {
    169 				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    170 			}
    171 		});
    172 	},
    173 	'select': function(item) {
    174 		$('input[name=\'affiliates\']').val('');
    175 
    176 		$('#input-affiliate' + item['value']).remove();
    177 
    178 		$('#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>');
    179 	}
    180 });
    181 
    182 $('#input-affiliate').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
    183 	$(this).parent().remove();
    184 });
    185 
    186 // Products
    187 $('input[name=\'products\']').autocomplete({
    188 	'source': function(request, response) {
    189 		$.ajax({
    190 			url: 'index.php?route=catalog/product/autocomplete&user_token={{ user_token }}&filter_name=' +  encodeURIComponent(request),
    191 			dataType: 'json',
    192 			success: function(json) {
    193 				response($.map(json, function(item) {
    194 					return {
    195 						label: item['name'],
    196 						value: item['product_id']
    197 					}
    198 				}));
    199 			},
    200 			error: function(xhr, ajaxOptions, thrownError) {
    201 				alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    202 			}
    203 		});
    204 	},
    205 	'select': function(item) {
    206 		$('input[name=\'products\']').val('');
    207 
    208 		$('#input-product' + item['value']).remove();
    209 
    210 		$('#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>');
    211 	}
    212 });
    213 
    214 $('#input-product').parent().find('.well').delegate('.fa-minus-circle', 'click', function() {
    215 	$(this).parent().remove();
    216 });
    217 
    218 function send(url) {
    219 	$.ajax({
    220 		url: url,
    221 		type: 'post',
    222 		data: $('#content select, #content input, #content textarea'),
    223 		dataType: 'json',
    224 		beforeSend: function() {
    225 			$('#button-send').button('loading');
    226 		},
    227 		complete: function() {
    228 			$('#button-send').button('reset');
    229 		},
    230 		success: function(json) {
    231 			$('.alert-dismissible, .text-danger').remove();
    232 
    233 			if (json['error']) {
    234 				if (json['error']['warning']) {
    235 					$('#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">&times;</button></div>');
    236 				}
    237 
    238 				if (json['error']['email']) {
    239 					$('#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">&times;</button></div>');
    240 				}
    241 
    242 				if (json['error']['subject']) {
    243 					$('input[name=\'subject\']').after('<div class="text-danger">' + json['error']['subject'] + '</div>');
    244 				}
    245 
    246 				if (json['error']['message']) {
    247 					$('textarea[name=\'message\']').parent().append('<div class="text-danger">' + json['error']['message'] + '</div>');
    248 				}
    249 			}
    250 
    251 			if (json['success']) {
    252 				$('#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">&times;</button></div>');
    253 			}
    254 				
    255 			if (json['next']) {
    256 				send(json['next']);
    257 			}
    258 		},
    259 		error: function(xhr, ajaxOptions, thrownError) {
    260 			alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    261 		}
    262 	});
    263 }
    264 //--></script></div>
    265 {{ footer }}