Обработка получения данных стат. за период с пустым результатом

parent b0b46f66
/* Таблица стилей к странице контактов */
.b-content__title {
padding: 85px 0 25px;
display: -webkit-flex;
display: flex;
height: 260px;
background-image: url('../img/bg-tittle-contact.jpg');
background-size: cover;
background-position: center;
background-repeat: no-repeat;
}
.b-content__title .wrapp {
margin: auto;
height: auto;
}
.b-content__title h1 {
text-align: center;
color: #FFFFFF;
margin-bottom: 10px;
}
.b-content__title p.lead {
text-align: center;
color: #FFFFFF;
}
.b-content__form {
padding: 60px 0 90px;
}
.b-content__form .wrapp {
}
.b-content__form h2 {
color : #333333;
margin-bottom: 50px;
}
.b-content__form-our-contacts {
}
.b-content__form-our-contacts li {
position: relative;
padding-top: 0.35em;
padding-left: 50px;
margin-bottom: 35px;
}
.b-content__form-our-contacts li:last-child {
margin-bottom: 0px;
}
.b-content__form-our-contacts li:before {
position: absolute;
display: block;
content: '';
left: 0;
height: 1.5rem;
width: 1.5rem;
background-position: center;
background-repeat: no-repeat;
background-size: contain;
border-radius: 50%;
}
.b-content__form-our-contacts li.tel:before {
background-image: url('../img/icon-telephone.svg');
}
.b-content__form-our-contacts li.email:before {
background-image: url('../img/icon-email.svg');
}
.b-content__form-our-contacts li.skype:before {
background-image: url('../img/icon-skype.svg');
}
.b-content__form-our-contacts li a {
font-family: 'AABebasNeue';
font-size: 1.7rem;
color: #333333;
}
.b-content__form-container {
position: relative;
}
.b-content__form-container form h2 {
margin-bottom: 20px;
}
.b-content__form-container .textarea,
.b-content__form-container form textarea {
font-weight: normal;
}
.message-sent .b-content__form-container form {
opacity: 0;
pointer-events: none;
}
.b-content__form-finish {
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
height: 100%;
width: 100%;
display: none;
background: #FFFFFF;
}
.b-content__form-finish-inner {
margin-top: 2.5rem;
padding-top: 115px;
background-image: url('../img/bg-send-message.svg');
background-size: 100px 75px;
background-repeat: no-repeat;
background-position: center top;
}
.b-content__form-finish-inner h2 {
text-align: center;
font-size: 1.2rem;
margin-bottom: 10px;
color: #39B54A;
}
.b-content__form-finish-inner p {
text-align: center;
font-size: 1rem;
}
@media (max-width: 768px) {
.b-content__title {
height: auto;
}
.b-content__contact .input.input--akira {
width: 100%;
}
.b-content__contact input[type="submit"] {
width: 100%;
}
}
@media (max-width: 550px) {
.b-content__title {
padding: 100px 10px 50px;
}
.b-content__form {
padding: 30px 0 30px;
}
.b-content__form h2 {
text-align: center;
}
.b-content__form-container form {
margin-top: 50px;
}
span + input[type="submit"] {
margin-top: 20px;
}
}
\ No newline at end of file
This diff is collapsed.
;(function($){
var jqPluginName = 'sortTable';
var sortPlugin = function(element, options) {
var self = this;
var config = $.extend(true, {}, $.fn[jqPluginName].defaults, options);
config.context = element;
config.$columnItems = $(config.columnItems, config.context);
this.addDataItems = function() {
config.dataItems = [];
config.$itemsRows = $(config.itemsRows, config.context);
var $itemRow;
config.$itemsRows.each(function(i, e){
$itemRow = $(e);
config.dataItems.push({
tr: $itemRow, // строка в таблице
//trHtml: $itemRow.get(0).outerHTML,
id: parseInt($.trim($('.item-id', $itemRow).text())),
timestamp: $.trim($('.item-timestamp', $itemRow).text()),
browser: $.trim($('.item-browser', $itemRow).text()),
country: $.trim($('.item-country', $itemRow).text()),
site: $.trim($('.item-site', $itemRow).text()),
offer: $.trim($('.item-offer', $itemRow).text()),
land: $.trim($('.item-land', $itemRow).text()),
status: $.trim($('.item-status', $itemRow).text()),
price: $.trim($('.item-price', $itemRow).text()),
views: parseInt($.trim($('.item-views', $itemRow).text())),
clicks: parseInt($.trim($('.item-clicks', $itemRow).text())),
ctr: parseFloat($.trim($('.item-ctr', $itemRow).text())),
orders: parseInt($.trim($('.item-orders', $itemRow).text())),
cl: parseFloat($.trim($('.item-cl', $itemRow).text())),
money: parseFloat($.trim($('.item-money', $itemRow).text())),
cpc: parseFloat($.trim($('.item-cpc', $itemRow).text())),
cpm: parseFloat($.trim($('.item-cpm', $itemRow).text())),
});
});
}
this.addDataItems();
self.InitData = function() {
this.addDataItems();
}
// Клик по названию колонки для сортировки:
config.$columnItems.click(function() {
// Сортировка в таблице
var
sortField = $(this).data('sort'),
sortAsc = $(this).attr('data-sortasc');
$(this).attr('data-sortasc', -sortAsc);
config.dataItems.sort(function(a, b) {
if (sortAsc < 0) {
return (a[sortField] > b[sortField]) ? 1 : -1;
} else {
return (a[sortField] < b[sortField]) ? 1 : -1;
}
});
// Переписываем таблицу:
var
$table = $(config.context),
$tableBody = $('tbody', $table),
//$tableBody = $table.find('tbody').first(),
$tableContent = $('<tbody>');
for (var i = 0; i < config.dataItems.length; i++) {
(config.dataItems[i].tr).appendTo($tableContent);
}
$tableBody.html('').append($tableContent.children());
});
config.context.data(jqPluginName, this);
}
$.fn[jqPluginName] = function(options) {
return this.each(function() {
var _this = $(this);
if (!_this.data(jqPluginName))
{
new sortPlugin(_this, options);
}
});
}
$.fn[jqPluginName].defaults = {
context: null,
dataItems: [],
itemsRows: 'tbody tr',
$itemsRows: null,
columnItems: '.sort[data-sort]',
$columnItems: null,
}
})(jQuery);
//table2excel.js
;(function ( $, window, document, undefined ) {
var pluginName = "table2excel",
defaults = {
exclude: ".noExl",
name: "Table2Excel"
};
// The actual plugin constructor
function Plugin ( element, options ) {
this.element = element;
// jQuery has an extend method which merges the contents of two or
// more objects, storing the result in the first object. The first object
// is generally empty as we don't want to alter the default options for
// future instances of the plugin
//
this.settings = $.extend( {}, defaults, options );
this._defaults = defaults;
this._name = pluginName;
this.init();
}
Plugin.prototype = {
init: function () {
var e = this;
var utf8Heading = "<meta http-equiv=\"content-type\" content=\"application/vnd.ms-excel; charset=UTF-8\">";
e.template = {
head: "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">" + utf8Heading + "<head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets>",
sheet: {
head: "<x:ExcelWorksheet><x:Name>",
tail: "</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet>"
},
mid: "</x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--></head><body>",
table: {
head: "<table>",
tail: "</table>"
},
foot: "</body></html>"
};
e.tableRows = [];
// get contents of table except for exclude
$(e.element).each( function(i,o) {
var tempRows = "";
$(o).find("tr").not(e.settings.exclude).each(function (i,p) {
tempRows += "<tr>";
$(p).find("td,th").not(e.settings.exclude).each(function (i,q) { // p did not exist, I corrected
var flag = $(q).find(e.settings.exclude); // does this <td> have something with an exclude class
if(flag.length >= 1) {
tempRows += "<td> </td>"; // exclude it!!
} else {
tempRows += "<td>" + $(q).html() + "</td>";
}
});
tempRows += "</tr>";
});
// exclude img tags
if(e.settings.exclude_img) {
tempRows = exclude_img(tempRows);
}
// exclude link tags
if(e.settings.exclude_links) {
tempRows = exclude_links(tempRows);
}
// exclude input tags
if(e.settings.exclude_inputs) {
tempRows = exclude_inputs(tempRows);
}
e.tableRows.push(tempRows);
});
e.tableToExcel(e.tableRows, e.settings.name, e.settings.sheetName);
},
tableToExcel: function (table, name, sheetName) {
var e = this, fullTemplate="", i, link, a;
e.format = function (s, c) {
return s.replace(/{(\w+)}/g, function (m, p) {
return c[p];
});
};
sheetName = typeof sheetName === "undefined" ? "Sheet" : sheetName;
e.ctx = {
worksheet: name || "Worksheet",
table: table,
sheetName: sheetName
};
fullTemplate= e.template.head;
if ( $.isArray(table) ) {
for (i in table) {
//fullTemplate += e.template.sheet.head + "{worksheet" + i + "}" + e.template.sheet.tail;
fullTemplate += e.template.sheet.head + sheetName + i + e.template.sheet.tail;
}
}
fullTemplate += e.template.mid;
if ( $.isArray(table) ) {
for (i in table) {
fullTemplate += e.template.table.head + "{table" + i + "}" + e.template.table.tail;
}
}
fullTemplate += e.template.foot;
for (i in table) {
e.ctx["table" + i] = table[i];
}
delete e.ctx.table;
var isIE = /*@cc_on!@*/false || !!document.documentMode; // this works with IE10 and IE11 both :)
//if (typeof msie !== "undefined" && msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) // this works ONLY with IE 11!!!
if (isIE) {
if (typeof Blob !== "undefined") {
//use blobs if we can
fullTemplate = e.format(fullTemplate, e.ctx); // with this, works with IE
fullTemplate = [fullTemplate];
//convert to array
var blob1 = new Blob(fullTemplate, { type: "text/html" });
window.navigator.msSaveBlob(blob1, getFileName(e.settings) );
} else {
//otherwise use the iframe and save
//requires a blank iframe on page called txtArea1
txtArea1.document.open("text/html", "replace");
txtArea1.document.write(e.format(fullTemplate, e.ctx));
txtArea1.document.close();
txtArea1.focus();
sa = txtArea1.document.execCommand("SaveAs", true, getFileName(e.settings) );
}
} else {
var blob = new Blob([e.format(fullTemplate, e.ctx)], {type: "application/vnd.ms-excel"});
window.URL = window.URL || window.webkitURL;
link = window.URL.createObjectURL(blob);
a = document.createElement("a");
a.download = getFileName(e.settings);
a.href = link;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
}
return true;
}
};
function getFileName(settings) {
return ( settings.filename ? settings.filename : "table2excel" );
}
// Removes all img tags
function exclude_img(string) {
var _patt = /(\s+alt\s*=\s*"([^"]*)"|\s+alt\s*=\s*'([^']*)')/i;
return string.replace(/<img[^>]*>/gi, function myFunction(x){
var res = _patt.exec(x);
if (res !== null && res.length >=2) {
return res[2];
} else {
return "";
}
});
}
// Removes all link tags
function exclude_links(string) {
return string.replace(/<a[^>]*>|<\/a>/gi, "");
}
// Removes input params
function exclude_inputs(string) {
var _patt = /(\s+value\s*=\s*"([^"]*)"|\s+value\s*=\s*'([^']*)')/i;
return string.replace(/<input[^>]*>|<\/input>/gi, function myFunction(x){
var res = _patt.exec(x);
if (res !== null && res.length >=2) {
return res[2];
} else {
return "";
}
});
}
$.fn[ pluginName ] = function ( options ) {
var e = this;
e.each(function() {
if ( !$.data( e, "plugin_" + pluginName ) ) {
$.data( e, "plugin_" + pluginName, new Plugin( this, options ) );
}
});
// chain jQuery functions
return e;
};
})( jQuery, window, document );
This diff is collapsed.
$(document).ready(function () {
"use strict";
var
$categoriesWrap = $('.b-filters');
// Отображение категорий-подкатеорий:
$categoriesWrap.on('change', 'select.data-category, select.data-subcategory', function(){
var
$this = $(this);
if ($this.hasClass('data-category')) {
var
catId = $this.val(),
$subcatWrap = $('.b-offers-list_controls-subcategory', $this.parent()),
$subcategory = $('.data-subcategory', $this.parent()),
$options = $('option', $subcategory);
// Показываем выбор подкатегрий:
(catId) ? $subcatWrap.show() : $subcatWrap.hide();
// Устанавливаем набор подкатегрий:
$options.addClass('hidden').prop('selected', false).filter('[data-parent="'+ catId +'"]').removeClass('hidden');
$options.filter('[value=""]').removeClass('hidden');
}
});
// Работа со списками:
(function(){
var
$selectAllItems = $('table.offers thead tr th input.select-all'),
$markCount = $('.b-offers-list_controls .mark-count b'),
$actionsWrap = $('.b-data-item_action'),
$actions = $('table.offers thead tr th b.action'),
$applyButton = $('button.btn.btn-primary.apply');
// Обработка получения новых данных:
$applyButton.click(function(){
$selectAllItems.prop('checked', false).change();
});
// Клик на галочку "Выбрать все":
$selectAllItems.on('change', function(){
var
$this = $(this),
isSelected = $this.prop('checked'),
$tableTr = $('table.offers tbody tr'),
markCount = 0;
if (isSelected) {
$tableTr.each(function(){
var $trItem = $(this);
if (!$trItem.hasClass('hidden') && $trItem.is(':visible')) {
$('input.is-active', $trItem).prop('checked', true);
$actionsWrap.show();
$actions.removeClass('hidden');
markCount++;
}
});
} else {
$tableTr.each(function(){
$('input.is-active', $(this)).prop('checked', false);
});
$actionsWrap.hide();
$actions.addClass('hidden');
}
$markCount.text(markCount);
});
// Клик на галочку в списке:
$('table.offers').on('change', 'input.is-active', function(){
var
offersIsCheched = false,
markCount = 0;
$('table.offers input.is-active').each(function(){
if ($(this).is(':checked')) {
offersIsCheched = true;
markCount++;
}
});
if (offersIsCheched) {
$actionsWrap.show();
$actions.removeClass('hidden');
$selectAllItems.prop('checked', true);
} else {
$selectAllItems.prop('checked', false);
$actionsWrap.hide();
$actions.addClass('hidden');
}
$markCount.text(markCount);
});
// Выбор действия с выделенными элементами:
$actions.on('click', function(){
var
$this = $(this),
actionType = $this.hasClass('activate') ? 'active' : 'disable',
$wrap = $this.parents('.panel-body'),
selectedOffersId = [];
$('table tbody tr', $wrap).each(function() {
var $item = $(this);
if ($('input.is-active', $item).is(':checked')) {
selectedOffersId.push($item.data('id'));
}
});
// Запрос на изменение статуса выбранных офферов:
if (selectedOffersId.length > 0) {
var
action = $('table', $wrap).data('action'),
method = 'POST',
data = {
'toggle_active': 1,
'is_active': (actionType == 'active') ? 1 : 0,
'id_offers': selectedOffersId,
};
$.ajax(action, {
type: method,
data: data,
success: function(data) {
$applyButton.click();
/*
$('table tbody tr', $wrap).each(function() {
var $item = $(this);
if ($('input.is-active', $item).is(':checked')) {
switch(actionType) {
case 'active':
$item.removeClass('disabled');
break;
case 'disable':
$item.addClass('disabled');
break;
}
}
});
*/
},
error: function(rew, status, err) {
console.log(status, err);
}
});
}
});
})();
});
\ No newline at end of file
This diff is collapsed.
$(document).ready(function () {
"use strict";
// Работа со списками на стр. списка партнерок:
(function(){
var
$selectAllItems = $('table.partners thead tr th input.select-all'),
$actions = $('table.partners thead tr th b.action'),
$applyButton = $('button.btn.btn-primary.apply');
// Клик на галочку "Выбрать все":
$selectAllItems.on('change', function(){
var
$this = $(this),
isSelected = $this.prop('checked'),
$tableTr = $('table.partners tbody tr');
if (isSelected) {
$tableTr.each(function(){
$('input.is-active', $(this)).prop('checked', true);
});
$actions.removeClass('hidden');
} else {
$tableTr.each(function(){
$('input.is-active', $(this)).prop('checked', false);
});
$actions.addClass('hidden');
}
});
// Клик на галочку в списке:
$('table.partners').on('change', 'input.is-active', function(){
var offersIsCheched = false;
$('table.partners input.is-active').each(function(){
if ($(this).is(':checked')) {
offersIsCheched = true;
}
});
if (offersIsCheched) {
$actions.removeClass('hidden');
$selectAllItems.prop('checked', true);
} else {
$selectAllItems.prop('checked', false);
$actions.addClass('hidden');
}
});
// Выбор действия с выделенными элементами:
$actions.on('click', function(){
var
$this = $(this),
actionType = $this.hasClass('activate') ? 'active' : 'disable',
$wrap = $this.parents('.panel-body'),
selectedItemsId = [];
$('table tbody tr', $wrap).each(function() {
var $item = $(this);
if ($('input.is-active', $item).is(':checked')) {
selectedItemsId.push($item.data('id'));
}
});
// Запрос на изменение статуса выбранных офферов:
if (selectedItemsId.length > 0) {
var
action = $('table', $wrap).data('action'),
method = 'POST',
data = {
'toggle_active': 1,
'is_active': (actionType == 'active') ? 1 : 0,
'id_items': selectedItemsId,
};
$.ajax(action, {
type: method,
data: data,
success: function(data) {
document.location.reload();
},
error: function(rew, status, err) {
console.log(status, err);
}
});
}
});
})();
// Клик на "Сохранить" партнёрку:
$('#partner-create-form').on('submit', function(e) {
var
formData = {},
action = $(this).attr('action'),
method = $(this).attr('method');
var vals = $(this).serializeArray();
if(vals.length) {
for(var i in vals) {
formData[vals[i].name] = vals[i].value;
}
}
$.ajax(action, {
type: method,
data: formData,
success: function(data) {
if(data) {
if(data.result === true && data.redirect) {
document.location.href = data.redirect;
}
if(data.result === false && data.msg) {
$.showMessage('error', data.msg);
}
}
},
error: function(rew, status, err) {
console.log(status, err);
}
});
return false;
});
});
\ No newline at end of file
......@@ -7,72 +7,10 @@ $(document).ready(function () {
action = $(this).attr('href'),
dataRequest;
// Стр. сайтов
if ($(this).hasClass('add-list-sites')) {
dataRequest = {addlist: true};
// Стр. стат. фидов
if ($(this).hasClass('feed-test-data')) {
dataRequest = {feedTestData: true};
}
if ($(this).hasClass('add-date-sites')) {
dataRequest = {addDate: true};
}
if ($(this).hasClass('create-json-sites')) {
dataRequest = {createJsonSites: true};
}
if ($(this).hasClass('create-providers-list')) {
dataRequest = {createProvidersList: true};
}
if ($(this).hasClass('test')) {
//dataRequest = {url: 'http://0day.kiev.ua'};
//dataRequest = {url: 'http://ua.sinoptik.ua'};
//dataRequest = {url: 'http://bigmir.net'};
//dataRequest = {url: 'http://playboyua.com.ua'};
//dataRequest = {url: 'http://kino-live.top'};
dataRequest = {url: 'http://sinoptik.ua'};
//dataRequest = {url: 'http://sinoptik.com.ru'};
//dataRequest = {url: 'http://censor.net.ua'};
//dataRequest = {url: 'http://korrespondent.net'};
//dataRequest = {url: 'http://soccer0010.com'};
//dataRequest = {url: 'http://soccer.ru'};
action = 'https://addcpm.app.dev.rew.to/conf/conf.php';
//action = 'https://addcpm.app.dev.rew.to/conf/conf.php?dev=1';
//action = 'https://www.addcpm.com/conf/conf.php';
//action = 'https://sconf.dev.rew.to/conf/conf.php';
//action = 'https://sconf.dev.rew.to/';
//action = 'https://sconf.dev.rew.to/conf/domain.php';
//action = 'https://sconf.dev.rew.to/conf/all.php';
}
if ($(this).hasClass('yesterday-stat')) {
dataRequest = {yesterdayStat: true};
}
// Стр. офферов
if ($(this).hasClass('add-list-teasers')) {
dataRequest = {addlistTeasers: true};
}
if ($(this).hasClass('edit-list-teasers')) {
dataRequest = {editlistTeasers: true};
}
if ($(this).hasClass('create-offersnew')) {
dataRequest = {createOffersNew: true};
}
if ($(this).hasClass('edit-json-tpl')) {
dataRequest = {editJsonTpl: true};
}
if ($(this).hasClass('vars-tpl')) {
dataRequest = {varsTpl: true};
}
if ($(this).hasClass('price-tpl')) {
dataRequest = {priceTpl: true};
}
if ($(this).hasClass('rename-teasers')) {
dataRequest = {renameTeasers: true};
}
if ($(this).hasClass('tpl-templates-table')) {
dataRequest = {tplTemplatesTable: true};
}
$.ajax(action, {
type: 'POST',
......
$(document).ready(function () {
"use strict";
Number.prototype.formatMoney = function(c, d, t){
var n = this,
c = isNaN(c = Math.abs(c)) ? 2 : c,
d = d == undefined ? "." : d,
t = t == undefined ? "," : t,
s = n < 0 ? "-" : "",
i = String(parseInt(n = Math.abs(Number(n) || 0).toFixed(c))),
j = (j = i.length) > 3 ? j % 3 : 0;
return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};
// Исхдные данные в таблице сайтов:
var
sumTraffic = 0,
dataSites = [],
$sitesRows = $('table.table-striped tbody tr'),
$dataColumns;
// Запрос данных о доходе за вчера:
var action = $('.btn-toolbar .btn-primary').attr('href');
$.ajax(action, {
type: 'POST',
data: {yesterdayStat: true},
success: function(data) {
//console.log('AAA success: ', data);
if (data) {
$sitesRows.each(function(){
var $this = $(this);
if (data[$this.data('site')]) {
$('td.money', $this).html(data[$this.data('site')].formatMoney(2));
}
});
AddDataSites();
}
},
error: function(ajaxObj, textStatus, textError) {
//console.log('AAA error');
}
});
AddDataSites();
// Клик по названию колонки для сортировки:
Array.prototype.forEach.call(document.querySelectorAll(".sort[data-sort]"), function (el) {
$(el).on("click", function (e) {
// Сортировка в таблице
var sortField = $(this).data('sort');
var sortAsc = $(this).attr('data-sortasc');
$(this).attr('data-sortasc', -sortAsc);
//console.log('AAA sortAsc = ', sortAsc);
dataSites.sort(function(a, b) {
if (sortAsc < 0) {
return (a[sortField] > b[sortField]) ? 1 : -1;
} else {
return (a[sortField] < b[sortField]) ? 1 : -1;
}
});
// Переписываем таблицу:
var
$table = $('#table-site'),
$tableContent = $('<tbody>'),
$tableBody = $table.find('tbody').first();
for (var i = 0; i < dataSites.length; i++) {
var $row;
$row = $('<tr data-site="' + dataSites[i].domain + '">').html(dataSites[i].tr);
if (!dataSites[i].isVisible) {
$row.hide();
}
$row.appendTo($tableContent);
}
$tableBody.html('').append($tableContent.children());
});
});
// Клик на галочку "Сайт включен":
$('#table-site').on('change', 'input.is-enabled', function(e) {
var
$this = $(this),
siteId = $this.parents('tr').data('id'),
$siteTr = $this.parents('tr'),
isEnabled = $this.prop( "checked" ),
action = $this.parents('table').data('action') + siteId,
method = 'POST',
data = {
'toggle_enabled': 1,
'is_enabled': isEnabled ? 1 : 0,
};
$this.prop("disabled", true);
$.ajax(action, {
type: method,
data: data,
success: function(data) {
$this.prop("disabled", false);
if (data.result) {
if (isEnabled) {
$siteTr.removeClass('disabled');
} else {
$siteTr.addClass('disabled');
}
}
},
error: function(rew, status, err) {
console.log(status, err);
$this.prop("disabled", false);
}
});
return false;
});
// Клик на кнопку статистики:
/*
Array.prototype.forEach.call(document.querySelectorAll("button[data-link]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
document.location.href = this.getAttribute("data-link");
});
});
*/
// Выбор даты для BidStat http://t1m0n.name/air-datepicker/docs/index-ru.html
var nowDate = new Date();
$('#date-value').datepicker({
dateFormat: "yyyy-mm-dd",
autoClose: true,
range: true,
maxDate: nowDate,
onHide: function(dp, animationCompleted){
if (animationCompleted) {
selectSitesWithSelectedData(dp);
}
}
}).data('datepicker');
function selectSitesWithSelectedData(data)
{
var
selectInterval = (data.selectedDates.length > 1),
selectNoDate = (data.selectedDates.length == 0);
$sitesRows = $('table.table-striped tbody tr');
$sitesRows.each(function(i, e){
$dataColumns = $('td', $(e));
var
siteDateCreate = $.trim($('.site-create-date', $dataColumns[4]).text()),
dateSite = (new Date(siteDateCreate + ' 00:00')).getTime();
if (selectNoDate) {
$(this).show();
} else if (selectInterval) {
var
dateFrom = (new Date(data.selectedDates[0])).getTime(),
dateTo = (new Date(data.selectedDates[1])).getTime();
if (dateSite>=dateFrom && dateSite<=dateTo) {
$(this).show();
} else {
$(this).hide();
}
} else {
var dateSelect = (new Date(data.selectedDates[0])).getTime();
if (dateSite==dateSelect) {
$(this).show();
} else {
$(this).hide();
}
}
});
AddDataSites();
}
// Формирование данных о сайтах из таблицы
function AddDataSites()
{
var
$siteRow;
//siteTraffic;
//sumTraffic = 0;
dataSites = [];
$sitesRows.each(function(i, e){
$siteRow = $(e);
dataSites.push({
tr: $(e).html().replace(/\s{2,}/g, ' '),
id: $.trim($('.site-id', $siteRow).text()),
domain: $.trim($('.site-domain a', $siteRow).text()),
user: $.trim($('.user-name a', $siteRow).text()),
date: $.trim($('.site-create-date', $siteRow).text()),
//traffic: ($.trim($('.site-traffic', $siteRow).data('traffic')) !="") ? parseInt($.trim($('.site-traffic', $siteRow).data('traffic'))) : 0,
isVisible: $(e).is(':visible'),
money: ($.trim($('.money', $siteRow).html()) !="") ? parseFloat($.trim($('.money', $siteRow).html())) : 0,
});
/*
siteTraffic = $.trim($('.site-traffic', $siteRow).data('traffic'));
siteTraffic = (siteTraffic != '') ? siteTraffic : 0;
sumTraffic += ($siteRow.is(':visible')) ? parseInt(siteTraffic) : 0;
*/
});
// Прописываем суммарный траффик по выбранным сайтам:
/*
sumTraffic = sumTraffic.formatMoney(0);
$('.sum-traffic span').text(sumTraffic);
*/
}
});
\ No newline at end of file
This diff is collapsed.
$(document).ready(function () {
"use strict";
// Стиль скина
var editor = ace.edit("editor");
editor.setOptions({readOnly: true,});
editor.setTheme("ace/theme/chrome");
editor.session.setMode("ace/mode/less");
// Стиль базового скина
var editorBase = ace.edit("editor-base");
editorBase.setOptions({readOnly: true,});
editorBase.setTheme("ace/theme/chrome");
editorBase.session.setMode("ace/mode/less");
// Помечаем цветом поля конфига:
var
$configWrap = $('.form-group-config'),
$configFields = $('input.form-control, select.form-control', $configWrap),
$sizeWidth = $configFields.filter('.size.width'),
$sizeHeight = $configFields.filter('.size.height'),
$itemsCols = $configFields.filter('.items.cols'),
$itemsRows = $configFields.filter('.items.rows'),
$logoVert = $configFields.filter('.logo.vert'),
$logoHor = $configFields.filter('.logo.hor'),
$logoInner = $configFields.filter('.logo.inner'),
$logoWidth = $configFields.filter('.logo.width'),
$logoHeight = $configFields.filter('.logo.height'),
$animationName = $configFields.filter('.animation.name'),
$animationLoopTimeout = $configFields.filter('.animation.loopTimeout');
function markConfigControl($this)
{
//if ($this.data('base') == $this.val() && $this.val()) {$this.addClass('from-base');}
$this.attr('placeholder', $this.attr('data-base'));
}
function markAllConfigControls()
{
$configFields.each(function() {
markConfigControl($(this));
});
}
markAllConfigControls();
// Смена базового конфига:
$('.form-control.skin-base').on('change', function(){
var
action = $configWrap.data('action'),
method = 'POST',
data = {
'get_data_skin': $(this).val(),
};
$.ajax(action, {
type: method,
data: data,
success: function(data) {
console.log('AAA success ', data.data);
var
style = data.data.style,
conf = data.data.config;
// Устанавливаем стили в базовом редакторе:
editorBase.setValue(style);
editorBase.session.selection.clearSelection();
// Устанавливаем значения базового конфига:
$sizeWidth.attr('data-base', conf.size.width || '');
$sizeHeight.attr('data-base', conf.size.height || '');
$itemsCols.attr('data-base', conf.items.cols || '');
$itemsRows.attr('data-base', conf.items.rows || '');
$animationName.attr('data-base', conf.animation.name || '');
$animationLoopTimeout.attr('data-base', conf.animation.loopTimeout || '');
$logoVert.attr('data-base', conf.logo.pos.vert || '');
$logoHor.attr('data-base', conf.logo.pos.hot || '');
$logoInner.attr('data-base', conf.logo.pos.inner || '');
$logoWidth.attr('data-base', conf.logo.size.width || '');
$logoHeight.attr('data-base', conf.logo.size.height || '');
markAllConfigControls();
},
error: function(rew, status, err) {
console.log(status, err);
}
});
});
// Клик на "Редактировать", "Сохранить", "Опубликовать":
var
$editButton = $('button.btn.btn-primary.edit'),
$saveButton = $('button.btn.btn-primary.save'),
$saveControls = $('.b-save'),
$leftFade = $('.b-left-fade');
$editButton.click(function(){
$leftFade.hide();
$saveControls.show();
return false;
});
$saveButton.click(function(){
var
$form = $('#skin-create-form'),
action = $form.attr('action'),
method = $form.attr('method'),
formData = new FormData();
console.log('AAA saveButton ', action);
$.ajax(action, {
type: method,
data: formData,
cache:false,
contentType: false,
processData: false,
success: function(data) {
console.log('AAA saveButton success');
return false;
if(data) {
if(data.result === true && data.redirect) {
document.location.href = data.redirect;
}
if(data.result === false && data.msg) {
$.showMessage('error', data.msg);
}
}
},
error: function(rew, status, err) {
console.log(status, err);
$.showMessage('error', err);
}
});
return false;
});
});
\ No newline at end of file
$(document).ready(function () {
"use strict";
Array.prototype.forEach.call(document.querySelectorAll("button[data-delete]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
$.ajax(this.getAttribute("data-delete"), {
type: "POST",
item: this,
success: function (data) {
console.log(data);
if (data.result) {
document.location.reload();
}
},
error: function(req, status, err) {
console.log(status, err);
document.location.reload();
}
});
});
});
Array.prototype.forEach.call(document.querySelectorAll("button[data-link]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
document.location.href = this.getAttribute("data-link");
/*
var $this = $(this);
$.ajax({
url: $this.attr("data-link"),
type: "POST",
contentType: false,
processData: false,
data: {
manager: $this.attr("data-id")
},
successUrl: $this.attr("data-link"),
success: function(data) {
console.log('success ', data);
},
error: function (e) {
console.log('error: ', e);
}
});
*/
});
});
$('#support-create-form').on('submit', function(e) {
e.stopPropagation();
var action = $(this).attr('action');
var method = $(this).attr('method');
var formData = {};
var vals = $(this).serializeArray();
if(vals.length) {
for(var i in vals) {
formData[vals[i].name] = vals[i].value;
}
}
$.ajax(action, {
type: method,
data: formData,
success: function(data) {
if(data) {
if(data.result === true && data.redirect) {
document.location.href = data.redirect;
}
if(data.result === false && data.msg) {
$.showMessage('error', data.msg);
}
}
},
error: function(rew, status, err) {
console.log(status, err);
}
});
return false;
});
});
(function($) {
$.extend({
TeasersTemplates: {
light: _.template('' +
'<% cnt = 3; %>' +
'<% if (ads.length > cnt) ads = ads.slice(0, cnt); %>' +
'<div class="b-light m-light_160x600 m-light_active">' +
' <div class="b-light__inner">' +
' <% for (var i = 0; i < ads.length; i++) { %>' +
' <% var ad = ads[i]; %>' +
' <% if (!ad.price.trim() || ad.price == "0") {ad.price = "";} %>' +
' <div class="b-light-item">' +
' <a class="b-light-item__link" href="<%=ad.link %>" data-id="<%=ad.data_id %>">' +
' <span class="b-light-item__bg"></span>' +
' <span class="b-light-item__title"><%=ad.title %></span>' +
' <span class="b-light-item__image">' +
' <img src="<%=ad.img %>" alt="<%=ad.title %>">' +
' </span>' +
' <% if (ad.price) { %>' +
' <span class="b-light-item__price"><%=ad.price %></span>' +
' <% } %>' +
' </a>' +
' </div>' +
' <% } %>' +
' </div>' +
' </div>'
),
adaptive: _.template('' +
'<% cnt = 2; %>' +
'<% if (ads.length > cnt) ads = ads.slice(0, cnt); %>' +
'<div class="b-adaptive m-adaptive_adaptive m-adaptive_active">' +
' <div class="b-adaptive__inner" id="inner">' +
' <% for (var i = 0; i < ads.length; i++) { %>' +
' <% var ad = ads[i]; %>' +
' <div class="b-adaptive-item" style="width: 300px; height: 298px; margin: 0px 0 4px 0;">' +
' <a class="b-adaptive-item__link" href="<%=ad.link %>" data-id="<%=ad.data_id %>">' +
' <span class="b-adaptive-item__title"><%=ad.title %></span>' +
' <span class="b-adaptive-item__image" style="top: 0">'+
' <img src="<%=ad.img %>" alt="<%=ad.title %>">' +
' </span>' +
' <% if (ad.price) { %>' +
' <span class="b-adaptive-item__price"><%=ad.price %></span>' +
' <% } %>' +
' </a>' +
' </div>' +
' <% } %>' +
' </div>' +
'</div>'
),
static: _.template('' +
'<% cnt = 4; %>' +
'<% if (ads.length > cnt) ads = ads.slice(0, cnt); %>' +
'<% var skin = "common" /* "common", "select-color", "select" */ %>' +
'<div class="b-static m-static_300x600 m-static_<%=skin %>">' +
' <div class="b-static__inner">' +
' <% for (var i = 0; i < ads.length; i++) { %>' +
' <% var ad = ads[i]; %>' +
' <% if (!ad.price.trim() || ad.price == "0") { ad.price = "Купить!"; } %>' +
' <div class="b-static-item <% if (skin != \'common\' && i == 0) { %>m-static_active<% } %>">' +
' <a class="b-static-item__link" href="<%=ad.link %>" data-id="<%=ad.data_id %>">' +
' <span class="b-static-item__title"><%=ad.title %></span>' +
' <span class="b-static-item__image">' +
' <img src="<%=ad.img %>" alt="<%=ad.title %>" width="200" height="200">' +
' </span>' +
' <span class="b-static-item__description"><%=ad.text %></span>' +
' <span class="b-static-item__price"><%=ad.price %></span>' +
' </a>' +
' </div>' +
' <% } %>' +
' </div>' +
' <% if (skin != "common") { %>' +
' <div class="b-static__selectors">' +
' <% /*for (var j = 0; j < 4; j++) {*/ %>' +
' <% for (var j = 0; j < ads.length; j++) { %>' +
' <% var ad = ads[j]; %>' +
' <div class="b-static-img <% if (j == 0) { %>m-static-image_active<% } %>">' +
' <img src="<%=ad.img %>" alt="<%=ad.title %>" width="140" height="140">' +
' </div>' +
' <% } %>' +
' </div>' +
' <% } %>' +
'</div>'
),
contrast: _.template('' +
'<% var skin = "img" %>' +
'<% //var skin = "border" %>' +
' <div class="b-contrast m-contrast_300x600 m-contrast_<%=skin %>">' +
' <div class="b-contrast__inner">' +
' <% for (var i = 0; i < 4; i++) { %>' +
' <% if (!ad.price.trim() || ad.price == "0") { ad.price = "Купить!"; } %>' +
' <div class="b-contrast-item">' +
' <a class="b-contrast-item__link" href="<%=ad.link %>" data-id="<%=ad.data_id %>">' +
' <span class="b-contrast-item__title"><%=ad.title %></span>' +
' <span class="b-contrast-item__image">' +
' <img src="<%=ad.img %>" alt="<%=ad.title %>" width="140" height="140">' +
' </span>' +
' <span class="b-contrast-item__description"><%=ad.text %></span>' +
' <span class="b-contrast-item__price"><%=ad.price %></span>' +
' <% if (ad.domain) { %>' +
' <span class="b-contrast-item__domain"><%=ad.domain %></span>' +
' <% } %>' +
' </a>' +
' </div>' +
' <% } %>' +
' </div>' +
' </div>'
),
}
});
})(jQuery);
$(document).ready(function () {
"use strict";
autosize($("textarea"));
});
\ No newline at end of file
$(document).ready(function () {
"use strict";
// Array.prototype.forEach.call(document.querySelectorAll("button[data-action]"), function (el) {
// $(el).on("click", function (e) {
// location.href = this.getAttribute("data-action");
// e.stopPropagation();
// });
// });
Array.prototype.forEach.call(document.querySelectorAll("button[data-toggle]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
$.ajax(this.getAttribute(this.getAttribute("data-value")), {
type: "POST",
item: this,
success: function (data) {
if (data.result) {
var currentValue = this.item.getAttribute(this.item.getAttribute("data-value"));
if (currentValue === this.item.getAttribute("data-hide")) {
this.item.setAttribute("data-value", "data-activate");
$(this.item)
.text(this.item.getAttribute("data-activate-caption"))
.removeClass("btn-danger");
} else {
this.item.setAttribute("data-value", "data-hide");
$(this.item)
.text(this.item.getAttribute("data-hide-caption"))
.addClass("btn-danger");
}
}
console.log(data);
},
error: function(req, status, err) {
console.log(status, err);
}
});
});
});
// Клик на кнопку статистики:
/*
Array.prototype.forEach.call(document.querySelectorAll("button[data-link]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
document.location.href = this.getAttribute("data-link");
});
});
*/
$('.dropdown-toggle').dropdown();
});
\ No newline at end of file
$(document).ready(function () {
$('#user-date-create').datepicker({
format: 'yyyy-mm-dd',
language: $('#user-date-create').data('language')
});
// Добавление названия сайта в список сайтов пользователя:
/*
var siteStatusUrl = $('#user-site').data('status-url');
$('#user-site').tokenfield()
.on('tokenfield:createdtoken', function(e){
var tokenClass = '';
$.ajax(siteStatusUrl, {
method: 'POST',
async: false,
data: {
domain: e.attrs.value
},
success: function(data) {
console.log(data);
if(data && !data.isUnique) {
tokenClass = 'bg-danger';
}
}
});
if(tokenClass !== '') {
console.log(e.relatedTarget);
$(e.relatedTarget).addClass(tokenClass);
$.showMessage('info', 'Домен уже зарегистрирован');
}
return true;
})
;
*/
// Обработка списка "Провайдеры, к кодам которых у пользователя есть доступ"
(function(){
// Клик на "Редактировать" для показа списка значений вместо строки:
$('.form-group').on('click', '.edit-item', function(){
var
$this = $(this),
$wrap = $this.parents('.form-group')[0],
$valuesString = $('.values-string', $wrap),
$valuesEdit = $('.values-edit', $wrap),
$valuesItems = $('.values-items', $wrap),
$tempState = $('.temp-state', $wrap);
$tempState.empty();
$tempState.html($valuesItems.html());
CheckNoValues($this);
$this.hide();
$valuesString.hide();
$valuesEdit.show();
return false;
});
// Клик на "Добавить" значение в список:
$('.form-group').on('click', '.add-item', function(){
var
$wrap = $(this).parents('.form-group').first(),
$valuesItems = $('.values-items', $wrap),
$tplInput;
if ($wrap.hasClass('code-provider')) {
$tplInput = $('.code-provider-pattern .input-item').clone();
}
$valuesItems.append($tplInput);
CheckNoValues($(this));
return false;
});
// Клик на "Удалить" значение из списка:
$('.form-group').on('click', '.delete-input', function(){
var
$wrap = $(this).parents('.input-item'),
$items = $(this).parents('.values-items');
$wrap.remove();
CheckNoValues($items);
return false;
});
// Клик на "Отмена" показа списка:
$('.form-group').on('click', '.cancel-item', function(){
var
$wrap = $(this).parents('.form-group').first(),
$edit = $('.edit-item', $wrap),
$valuesString = $('.values-string', $wrap),
$valuesEdit = $('.values-edit', $wrap),
$valuesItems = $('.values-items', $wrap),
$tempState = $('.temp-state', $wrap);
$valuesItems.html($tempState.html());
$tempState.empty();
$edit.show();
$valuesString.show();
$valuesEdit.hide();
return false;
});
// Клик на "Сохранить" список значений:
$('.form-group').on('click', '.save-item', function(){
var
$wrap = $(this).parents('.form-group').first(),
$edit = $('.edit-item', $wrap),
$valuesString = $('.values-string', $wrap),
$valuesEdit = $('.values-edit', $wrap),
$valuesItems = $('.values-items .input-item', $wrap),
$tempState = $('.temp-state', $wrap),
dataItems = [];
$valuesItems.each(function(){
var
$this = $(this),
itemValue = $('select', $this).val(),
itemText = $("select option:selected", $this).text();
if (itemValue) {
dataItems.push(itemText);
}
});
$valuesString.empty();
dataItems.forEach(function(item){
$valuesString.append('<span>' + item + '</span> ');
});
$tempState.empty();
$edit.show();
$valuesString.show();
$valuesEdit.hide();
return false;
});
function CheckNoValues($this)
{
var
$wrap = $('.values-edit', $this.parents('.form-group')[0]),
$inputItems = $('.values-items .input-item', $wrap),
$noValues = $('.no-values', $wrap);
if ($inputItems.length) {
$noValues.hide();
} else {
$noValues.show();
}
}
})();
// Поле "Доступные сайты"
var
$inputAccessSite = $('#user-access-site'),
delimiterAccessSite = ';';
$inputAccessSite.tokenfield({delimiter: delimiterAccessSite, beautify: false});
$('.add-access-site').click(function(){
var
addSite = $('select.access-site').val(),
listAddSites = $inputAccessSite.tokenfield('getTokensList'),
dataAddSites = listAddSites.split(delimiterAccessSite);
if (dataAddSites.indexOf(addSite) == -1)
{
$inputAccessSite.tokenfield('setTokens', listAddSites + delimiterAccessSite + addSite);
}
return false;
});
var busy = false;
$('#user-form').on('submit', function(){
if(busy) {
return false;
}
var action = $(this).attr('action');
var method = $(this).attr('method');
// Формируем массив сайтов, для которых есть доступ:
var listAccessUsers = $('input#user-access-site').val();
if (!!listAccessUsers)
{
var dataAccessUsers = listAccessUsers.split(delimiterAccessSite);
$('input#user-access-site').val(JSON.stringify(dataAccessUsers));
}
// Формируем данные providers:
var
dataCodeProvider = [],
$codeProviderItems = $('.form-group.code-provider .form-control.code-provider');
$codeProviderItems.each(function(){
if ($(this).val()) {
dataCodeProvider.push(parseInt($(this).val()));
}
});
if (dataCodeProvider.length == 0) {
$('input#code-provider').val("");
} else {
$('input#code-provider').val(JSON.stringify(dataCodeProvider));
}
var data = {};
$(this).find('.form-control:not(.access-site)').each(function(){
data[$(this).attr('name')] = $(this).val();
});
$(this).find('input[type=checkbox]').filter(':checked').each(function(){
if(!data[$(this).attr('name')]) {
data[$(this).attr('name')] = [];
}
data[$(this).attr('name')].push($(this).val());
});
//console.log('AAA data = ', data);
//return false;
busy = true;
$.ajax(action, {
type: method,
data: data,
success: function(data) {
busy = false;
if(data) {
if(data.result == true && data.redirect) {
window.location.href = data.redirect;
}
if(data.result == false && data.msg) {
console.log('AAA error ', data.msg);
$.showMessage('error', data.msg);
}
}
},
error: function(ajaxObj, textStatus, textError) {
busy = false;
}
});
return false;
});
});
$(document).ready(function () {
"use strict";
function uidGenerator() {
var S4 = function () {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
};
return (S4() + S4());
}
$("[data-menu]").affix({
offset: {top: 60}
});
$(".b-content__knowledge").on("click", function (e, withoutScroll) {
var uid;
var cloned;
var dataAction = (e.toElement || e.target).getAttribute("data-action");
switch (dataAction) {
case "skill-remove":
e.stopPropagation();
$(e.toElement).parents(".b-content__knowledge-item").remove();
break;
case "skill-add":
cloned = $(".b-content__knowledge-item.hidden").clone(true, true).toggleClass("hidden");
uid = uidGenerator();
$("label[for='id-skill-new']", cloned).attr("for", uid);
$("textarea#id-skill-new", cloned).attr("id", uid);
$(".b-content__knowledge-inner").append(cloned);
if (!withoutScroll) {
$("html, body").animate({
scrollTop: cloned.offset().top - 30 //padding to avoid menu
}, 400);
}
break;
}
});
});
$(document).ready(function () {
"use strict";
Array.prototype.forEach.call(document.querySelectorAll("button[data-toggle]"), function (el) {
$(el).on("click", function (e) {
e.stopPropagation();
$.ajax(this.getAttribute(this.getAttribute("data-value")), {
type: "POST",
item: this,
success: function (data) {
if (data.result) {
var currentValue = this.item.getAttribute(this.item.getAttribute("data-value"));
if (currentValue === this.item.getAttribute("data-hide")) {
this.item.setAttribute("data-value", "data-activate");
$(this.item)
.text(this.item.getAttribute("data-activate-caption"))
.removeClass("btn-danger");
} else {
this.item.setAttribute("data-value", "data-hide");
$(this.item)
.text(this.item.getAttribute("data-hide-caption"))
.addClass("btn-danger");
}
}
console.log(data);
},
error: function(req, status, err) {
console.log(status, err);
}
});
});
});
});
\ No newline at end of file
......@@ -190,16 +190,13 @@ $(document).ready(function(){
EnableLoadingState(false);
if (res == null) {
console.log("AAA requestDataStat success res: NULL");
$chartStatInfo.show();
$chartStatError.hide();
ShowInfo();
} else if (res.status == 'Error') {
console.log("AAA requestDataStat error");
$chartStatError.show();
$chartStatInfo.hide();
ShowError();
} else {
//console.log("AAA requestDataStat SUCCESS res: ", res);
$chartStatInfo.hide();
$chartStatError.hide();
ShowChartData();
periodStatsData = res.period;
companyStatsData = res.company;
......@@ -236,4 +233,29 @@ $(document).ready(function(){
}
}
function ShowInfo()
{
$chartStatInfo.show();
$chartStatError.hide();
$chartStat.hide();
$chartTable.hide();
}
function ShowError()
{
$chartStatError.show();
$chartStatInfo.hide();
$chartStat.hide();
$chartTable.hide();
}
function ShowChartData()
{
$chartStatInfo.hide();
$chartStatError.hide();
$chartStat.show();
$chartTable.show();
}
});
\ No newline at end of file
......@@ -26,13 +26,8 @@
namespace App\Action\Admin;
use App\Entity\Offers\OfferNew;
use App\Entity\Offers\Landing;
use App\Entity\Offers\AddNew;
use App\Entity\Offers\Template;
use App\Entity\Teasers\Offer;
use App\Entity\Teasers\Partner;
use App\Entity\Teasers\Add;
use App\Entity\Feeds\StatsDay;
use App\Entity\Feeds\Transaction;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Slim\Flash\Messages;
......@@ -85,16 +80,20 @@ class SystemAction extends Common
{
$data = $request->getParsedBody();
// Перевести tpl в таблицу templates:
if ($data['tplTemplatesTable']) {
return $this->removeTplTemplatesTable($request);
// Сформировать тестовые данные для статистики по фидам:
if ($data['feedTestData']) {
return $this->renderFeedTestData($request);
}
}
/* Системные операции */
private function removeTplTemplatesTable(ServerRequestInterface $request)
private function renderFeedTestData(ServerRequestInterface $request)
{
return new JsonResponse(123);
/** @var \App\Model\Offers $landingsModel */
$landingsModel = $this->container->get(\App\Model\Offers\Landings::class);
$landings = $landingsModel->findAll();
......
......@@ -258,6 +258,10 @@ class Cabinet extends Common
break;
}
if (!$periodStats) {
return new JsonResponse(null);
}
$periodStats['type'] = 'interval';
$periodStats['report'] = $report_type;
......
......@@ -80,6 +80,10 @@ class StatsDays extends Common
. ' ORDER BY EventDate desc';
$res = $adapter->query($sql, \Zend\Db\Adapter\Adapter::QUERY_MODE_EXECUTE);
if (count($res) == 0) {
return null;
}
$stats = array(
'period' => [],
'shows' => [],
......
......@@ -35,6 +35,7 @@ $this->headScript()
->appendFile('/js/script-feeds-stat-charts.js')
->appendFile('/js/script-feeds-stat-table.js')
->appendFile('/js/script-feeds-stat.js')
->appendFile('/js/adm/service-actions.js')
;
$this->headLink()
......@@ -79,8 +80,7 @@ $colors_active_lines = array(
);
$data_request_link = $this->url('user.cabinet', ['lang' => $this->lang, 'report' => $report]);
$system_link = $this->url('adm.system.actions');
?>
......@@ -115,7 +115,9 @@ $data_request_link = $this->url('user.cabinet', ['lang' => $this->lang, 'report'
<div class="wrapp" style="position: relative;">
<div class="b-feeds-stat_data-loading"></div>
<!--
<a class="btn btn-primary service-action feed-test-data" href="<?= $system_link ?>">Сформировать тестовые данные</a>
-->
<div class="b-feeds-stat_controls form-group">
<div class="b-feeds-stat_controls-report">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment