Files
adsPRO/templates/products/main_view.php

286 lines
8.6 KiB
PHP

<div class="admin-form theme-primary">
<div class="panel heading-border panel-primary">
<div class="panel-body">
<div class="row">
<div class="col-md-6">
<label class="field select">
<select id="client_id" name="client_id">
<option value="">--- wybierz klienta ---</option>
<? foreach ( $this -> clients as $client ):?>
<option value="<?= $client['id'];?>"><?= $client['name'];?></option>
<? endforeach;?>
</select>
<i class="arrow double"></i>
</label>
</div>
<div class="col-md-1 text-right">
<label>Bestseller min ROAS</label>
</div>
<div class="col-md-3">
<input type="text" id="bestseller_min_roas" name="bestseller_min_roas" class="form-control" placeholder="Minimalny ROAS bestsellerów" value="" />
</div>
</div>
</div>
</div>
</div>
<div class="admin-form theme-primary">
<div class="panel heading-border panel-primary">
<div class="panel-body">
<table class="table table-sm table-hover" id="products">
<thead>
<tr>
<th scope="col">Id</th>
<th scope="col">Id oferty</th>
<th scope="col">Nazwa produktu</th>
<th scope="col">Wyśw.</th>
<th scope="col">Wyśw. (30 dni)</th>
<th scope="col">Klik.</th>
<th scope="col">Klik. (30 dni)</th>
<th scope="col">CTR</th>
<th scope="col">Koszt</th>
<th scope="col">CPC</th>
<th scope="col">Konw.</th>
<th scope="col">Wartość konw.</th>
<th scope="col">ROAS</th>
<th scope="col">Min. ROAS</th>
<th scope="col">CL3</th>
<th scope="col">CL4</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
</div>
<script type="text/javascript">
$( function()
{
$( 'body' ).on( 'change', '#client_id', function()
{
var client_id = $( this ).val();
table = $( '#products' ).DataTable();
table.destroy();
// get min client roas
$.ajax({
url: '/products/get_client_bestseller_min_roas/',
type: 'POST',
data: {
client_id: client_id
},
success: function( response ) {
data = JSON.parse(response);
if ( data.status == 'ok' )
{
$( '#bestseller_min_roas' ).val( data.min_roas );
}
else
{
$( '#bestseller_min_roas' ).val( '' );
}
},
error: function() {
}
});
new DataTable( '#products', {
ajax: {
type: 'POST',
url: '/products/get_products/client_id=' + client_id,
},
processing: true,
serverSide: true,
columns: [
{ width: '100px', orderable: false },
{ width: '100px', name: 'offer_id' },
{ width: 'auto', name: 'name' },
{ width: 'auto', name: 'impressions' },
{ width: 'auto', name: 'impressions_30' },
{ width: 'auto', name: 'clicks' },
{ width: 'auto', name: 'clicks_30' },
{ width: 'auto', name: 'ctr' },
{ width: 'auto', name: 'cost', className: "dt-type-numeric" },
{ width: 'auto', name: 'cpc', className: "dt-type-numeric" },
{ width: 'auto', name: 'conversions' },
{ width: 'auto', name: 'conversions_value', className: "dt-type-numeric" },
{ width: 'auto', name: 'roas' },
{ width: '100px', name: 'min_roas' },
{ width: 'auto', name: 'cl3', orderable: false },
{ width: '200px', orderable: false }],
order: [ [ 5, 'desc' ] ]
});
});
$( 'body' ).on( 'change', '.min_roas', function()
{
var input = $( this );
var product_id = $( this ).attr( 'product_id' );
var min_roas = $( this ).val();
input.addClass('saving');
$.ajax({
url: '/products/save_min_roas/',
type: 'POST',
data: {
product_id: product_id,
min_roas: min_roas
},
success: function( response ) {
},
complete: function() {
}
});
})
$( 'body' ).on( 'change', '.custom_label_4', function()
{
var input = $( this );
var product_id = $( this ).attr( 'product_id' );
var custom_label_4 = $( this ).val();
input.addClass('saving');
$.ajax({
url: '/products/save_custom_label_4/',
type: 'POST',
data: {
product_id: product_id,
custom_label_4: custom_label_4
},
success: function( response ) {
},
complete: function() {
}
});
});
$( 'body' ).on( 'click', '.edit-product-title', function(e)
{
$.confirm({
title: 'Edytuj tytuł',
content: '' +
'<form action="" class="formName">' +
'<div class="form-group">' +
'<input type="text" value="' + escapeHtml( $( this ).siblings( 'a' ).text().trim() ) + '" product_id="' + $( this ).attr( 'product_id' ) + '" class="name form-control" required />' +
'<small>0/150 znaków</small>' +
'</div>' +
'</form>',
columnClass: 'col-md-8 col-md-offset-2 col-12',
theme: 'modern',
draggable: true,
buttons: {
formSubmit: {
text: 'Zapisz',
btnClass: 'btn-blue',
action: function () {
var jc = this;
var product_id = this.$content.find( '.name' ).attr( 'product_id' );
var customTitle = this.$content.find('.name').val();
if ( !customTitle )
{
$.alert('Pole tytuł nie może być puste!');
return false;
}
else if (customTitle.length > 150)
{
$.alert('Pole tytuł nie może przekraczać 150 znaków!');
this.$content.find('.name').addClass('is-invalid');
return false;
}
jc.showLoading(true);
$.ajax({
url: '/products/save_custom_title/',
type: 'POST',
data: {
product_id: product_id,
custom_title: customTitle
},
success: function(response) {
data = JSON.parse(response);
jc.hideLoading();
if ( data.status == 'ok' )
{
$.alert( 'Tytuł został pomyślnie zapisany' );
jc.close();
}
else
{
$.alert('Błąd: ' + response);
}
},
error: function() {
jc.hideLoading();
$.alert('Wystąpił błąd podczas zapisywania tytułu. Spróbuj ponownie.');
}
});
}
},
cancel: {
text: 'Anuluj',
btnClass: 'btn-red',
action: function () {
}
},
},
onContentReady: function () {
var jc = this;
var inputField = this.$content.find('.name');
var charCount = this.$content.find('small');
inputField.on('input', function() {
var currentLength = $(this).val().length;
charCount.text(currentLength + '/150 znaków');
if (currentLength > 150) {
$(this).addClass('is-invalid');
} else {
$(this).removeClass('is-invalid');
}
});
this.$content.find('form').on('submit', function (e) {
e.preventDefault();
jc.$$formSubmit.trigger('click');
});
}
});
});
$( 'body' ).on( 'blur', '#bestseller_min_roas', function(){
var min_roas = $( this ).val();
var client_id = $( '#client_id' ).val();
$.ajax({
url: '/products/save_client_bestseller_min_roas/',
type: 'POST',
data: {
client_id: client_id,
min_roas: min_roas
},
success: function( response ) {
data = JSON.parse(response);
if ( data.status == 'ok' )
{
$.alert( 'Minimalny ROAS bestsellerów został pomyślnie zapisany' );
}
else
{
$.alert('Błąd: ' + response);
}
},
error: function() {
$.alert('Wystąpił błąd podczas zapisywania minimalnego ROAS. Spróbuj ponownie.');
}
});
});
});
</script>