frm[100] = {
init: function () {
debug.cnsl('init');
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.ma = data.ma;
frmo.emails = data.emails;
frmo.process.emails();
frmo.homeAs = true;
analytics.start();
});
},
process: {
emails: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('#mailTable tr').remove().clone();
var mailTable = e('mailTable');
for (var i in frmo.emails){
var em = frmo.emails[i];
var tr = e(null, mailTable, 'tr');
e(null, tr, 'td', 'table-inbox-message text-bold').innerHTML = '
'+em['subject']+'
' +
''+em['message']+'';
e(null, tr, 'td', 'table-inbox-time').innerHTML = parseDate.shortDate(em['date']);
}
}
},
};
frm[103] = {
totalSize:false,
init:function(){
var tbody = e('listBody');
this.totalSize = 0;
empty(tbody);
if(upload.postList.length) this.postList(tbody);
if(upload.inUpload) this.inUpload(tbody);
if(upload.waitList.length) this.waitList(tbody);
e('totalSize').innerHTML = formatBytes(this.totalSize);
},
waitList:function(tbody){
var tr, list = upload.waitList;
for(var l in list){
tr = e(l, tbody, 'tr');
e(null, tr, 'td').innerHTML = list[l].file.name;
e(null, tr, 'td').innerHTML = formatBytes(list[l].file.size);
e(null, tr, 'td','bg-warning-300').innerHTML = "Wait";
e(null, tr, 'td','text-right').innerHTML = e('listItemMenu').innerHTML;
this.totalSize = this.totalSize + Number(list[l].file.size);
}
},
inUpload:function(tbody){
var tr = e('inUpload', tbody, 'tr'), td,f = upload.inUpload.f.file;
e(null, tr, 'td').innerHTML = f.name;
e(null, tr, 'td').innerHTML = formatBytes(f.size);
e(null, tr, 'td','bg-success-400').innerHTML = "Uploading";
e(null, tr, 'td','text-right').innerHTML = e('listItemMenu').innerHTML;
this.totalSize = this.totalSize + Number(f.size);
},
postList:function(tbody){
var tr, list = upload.postList;
for(var l in list){
tr = e(null, tbody, 'tr');
e(null, tr, 'td').innerHTML = list[l].name;
e(null, tr, 'td').innerHTML = formatBytes(list[l].size);
e(null, tr, 'td','bg-blue').innerHTML = list[l].status;
e(null, tr, 'td');
this.totalSize = this.totalSize + list[l].size;
}
},
cancel:function(ev){
var el = ev.target;
// find id
var id = el.closest('tr').id;
if(id == "inUpload") {
upload.cancel();
upload.calculateQueue();
}
else{
upload.waitList.splice(id, 1);
upload.calculateQueue();
this.init();
}
}
};frm[105] = {
searchMinLength: 3,
init:function(){
frmo.searchInit();
frmo.buttons();
frmo.findLine = $('#listBody .findLine').html();
$('#listBody').empty();
},
searchInit: function () {
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.extParams = data['searchParams']['ext'];
frmo.searchParams.getSelect(data['searchParams']);
data['searchParams']['0'].minD = new Date(data['searchParams']['0'].minD).getTime();
data['searchParams']['0'].maxD = new Date(data['searchParams']['0'].maxD).getTime();
frmo.searchParams.getRange(data['searchParams']['0'], frmo.getHrefSearch)
});
},
search: function (i) {
var sText = $('input[name="sw"]').val();
frmo.searchQ = new Object();
frmo.searchQ = ff.toObj('searchRequest');
frmo.searchQ.mincreateDate = new Date(parseInt(frmo.searchQ.mincreateDate));
frmo.searchQ.maxcreateDate = new Date(parseInt(frmo.searchQ.maxcreateDate));
debug.cnsl(frmo.searchQ);
if (sText.length == 0 || sText.length >= frmo.searchMinLength) {
let sPAth = frmo.searchQ.clientSearchFlag == 1 ? 'client' : 'start';
j.post(['init', sPAth], function (data) {
$('.result').show();
debug.cnsl(data);
frmo.dataProcess(data);
}, frmo.searchQ);
}
else {
message('Minimum ' + frmo.searchMinLength + ' chart!', 3);
$('.result').hide();
}
},
searchParams:{
getSelect: function (data, callback) {
for (var own in data.owners){
/*if (own == sett.user.id)$('select[name="createUser"]').append('');
else */
$('select[name="createUser"]').append('');
}
for (var upd in data.updaters){
$('select[name="updateUser"]').append('');
}
for (var ex in data.ext){
$('select[name="ext"]').append('');
}
for (var ch in data.channels){
$('select[name="chid"]').append('');
}
for (var ct in data.categories){
$('select[name="ctid"]').append('');
}
for (var statCS in data.techStatuses){
$('select[name="techStatuses"]').append('');
}
if(callback)callback();
},
getRange: function (data, callback){
debug.cnsl(data);
var minPlayTime = $('input[name="minplayTime"]')[0];
var maxPlayTime = $('input[name="maxplayTime"]')[0];
var minSize = $('input[name="minsize"]')[0];
var maxSize = $('input[name="maxsize"]')[0];
var minDate = $('input[name="mincreateDate"]')[0];
var maxDate = $('input[name="maxcreateDate"]')[0];
if (data["minT"] != data["maxT"]){
minPlayTime.setAttribute('min', data["minT"]);
minPlayTime.setAttribute('max', data["maxT"]);
// minPlayTime.setAttribute('value', data["minT"]);
minPlayTime.value = data["minT"];
$('.forExt div.pTime .range_min').text(formatTime(data["minT"]));
$('.forExt div.pTime .range_max').text(formatTime(data["maxT"]));
maxPlayTime.setAttribute('min', data["minT"]);
maxPlayTime.setAttribute('max', data["maxT"]);
// maxPlayTime.setAttribute('value', data["maxT"]);
maxPlayTime.value=data["maxT"];
$('.forExt div.pTime').fadeIn();
}
else $('.forExt div.pTime').fadeOut();
if (data["minS"] != data["maxS"]) {
minSize.setAttribute('min', data["minS"]);
minSize.setAttribute('max', data["maxS"]);
// minSize.setAttribute('value', data["minS"]);
minSize.value=data["minS"];
$('.forExt div.size .range_min').text(formatBytes(data["minS"]));
$('.forExt div.size .range_max').text(formatBytes(data["maxS"]));
maxSize.setAttribute('min', data["minS"]);
maxSize.setAttribute('max', data["maxS"]);
// maxSize.setAttribute('value', data["maxS"]);
maxSize.value=data["maxS"];
$('.forExt div.size').fadeIn();
}
else $('.forExt div.size').fadeOut();
if (data["minD"] != data["maxD"]) {
$('.forExt div.date').fadeIn();
var miD = parseInt(data["minD"]);
var maD = parseInt(data["maxD"]);
minDate.setAttribute('min', miD);
minDate.setAttribute('max', maD);
// minDate.setAttribute('value', miD);
minDate.value=miD;
//minDate.setAttribute('step', '86400000');
$('.forExt div.date .range_min').text(frmo.tmstmpDate(miD));
$('.forExt div.date .range_max').text(frmo.tmstmpDate(maD));
maxDate.setAttribute('min', miD);
maxDate.setAttribute('max', maD);
// maxDate.setAttribute('value', maD);
maxDate.value=maD;
//maxDate.setAttribute('step', '86400000');
}
else $('.forExt div.date').fadeOut();
callback();
}
},
dataProcess: function (data) {
$('#listBody').empty();
var tbl = e('listBody');
if(data.allFinds>0) $('.allFinds').text('Showing ' + data.showed + ' of ' + data.allFinds + ' found');
else {
$('.allFinds').html('Nothing found');
$('.searList').fadeIn(500);
e(null, e(null, tbl, 'tr', 'findLine'), 'td')
.a('colspan', '8')
.a('style', 'text-align: center;')
.t('Nothing found, please try another search parameters or update search params and try again');
}
var line = frmo.findLine;
var el = data['searchRezult'];
if (isDefined(data['searchRezult'])) {
$('.searList').fadeIn(500);
for (var key in data.searchRezult) {
var keys = data.searchRezult[key]['id'];
var tr = e(keys, tbl, 'tr', 'findLine status' + el[key]['status'] );
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId') {
var hr = nav.link(213,[keys]);
// cont = '
';
cont = '';
}
else if (t == 'name') {
// var hr = '/media/detail/' + keys;
var hr = nav.link(213,[keys]);
cont = '' + cont + '';
}
else if (t == 'status') {
cont =
cont=='0' ? 'Not active'
: cont == '1' ? 'Normal
'
: cont == '2'? 'Link only
'
: cont == '3'? 'Server initial processing'
: cont == '4'? 'Awaiting admin processing'
: cont == '5'? 'Client task in process'
: cont == '6'? 'Coding in process'
: cont == '7'? 'Channel not active'
: cont == '10'? 'Unknown error'
: td.status;
}
else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser;
else if (t == 'playTime' && cont != null) cont = formatTime(cont);
else if (t == 'size' && cont != null) cont = formatBytes(cont);
$('#' + keys + ' td.' + t).html(cont);
}
}
e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete this MID');
}
$('.secretDelete').off().on('click', function (ev) {
local.confirmDelete.func(function (params) {
let mid = $(params.target).parents('tr.findLine')[0].id;
j.post(['delete'], function (data) {
if(data.status) {
message('Video deleted successfully', 1);
$('#'+mid).hide();
}
else message('System error!', 0);
}, {id: mid, deleteNote: params.deleteNote});
}, ev);
});
$('.midImg').off().on('mousedown', function (ev) {
debug.cnsl('mousedown');
debug.cnsl(ev.which);
if(ev.which==1){
ev.preventDefault();
ev.stopImmediatePropagation();
ev.target.src = ev.target.dataset.src;
ev.target.play();
ev.target.controls=true;
// $(ev.target).css('width', '120px');
$(ev.target).css('height', 'auto');
$(ev.target).css('min-height', '80px');
}
});
}
},
range: function (e){
if(isDefined(e))
var rangeGroup = $(e).attr('name'),
minBtn = $(e).parent().children('.min'),
maxBtn = $(e).parent().children('.max'),
range_min = $(e).parent().children('.range_min'),
range_max = $(e).parent().children('.range_max'),
minVal = parseInt($(minBtn).val()),
maxVal = parseInt($(maxBtn).val()),
rBox = $(e).parents('.rangeBox'),
value,
origin = $(e)[0].className;
if(origin === 'min' && minVal > maxVal-5) $(minBtn).val(maxVal-5);
if(origin === 'max' && maxVal-5 < minVal) $(maxBtn).val(5+ minVal);
var minVal = parseInt($(minBtn).val());
var maxVal = parseInt($(maxBtn).val());
var cls = rBox[0].className.split(' ');
if(cls.indexOf('pTime') > -1){
minVal = formatTime(minVal);
maxVal = formatTime(maxVal);
$(range_min).text(minVal);
$(range_max).text(maxVal);
}
else if(cls.indexOf('date') > -1){
$(range_min).text(frmo.tmstmpDate(minVal));
$(range_max).text(frmo.tmstmpDate(maxVal));
}
else if(cls.indexOf('size') > - 1){
minVal = formatBytes(minVal);
maxVal = formatBytes(maxVal);
$(range_min).text(minVal);
$(range_max).text(maxVal);
}
},
tmstmpDate: function(tmst){
var date = new Date(tmst);
var m = date.getMonth() + 1;
date = (date.getFullYear()+"-"+m+"-"+date.getDate());
//debug.cnsl(date);
date = parseDate.shortDate(date);
return date;
},
buttons:function () {
$('#searchMediaBtn').off().on('click', function () {
frmo.search();
});
$('input[type="range"]').on( 'input', function(e){ frmo.range(e.target)});
if(!isDefined(perValue)) var perValue = '';
$('input[name="sw"]').off()
.on('keypress', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
}})
.on('keyup', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
frmo.search();
}
var sText = $('input[name="sw"]').val();
if(perValue == '') perValue = sText;
else if(perValue != sText){
$('.result').fadeOut(500);
$('.searList').fadeOut(500);
perValue = sText;
}
});
$('#shareSearch').off().on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var link = 'https://cp.blago.tube/media/search?';
var i = 0;
for (var field in frmo.searchQ){
let val = frmo.searchQ[field];
if(field == 'maxcreateDate' || field == 'mincreateDate') val = val.getTime();
if(field != 'formId' && frmo.searchQ[field] != ""){
link += i==0 ? field+'='+encodeURIComponent(val) : '\&'+field+'='+ encodeURIComponent(val);
i++;
}
}
copyToClipboard(link);
});
},
getHrefSearch: function () {
var shData = new Array();
shData = document.location.href;
shData = decodeURI(shData);
shData = shData.split('?');
debug.cnsl(shData);
if(isDefined(shData[1])){
shData = shData[1].split('&');
for(var i in shData){
var line = new Array();
line = shData[i].split('=');
var sel = '[name="' + line[0] + '"]';
// if(line[0] == 'ext' && line[1] !='all') frmo.searchParams.getRange(frmo.extParams[line[1]]);
if((line[1] == 0 || line[1] == 1) && $(sel)[0].tagName=='INPUT') {
if (line[1] == 1) $(sel)[0].checked = 'checked';
else $(sel)[0].checked = '';
}
if(line[0] == 'clientSearchFlag' && line[1] == 1) e('fullSrchParams').classList.add('hide');
else $(sel).val(line[1]);
if (isDefined($('input[type="range"][name="' + line[0] + '"]')[0])){
frmo.range(sel);
//debug.cnsl(line[0]);
}
}
frmo.search();
}
},
getMediaIcon: function(ext) {
var icon = '';
if(ext == null) icon = "icon-folder3";
else if (ext == 'mp3') icon = "icon-music";
else if (ext == 'mp4') icon = "icon-screen3";
else if (ext == 'pdf') icon = "icon-file-pdf";
else icon = "icon-file-empty";
return icon;
}
};frm[106] = {
searchMinLength: 3,
init: function () {
frmo.search();
frmo.buttons();
frmo.findLine = $('#listBody .findLine').html();
$('#listBody').empty();
},
searchInit: function () {
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.extParams = data['searchParams']['ext'];
frmo.searchParams.getSelect(data['searchParams'], frmo.getHrefSearch);
frmo.searchParams.getRange(data['searchParams']['0'], frmo.getHrefSearch)
});
},
search: function (i) {
frmo.searchQ = ff.toObj('searchRequest');
j.post(['init', 'start'], function (data) {
$('.result').show();
debug.cnsl(data);
frmo.dataProcess(data);
}, frmo.searchQ);
},
searchParams: {
getSelect: function (data, callback) {
for (var own in data.owners) {
if (own == sett.user.id) $('select[name="createUser"]').append('');
else $('select[name="createUser"]').append('');
}
for (var upd in data.updaters) {
$('select[name="updateUser"]').append('');
}
for (var ex in data.ext) {
$('select[name="ext"]').append('');
}
for (var ch in data.channels) {
$('select[name="chid"]').append('');
}
for (var ct in data.categories) {
$('select[name="ctid"]').append('');
}
callback();
},
getRange: function (data, callback) {
debug.cnsl(data);
var minPlayTime = $('input[name="minplayTime"]')[0];
var maxPlayTime = $('input[name="maxplayTime"]')[0];
var minSize = $('input[name="minsize"]')[0];
var maxSize = $('input[name="maxsize"]')[0];
var minDate = $('input[name="mincreateDate"]')[0];
var maxDate = $('input[name="maxcreateDate"]')[0];
if (data["minT"] != data["maxT"]) {
minPlayTime.setAttribute('min', data["minT"]);
minPlayTime.setAttribute('max', data["maxT"]);
// minPlayTime.setAttribute('value', data["minT"]);
minPlayTime.value = data["minT"];
$('.forExt div.pTime .range_min').text(formatTime(data["minT"]));
$('.forExt div.pTime .range_max').text(formatTime(data["maxT"]));
maxPlayTime.setAttribute('min', data["minT"]);
maxPlayTime.setAttribute('max', data["maxT"]);
// maxPlayTime.setAttribute('value', data["maxT"]);
maxPlayTime.value = data["maxT"];
$('.forExt div.pTime').fadeIn();
}
else $('.forExt div.pTime').fadeOut();
if (data["minS"] != data["maxS"]) {
minSize.setAttribute('min', data["minS"]);
minSize.setAttribute('max', data["maxS"]);
// minSize.setAttribute('value', data["minS"]);
minSize.value = data["minS"];
$('.forExt div.size .range_min').text(formatBytes(data["minS"]));
$('.forExt div.size .range_max').text(formatBytes(data["maxS"]));
maxSize.setAttribute('min', data["minS"]);
maxSize.setAttribute('max', data["maxS"]);
// maxSize.setAttribute('value', data["maxS"]);
maxSize.value = data["maxS"];
$('.forExt div.size').fadeIn();
}
else $('.forExt div.size').fadeOut();
if (data["minD"] != data["maxD"]) {
$('.forExt div.date').fadeIn();
var miD = parseInt(data["minD"]);
var maD = parseInt(data["maxD"]);
minDate.setAttribute('min', miD);
minDate.setAttribute('max', maD);
// minDate.setAttribute('value', miD);
minDate.value = miD;
//minDate.setAttribute('step', '86400000');
$('.forExt div.date .range_min').text(frmo.tmstmpDate(miD));
$('.forExt div.date .range_max').text(frmo.tmstmpDate(maD));
maxDate.setAttribute('min', miD);
maxDate.setAttribute('max', maD);
// maxDate.setAttribute('value', maD);
maxDate.value = maD;
//maxDate.setAttribute('step', '86400000');
}
else $('.forExt div.date').fadeOut();
callback();
}
},
dataProcess: function (data) {
$('#listBody').empty();
var tbl = e('listBody');
var qty = (data.searchRezultOverMids.length ? data.searchRezultOverMids.length : 0) + (data.searchRezultOverFile.length ? data.searchRezultOverFile.length : 0);
if (data.searchRezultOverFile.length > 0 || data.searchRezultOverMids.length > 0) $('.allFinds').text(qty + ' results');
else {
$('.allFinds').html('Nothing found');
$('.searList').fadeIn(500);
e(null, e(null, tbl, 'tr', 'findLine'), 'td')
.a('colspan', '8')
.a('style', 'text-align: center;')
.t('Nothing found, please try another search parameters or update search params and try again');
}
var line = frmo.findLine;
var el = data['searchRezultOverMids'];
if (isDefined(data['searchRezultOverMids'])) {
$('.searList').fadeIn(500);
for (var key in data.searchRezultOverMids) {
var keys = data.searchRezultOverMids[key]['id'];
var tr = e(keys, tbl, 'tr', 'findLine mid status' + el[key]['status']);
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId') {
var hr = nav.link(213, [keys]);
cont = '
';
// cont = '';
}
else if (t == 'name') {
// var hr = '/media/detail/' + keys;
var hr = nav.link(213, [keys]);
cont = '' + cont + '';
}
else if (t == 'status') {
cont =
cont == '0' ? 'not active'
: cont == '1' ? 'normal
'
: cont == '2' ? 'link only
'
: 'task error';
}
else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser;
else if (t == 'playTime' && cont != null) cont = formatTime(cont);
else if (t == 'size' && cont != null) cont = formatBytes(cont);
$('#' + keys + ' td.' + t).html(cont);
}
}
e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete this MID');
}
}
var el = data['searchRezultOverFile'];
if (isDefined(data['searchRezultOverFile'])) {
$('.searList').fadeIn(500);
for (var key in data.searchRezultOverFile) {
var keys = data.searchRezultOverFile[key]['id'];
var tr = e(keys, tbl, 'tr', 'findLine file withoutDB');
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId') {
var hr = nav.link(213, [keys]);
// cont = '
';
cont = '';
}
else if (t == 'name') {
// var hr = '/media/detail/' + keys;
var hr = nav.link(213, [keys]);
cont = '' + cont + '';
}
else if (t == 'status') {
cont = cont
+ '
' +
'
';
}
else if (t == 'createDate') cont = parseDate.jsTimeStamp(cont * 1000) + '
';
else if (t == 'playTime' && cont != null) cont = formatTime(cont);
else if (t == 'size' && cont != null) cont = formatBytes(cont);
$('#' + keys + ' td.' + t).html(cont);
}
}
}
}
$('#source').off().on('change', function (ev) {
debug.cnsl(ev.target);
var sel = $('#source').val();
var mid = sel.indexOf('m') + 1;
var file = sel.indexOf('f') + 1;
if (mid && file) $('.findLine').show();
else if (mid) {
$('.findLine').hide();
$('.findLine.mid').show();
}
else if (file) {
$('.findLine').hide();
$('.findLine.file').show();
}
});
$('.secretDelete').off().on('click', function (ev) {
local.confirmDelete.func(function (params) {
let mid = $(params.target).parents('tr.findLine')[0].id;
j.post(['delete'], function (data) {
if(data.status) {
message('Video deleted successfully', 1);
$('#'+mid).hide();
}
else message('System error!', 0);
}, {id: mid, deleteNote: params.deleteNote});
}, ev);
});
$('.midImg').off().on('mousedown', function (ev) {
// debug.cnsl('mousedown');
// debug.cnsl(ev.which);
if (ev.which == 1) {
ev.preventDefault();
ev.stopImmediatePropagation();
ev.target.src = ev.target.dataset.src;
ev.target.play();
ev.target.controls = true;
$(ev.target).css('width', '200px');
$(ev.target).css('height', 'auto');
$(ev.target).css('min-height', '80px');
// $(ev.target).css('position', 'absolute');
}
});
},
fileSet: {
createMid: function (ev) {
// alert(ev.dataset.id+' нужно обсудить каким образом это будет работать');
j.post(['insert', 'createMid'], function (data) {
if (data.creaTED) {
message('Mid created successfully', 1);
window.open(nav.link(213, ev.dataset.id));
$(ev).parents('tr').remove();
}
else message('System error!', 0);
}, {mid: ev.dataset.id, createDate: ev.dataset.cdt});
},
delete: function (ev) {
j.post(['delete', 'file'], function (data) {
if (data.status == "Deleted!") {
message('File deleted successfully', 1);
$(ev).parents('tr').remove();
}
else if (!data.error) message('System error!', 0);
}, {mid: ev.dataset.id});
}
},
range: function (e) {
if (isDefined(e))
var rangeGroup = $(e).attr('name'),
minBtn = $(e).parent().children('.min'),
maxBtn = $(e).parent().children('.max'),
range_min = $(e).parent().children('.range_min'),
range_max = $(e).parent().children('.range_max'),
minVal = parseInt($(minBtn).val()),
maxVal = parseInt($(maxBtn).val()),
rBox = $(e).parents('.rangeBox'),
value,
origin = $(e)[0].className;
if (origin === 'min' && minVal > maxVal - 5) $(minBtn).val(maxVal - 5);
if (origin === 'max' && maxVal - 5 < minVal) $(maxBtn).val(5 + minVal);
var minVal = parseInt($(minBtn).val());
var maxVal = parseInt($(maxBtn).val());
var cls = rBox[0].className.split(' ');
if (cls.indexOf('pTime') > -1) {
minVal = formatTime(minVal);
maxVal = formatTime(maxVal);
$(range_min).text(minVal);
$(range_max).text(maxVal);
}
else if (cls.indexOf('date') > -1) {
$(range_min).text(frmo.tmstmpDate(minVal));
$(range_max).text(frmo.tmstmpDate(maxVal));
}
else if (cls.indexOf('size') > -1) {
minVal = formatBytes(minVal);
maxVal = formatBytes(maxVal);
$(range_min).text(minVal);
$(range_max).text(maxVal);
}
}
,
tmstmpDate: function (tmst) {
var date = new Date(tmst);
var m = date.getMonth() + 1;
date = (date.getFullYear() + "-" + m + "-" + date.getDate());
//debug.cnsl(date);
date = parseDate.shortDate(date);
return date;
}
,
buttons: function () {
$('#searchMediaBtn').off().on('click', function () {
frmo.search();
});
$('input[type="range"]').on('input', function (e) {
frmo.range(e.target)
});
if (!isDefined(perValue)) var perValue = '';
$('input[name="sw"]').off()
.on('keypress', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
}
})
.on('keyup', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
frmo.search();
}
var sText = $('input[name="sw"]').val();
if (perValue == '') perValue = sText;
else if (perValue != sText) {
$('.result').fadeOut(500);
$('.searList').fadeOut(500);
perValue = sText;
}
});
$('#shareSearch').off().on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var link = 'https://cp.blago.tube/media/search?';
var i = 0;
for (var field in frmo.searchQ) {
if (field != 'formId' && frmo.searchQ[field] != "") {
link += i == 0 ? field + '=' + frmo.searchQ[field] : '\&' + field + '=' + frmo.searchQ[field];
i++;
}
}
copyToClipboard(link);
});
}
,
getHrefSearch: function () {
var shData = new Array();
shData = document.location.href;
shData = decodeURI(shData);
shData = shData.split('?');
debug.cnsl(shData);
if (isDefined(shData[1])) {
shData = shData[1].split('&');
for (var i in shData) {
var line = new Array();
line = shData[i].split('=');
var sel = '[name="' + line[0] + '"]';
if (line[0] == 'ext' && line[1] != 'all') frmo.searchParams.getRange(frmo.extParams[line[1]]);
if ((line[1] == 0 || line[1] == 1) && $(sel)[0].tagName == 'INPUT') {
if (line[1] == 1) $(sel)[0].checked = 'checked';
else $(sel)[0].checked = '';
}
else $(sel).val(line[1]);
if (isDefined($('input[type="range"][name="' + line[0] + '"]')[0])) {
frmo.range(sel);
//debug.cnsl(line[0]);
}
}
frmo.search();
}
}
,
getMediaIcon: function (ext) {
var icon = '';
if (ext == null) icon = "icon-folder3";
else if (ext == 'mp3') icon = "icon-music";
else if (ext == 'mp4') icon = "icon-screen3";
else if (ext == 'pdf') icon = "icon-file-pdf";
else icon = "icon-file-empty";
return icon;
}
};
frm[111] = {
pagerCount: 50,
folder:'',
mailCount : 0,
page: 0,
finish: 0,
init:function(params){
// message('111 js is live');
// console.log(params);
frmo.folder = params.shift();
frmo.page = params.shift();
switch (frmo.folder) {
case 'spamList': {
frmo.get.spamList();
break;
}
case 'starredList': {
frmo.get.starredList();
break;
}
case 'trashList': {
frmo.get.trashList();
break;
}
case 'list' :{
frmo.get.list();
break;
}
default: {
nav.goTo(111,['list',0]);
break;
}
}
},
get: {
spamList:function () {
j.post(['spamList'], function (data) {
frmo.run.mailList(data);
title.insert('spamList', 'Spam mails');
$('#spamA').parent('li').addClass('active');
}, {page:frmo.page});
},
starredList:function () {
j.post(['starredList'], function (data) {
frmo.run.mailList(data);
title.insert('starredList', 'Starred mails');
$('#starredA').parent('li').addClass('active');
}, {page:frmo.page});
},
trashList:function () {
j.post(['trashList'], function (data) {
frmo.run.mailList(data);
title.insert('trashList', 'Trash mails');
$('#trashA').parent('li').addClass('active');
}, {page:frmo.page});
},
list: function () {
j.post(['init'], function (data) {
frmo.run.mailList(data);
$('#inboxA').parent('li').addClass('active');
}, {page:frmo.page});
}
},
run: {
mailList: function (data) {
// console.log(data);
frmo.run.panel(data);
var mailTable = $('#mailTable');
var mailRow = mailTable.find('tr').remove().clone();
$.each(data.mails, function (i, mail) {
mailRow.find('.table-inbox-time').text(parseDate.shortDate(mail.date));
mailRow.find('.table-inbox-subject').text(mail.subject);
mailRow.find('.table-inbox-email').text(mail.email);
mailRow.find('.table-inbox-preview').text(mail.message);
mailRow.find('.table-inbox-name div').text(mail.name);
mailRow.find('.techInfo').text(mail.techInfo);
if(mail.location != null)mailRow.find('.table-inbox-name .location').text(mail.location);
mailRow.find('.table-inbox-name .ip').text(mail.ip);
if(mail.unread == '1') mailRow.addClass('unread'); else mailRow.removeClass('unread');
if(mail.starred == '1') mailRow.addClass('starred'); else mailRow.removeClass('starred');
if(mail.spam == '1') mailRow.addClass('spam'); else mailRow.removeClass('spam');
if(mail.trash == '1') mailRow.addClass('trash'); else mailRow.removeClass('trash');
mailRow[0].id = mail.id;
mailRow.appendTo(mailTable).show();
mailRow = mailRow.clone();
});
$('.table-inbox-preview').on('click',function (e) {
// $(this).toggleClass('table-inbox-textMessage');
$(this).addClass('table-inbox-textMessage');
$('.table-inbox-message .unread').toggle();
if($(this).parents('tr').hasClass('unread')) frmo.update(e.target, 'unread');
});
$('.table-inbox-message .unreadIcon').on('click', function (e) {
frmo.update($(e.target).prev()[0], 'unread');
$(e.target).prev().toggleClass('table-inbox-textMessage');
});
},
panel:function (data) {
var unread = data.unread;
var today = data.today;
var spam = data.spam;
frmo.listCount = data.mailCount;
if(parseInt(today)>0){ $('#today').text(today);$('#todayinfo').show(); }
$('#unread').text(unread);
if(parseInt(spam)){
if(parseInt(spam)>100) spam = '99+';
$('#spam').text(spam);
}
$('#inboxA')[0].href=nav.link(111,['list',0]);
$('#starredA')[0].href=nav.link(111,['starredList',0]);
$('#spamA')[0].href=nav.link(111,['spamList',0]);
$('#trashA')[0].href=nav.link(111,['trashList',0]);
/*if(typeof frmo.mailCount != 'undefined') {
$('#inboxAll').text(frmo.mailCount);
if(parseInt(frmo.mailCount-frmo.page*50)>50) frmo.finish = parseInt(frmo.page)*50+50;
else frmo.finish = parseInt(frmo.mailCount);
$('#currentMailPagePossition').text( (parseInt(frmo.page)*50+1) + '-' + (frmo.finish) );
}*/
pagerService();
}
},
pager: {
next:function () {
nav.goTo(111,[frmo.folder,parseInt(frmo.page)+1]);
},
prev:function () {
nav.goTo(111,[frmo.folder,parseInt(frmo.page)-1]);
}
},
update:
function (e, type) {
console.log(e, type);
var id = $(e).parents('tr')[0].id;
var val = $(e).parents('tr').hasClass(type) ? 0 : 1;
console.log(id);
j.post(['update',type], function (data) {
console.log(data);
if(data.status){
message('All saved!',1);
if(type=='spam' || type =='trash') $(e).parents('tr').remove();
else $(e).parents('tr').toggleClass(type);
frmo.run.panel(data);
}
}, {id:id,val:val});
}
};
/*function pagerService() {
if(frmo.page>0) $('#pagerPrev').removeProp('disabled'); else $('#pagerPrev').prop( 'disabled', 'disabled' );
if((parseInt(frmo.page)+1) >= Math.ceil(parseInt(frmo.mailCount)/50)) $('#pagerNext').prop( 'disabled', 'disabled' ); else $('#pagerPrev').removeProp('disabled');
}*/
frm[114] = {
init: function (params) {
if (params.length > 0) {
$('#holiday').show();
j.post(['init'], function (data) {
frmo.run.sidebar(data.holidayList);
}, {});
switch (params[0]) {
case 'create': {
// frmo.loadImg(4000);
title.insert('create', 'Add holiday');
$('#addButton').show();
// Form validation
ff.validation($('#holidayForm'), frmo.ins);
break;
}
case 'edit': {
frmo.hid = (params[1]);
$('#newMid').attr('disabled', false);
frmo.getInfo.holiday(params[1]);
title.insert('edit/' + params[1], 'Edit holiday');
$('#saveButton').show();
// Form validation
ff.validation($('#holidayForm'), function () {
frmo.update.info(params[1])
});
break;
}
default:
break;
}
} else {
j.post(['init'], function (data) {
frmo.run.sidebar(data.holidayList);
frmo.run.holidaysTable(data.holidayList);
}, {});
}
frmo.searchActivate();
},
ins: function () {
var par = ff.toObj('holidayForm');
// par.imgId = document.getElementById('holImage').dataset.id;
j.post(['insert'], function (data) {
if (data.status) {
message('Holiday settings has been saved.', 1);
nav.goTo(114);
} else message('System error!', 0);
}, par);
},
update: {
activate: function (e) {
var p = e.getAttribute('id');
j.post(['update', p], function (data) {
debug.cnsl('update activate ...');
if (data.status == true) message('Holiday settings has been saved.', 1);
else if (data.status == "Duplicate entry '1-1' for key 'active_holidayOn'") {
message('Can\'t save two holidays with "Active" and "ON" statuses.', 0);
frmo.init(false);
}
else {
message('System error!', 0);
frmo.init(false);
debug.cnsl(data);
}
}, {id: $(e).parents('tr')[0].id, active: $(e)[0].checked});
},
info: function (id) {// fixCheckbox();
var parameter = ff.toObj('holidayForm');
parameter['id'] = id;
// parameter['imgId'] = document.getElementById('holImage').dataset.id;
debug.cnsl(parameter);
j.post(['update', 'info'], function (data) {
debug.cnsl(data);
if (data.status == true) message('Holiday settings has been saved.', 1);
else if (data.error == "Duplicate entry '1-1' for key 'active_holidayOn'") message('Can\'t save two holidays with "Active" and "ON" statuses.', 0);
else message('System error!', 0);
}, parameter);
}
},
del: function (e) {
// debug.cnsl();
if (confirm('Delete holiday: \n' + $(e).parents('tr').find('td:first-child').text() + ' ?'))
j.post(['del'], function () {
message('Holiday has been deleted.', 1);
$(e).parents('tr').remove();
}, {id: $(e).parents('tr')[0].id});
},
run: {
sidebar: function (list) {
var hl = $('#holidaysList').empty();
if (parseInt(frmPerms.ins)) {
$('#addLi').show();
// $('#addA')[0].href = nav.link(114, ['create']);
}
for (var h in list) {
hl.append('' + list[h].name + '');
}
enhancements.collapse.form.menu();
},
holidaysTable: function (list) {
e('holidayTbody').innerHTML = '';
var edit = parseInt(frmPerms.edit) ? '' : 'disabled=""';
var del = parseInt(frmPerms.del) ? '' : 'disabled=""';
debug.cnsl(list);
for (var h in list) {
var checkedAct = parseInt(list[h].active) ? 'checked="checked"' : '';
var checkedHol = parseInt(list[h].holidayOn) ? 'checked="checked"' : '';
var link = nav.link(frmo.id, ['edit', list[h].id]);
$('' +
// ' ![' + list[h].imageId + '](' + img.url(list[h].imgId, 50, 30) + ') | ' +
'' + list[h].startDay + '.' + (list[h].startMonth > 9 ? list[h].startMonth : '0' + list[h].startMonth) + ' | ' +
'' + list[h].endDay + '.' + (list[h].endMonth > 9 ? list[h].endMonth : '0' + list[h].endMonth) + ' | ' +
'' +
' ' +
' | ' +
'' +
' ' +
' | ' +
'' + list[h].name + ' | ' +
'' + list[h].note + ' | ' +
'' +
' ' +
' ' +
// ' ' +
' | ' +
'
').appendTo('#holidayTbody');
}
$('#holidaysTable').show();
},
holidayForm: function (h, midsList) {
debug.cnsl(h);
if (isDefined(midsList)) frmo.run.midsList(midsList);
$('#name').val(h.name);
// debug.cnsl(h.active==1);
if (h.active == 1) $('#active').attr('checked', 'checked');
else $('#active')[0].removeAttribute('checked');
if (h.holidayOn == 1) $('#holidayOn').attr('checked', 'checked');
else $('#holidayOn')[0].removeAttribute('checked');
if (h.imgId) {
// frmo.loadImg(h.imgId);
}
$('#createUser').val(h.createUser);
$('#createDate').val(parseDate.shortDate(h.createDate));
$('#updateUser').val(h.updateUser);
$('#updateDate').val(parseDate.shortDate(h.updateDate));
$('#note').val(h.note);
$('#html').val(h.html);
$('#startMonth').val(h.startMonth);
$('#startDay').val(h.startDay);
$('#endMonth').val(h.endMonth);
$('#endDay').val(h.endDay);
},
midsList: function (array) {
for (var i in array) {
e(array[i].mid, e('midsList'), 'button', 'btn delMid').a('type', 'button').t(array[i].mid).a('title', array[i].name);
}
if (Object.keys(array).length > 3) $('#newMid').attr('disabled', true);
$('#newMid ~ .msg')[0].innerText = 'You already added 4 mids';
$('.delMid').off().on('click', function (ev) {
$('.delMid').off();
var mid = ev.target.id;
debug.cnsl(mid);
j.post(['del', 'midRef'], function (data) {
debug.cnsl(data);
if (data.status) {
form.init();
//message('Mid reference deleted successfully', 1);
}
}, {mid: mid, hid: frmo.hid});
});
}
},
getInfo: {
holiday: function (id) {
j.post(['info'], function (data) {
frmo.run.holidayForm(data.holidayInfo, data.curMidsRef);
}, {id: id});
}
},
loadImg: function (imgId) {
var waitId = wait.on();
$('#holImage').off('load').on('load', function () {
wait.off(waitId);
});
document.getElementById('holImage').src = img.url(imgId, 540, 0, 'holiday');
document.getElementById('holImage').dataset.id = imgId;
},
onstorage: function (ev) {
if (ev.key == ('holidayImgId') && ev.newValue != null) {
frmo.loadImg(ev.newValue);
localStorage.removeItem(ev.key);
}
},
goToEditForm: function (obj) {
var id = $(obj).parents('tr')[0].id;
debug.cnsl(form.id);
debug.cnsl(id);
nav.goTo(form.id, ['edit', id]);
},
searchActivate: function () {
$('#newMid').off().on('keyup', function (ev) {
empty(e('hintList'));
if (ev.keyCode == 13 || !isDefined(ev.key)) {
var mid = ev.target.value;
j.post(['insert', 'mid'], function (data) {
form.init();
}, {mid: mid, hid: frmo.hid});
} else {
var inp = $('#newMid').val().trim();
if (inp.length > 2) {
j.post(['init', 'midSearch'], function (data) {
debug.cnsl(data);
var ckR = data.searchedMids;
empty(e('hintList'));
for (var id in ckR) {
e(null, e('hintList'), 'option').t(ckR[id]['name']).a('value', id);
}
}, {word: inp, hid: frmo.hid});
}
}
//debug.cnsl(ev.key);
});
}
};frm[115] = {
newRow:'',
init:function(){
j.post(['init'], function (data) {
frmo.run.anncList(data.annc);
}, {});
},
run:{
anncList: function (annc) {
frmo.newRow = $('.ann').remove().clone();
var annRow;
$.each(annc, function (i, ann) {
// console.log(ann);
annRow = frmo.newRow.clone();
// annRow[0].id = 'ann'+parseInt(ann.id);
annRow[0].id = parseInt(ann.id);
if(ann.active==parseInt(1)) annRow.find('.status input').attr('checked','checked');
else annRow.find('.status input').removeAttr('checked');
annRow.find('.text').empty().html(ann.announce).on('click',function (e) {
$(this).off();
frmo.edit.text(e.target);
});
annRow.find('.createUser').text(ann.createUser);
annRow.find('.createDate').text(parseDate.shortDate(ann.createDate));
annRow.appendTo('#anncTbody').show();
});
},
addLine:function () {
if($('#new').is('tr')) {message('Press "Add" for previos line', 3); return;}
var row = frmo.newRow.clone().show();
$(row).find('td.text').append('');
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$('#anncTbody').append(row);
}
},
update:{
active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},
text:function (e) {
var text = $(e).parents('tr').find('.text textarea').val();
j.post(['update','text'], function (data) {
if(data.status){
message('Saved!',1);
$(e).attr('disabled','disabled');
$(e).parents('tr').find('td.text').empty().text(text)
.on('click',function (e) {
$(this).off();
frmo.edit.text(e.target);
});
}
}, { id:$(e).parents('tr')[0].id, text: text});
}
},
insert:function (e) {
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
form.init();
}
}, {text: $(e).parents('tr').find('.text textarea').val()});
},
edit: {
text: function (e) {
var text = '';
if($(e).hasClass('text')) text = $(e).html();
else text = $(e).parents('.text').html();
$(e).empty().append('').show();
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id });
}
};
frm[117] = {
tempAdminData:new Array(),
userId:false,
init:function(fpath){
// form menu init
j.post(['init'], function (data) {
var a,ul = e('userList'), list = data.list;
empty(ul);
for(var i in list){
a = e(null, e(list[i].id, ul, 'li'), 'a');
a.href = nav.link(117, [list[i].id]);
a.innerHTML = list[i].lastName + ' ' + list[i].firstName;
}
enhancements.collapse.form.menu();
frmo.tempAdminData=sett.user;
}, {});
// if edit user
if(fpath.length>0 && regex.userId.test(fpath[0])){
// try go get user info
j.post(['info'], function (data){
frmo.tempAdminData = data.user;
frmo.homeForm();
document.getElementById('password').required = false;
debug.cnsl(data);
if(data.result == 1){
// assign user id to frmo
frmo.userId = data.userId;
// fill in form
frmo.process.userData(data.user);
// display loginlog
frmo.process.logData(data.loginLog);
// display permissions
frmo.process.permissions.init(data.permissions);
frmo.process.permLog(data.permLog);
// update menu
$("#"+data.userId).addClass('active');
// display needed elements for edit user
$(".hideaway").removeClass('hidden');
// display login log
}
else{
this.userId = false;
$("#newUserli").addClass('active');
// hide unneeded elements for new user
$(".hideaway").addClass('hidden');
}
}, {userId: fpath[0]});
}
else{
delete frmo.tempAdminData;
frmo.homeForm();
this.userId = false;
$("#newUserli").addClass('active');
// hide unneeded elements for new user
$(".hideaway").addClass('hidden');
}
// assign link to new user button
e('newUserA').href = nav.link(form.id);
// make sidebar collapsible
enhancements.collapse.form.sidebarCategory();
// Form validation
ff.validation(e('profileForm'), frmo.update.profile);
},
process:{
userData:function(data){
debug.cnsl(data);
title.insert(frmo.userId, data.firstName + ' ' + data.lastName);
if(parseInt(sett.user.su)==0) e('accSett').a('hidden','true');
else {
if(data.su!=0 ) var su = e('su').setAttribute('checked','checked');
if(data.active == 1) var active = e('active').setAttribute('checked','checked');
if(data.dev == 1) var dev = e('dev').setAttribute('checked','checked');
}
e('user').value = data.user;
e('firstName').value = data.firstName;
e('lastName').value = data.lastName;
e('email').value = data.email;
e('phone').value = data.phone;
e('skype').value = data.skype;
e('viber').value = data.viber;
e('createDate').value = parseDate.shortDate(data.createDate);
e('createUser').value = data.createUser;
var photoElement = e('photo');
if (data.photo == 1) photoElement.src = '/img/users/' + frmo.userId + '.jpg';
photoElement.onclick = function () {
e("photoSelect").click();
return false;
};
},
logData: function (data) {
var tr, td, tbody = e('loginLog');
empty(tbody);
for (var l in data) {
tr = e(null, tbody, 'tr');
e(null, tr, 'td').innerHTML = data[l].ip;
e(null, tr, 'td').innerHTML = parseDate.shortDate(data[l].timeStamp);
tr = e(null, tbody, 'tr');
td = e(null, tr, 'td');
td.setAttribute('colspan', 2);
td.innerHTML = data[l].location;
}
},
photo: function () {
var image = e('photoSelect').files[0];
// check for jpg
if (image.type != "image/jpeg") message("The file must be in jpeg format.", 0);
// check for size
else if (image.size > 2097152) message("The file must be less then 2MB.", 0);
// upload
else j.image(['update', 'updatePhoto'], image, function (data) {
// update
if (data.statusQR) message('User photo has been updated :)', 1);
else message('Error updating user photo :(', 0);
e('photo').src = '/img/users/' + sett.user.id + '.jpg?' + new Date().getTime();
}, {userId: e('id').value.trim()});
},
permissions:{
init:function(data){
var rows = e('permissionRows'), r,mod;
empty(rows);
rows.innerHTML = '';
for(var i in data){
r = e(null, rows, 'div', 'row withBorder');
if(mod != data[i].modName)e(null,e(null, r, 'div', 'col-md-2'),'span','text-semibold').innerHTML = data[i].modName;
else e(null, r, 'div', 'col-md-2');
e(null, r, 'div', 'col-md-4').innerHTML = ""+(data[i].id) +" - "+data[i].name;
this.chkBox(e(null, r, 'div', 'col-md-2'), data[i].allow,'p'+data[i].id);
if(data[i].allow){
this.chkBox(e(null, r, 'div', 'col-md-1'), data[i].edit,'e'+data[i].id);
this.chkBox(e(null, r, 'div', 'col-md-1'), data[i].ins,'i'+data[i].id);
this.chkBox(e(null, r, 'div', 'col-md-1'), data[i].del,'d'+data[i].id);
//this.chkBox(e(null, r, 'div', 'col-md-1'), data[i].dev,'v'+data[i].id);
}
if(data[i].dsc){
r = e(null, rows, 'div', 'row');
e(null, r, 'div', 'col-md-2');
e(null, r, 'div', 'col-md-10 text-muted text-size-small').innerHTML = data[i].dsc;
}
mod = data[i].modName;
}
},
chkBox:function(el,value,formId){
var label, input, div;
label = e(null, el, 'label', 'slsCheckbox slsCheckbox--checkbox--sm');
input = e(null, label, 'input');
input.type = 'checkbox';
input.id = formId;
input.setAttribute('onchange', "frmo.update.permission(this)");
if(sett.user.su==0) input.setAttribute('disabled','disabled');
if(value == 1) input.checked = 'checked';
e(null, label, 'div', 'slsCheckbox__indicator');
}
},
permLog:function(data){
var tr, td, tbody = e('permLog');
empty(tbody);
for (var l in data) {
tr = e(null, tbody, 'tr');
e(null, tr, 'td').innerHTML = data[l].form;
td = e(null, tr, 'td');
if(data[l].step == "p")td.innerHTML = 'Permit';
else if(data[l].step == "e") td.innerHTML = 'Edit';
else if(data[l].step == "i") td.innerHTML = 'Insert';
else if(data[l].step == "d") td.innerHTML = 'Delete';
e(null, tr, 'td').innerHTML = (data[l].v == 1 ? "Allow" : "Deny");
tr = e(null, tbody, 'tr');
td = e(null, tr, 'td');
td.setAttribute('colspan', 3);
td.innerHTML = 'By ' + data[l].createUser + ' on ' + parseDate.shortDate(data[l].timeStamp);
}
}
},
update:{
active:function(el){
j.post(['update','active'], function (data) {
if(data.result == 1)message('Account Status has been updated.', 1);
else message('There was an error updating Account Status.', 0);
}, {value:el.checked,userId:frmo.userId});
},
su:function(el){
// alert('gdfg');
j.post(['update','su'], function (data) {
debug.cnsl(data);
if(data.result == 1)message('Admin SuperUser has been updated.', 1);
else message('There was an error updating Admin SuperUser.', 0);
}, {su:ff.chkBoxVal(el),userId:frmo.userId});
},
dev:function(el){
j.post(['update','dev'], function (data) {
if(data.result == 1){
debug.cnsl(data);
message('Dev mode has been updated.', 1);
}
else message('There was an error updating Dev mode.', 0);
}, {dev:ff.chkBoxVal(el),userId:frmo.userId});
},
profile:function(){
var targetPath, obj={
user:e('user').value.trim(),
pass:e('password').value.trim(),
firstName:e('firstName').value.trim(),
lastName:e('lastName').value.trim(),
email:e('email').value.trim(),
phone:e('phone').value.trim(),
skype:e('skype').value.trim(),
viber:e('viber').value.trim(),
homeForm:e('homeForm').value.trim()
};
debug.cnsl(obj);
// alert('view console');
if(frmo.userId){
targetPath = ['update', 'profile'];
obj.userId = frmo.userId;
}
else targetPath = ['insert', 'profile'];
debug.cnsl(targetPath);
j.post(targetPath, function (data) {
debug.cnsl(data);
if (data.result == 1) {
if (data.userId != frmo.userId) message('New Profile has been created', 1);
else {
message('Profile #' + frmo.userId + ' has been updated', 1);
if(data.warning) message(data.warning, 3);
}
nav.goTo(form.id, [data.userId]);
}
else if (data.profileExists == 1) message("User name exists, profile has not been saved.", 3);
else message("There was an error with Profile", 3);
}, obj);
return false;
},
photo: function () {
var image = e('photoSelect').files[0];
// check for jpg
if (image.type != "image/jpeg") message("The file must be in jpeg format.", 0);
// check for size
else if (image.size > 2097152) message("The file must be less then 2MB.", 0);
// upload
else j.image(['update', 'photo'], image, function (data) {
// update
if (data.statusQR) message('User photo has been updated :)', 1);
else message('Error updating user photo :(', 0);
e('photo').src = '/img/users/' + frmo.userId + '.jpg?' + new Date().getTime();
}, {userId: frmo.userId});
},
permission:function(el){
j.post(['update', 'permission'], function (data) {
if(data.result == 1){
frmo.process.permissions.init(data.permissions);
frmo.process.permLog(data.permLog);
}
else message('Error updating permission', 0);
}, {id: el.id, value: el.checked, userId:frmo.userId});
},
defPerm:function(){
if(confirm('Are you sure want to set default permissions for this user?\nWARNING: This action delete all another permissions!'))j.post(['update', 'setDEFpermissions'], function (data) {
if(data.result == 1){
message('Account #' + frmo.userId + ' was updated ',1);
frmo.init([frmo.userId]);
}
else message('Account #' + frmo.userId + ' can\'t be updated.',3);
}, {userId:frmo.userId, baseUserId: 1000});
}
},
del:function(){
j.post(['del'], function (data) {
if(data.result == 1){
message('Account #' + data.userId + ' deleted :(',1);
nav.goTo(form.id);
}
else message('Account #' + data.userId + ' can\'t be deleted.',3);
}, {userId:frmo.userId});
},
homeForm:function () {
var x = e('homeForm');
empty(x);
for (var f2 in sett.forms){
var option = document.createElement("option");
option.text = f2 + ' - ' + sett.forms[f2];
option.value = f2;
if((isDefined(frmo.tempAdminData) && frmo.tempAdminData.homeForm==f2) || (!isDefined(frmo.tempAdminData) && f2==124)) {
option.selected = "true";
debug.cnsl(sett.user,f2);
}
x.add(option);
}
}
};// uses script.js
// uses validate.min.js
frm[124] = {
init: function () {
j.post(['init'], function (data) {
frmo.process.userData(data.userData);
frmo.process.logData(data.loginLog);
frmo.process.homeForm(data.userData.homeForm, data.userForms);
// set validation objects on
ff.validation(e('passwordForm'), frmo.update.password);
ff.validation(e('profileForm'), frmo.update.profile);
if(!localStorage.homeFormMsg) document.querySelector('.homeFormMsg').classList.remove('hidden');
}, {});
},
process: {
userData: function (data) {
e("nameFull").innerHTML = data.firstName + ' ' + data.lastName;
var photoElement = e('photo');
if (data.photo == 1)photoElement.src = '/img/users/' + sett.user.id + '.jpg';
photoElement.onclick = function () {
e("photoSelect").click();
return false;
};
for (var f in data) e(f).value = data[f];
e('createDate').value = parseDate.shortDate(data.createDate);
},
logData: function (data) {
var tr, td, tbody = e('loginLog');
empty(tbody);
for (var l in data) {
tr = e(null, tbody, 'tr');
e(null, tr, 'td').innerHTML = data[l].ip;
e(null, tr, 'td').innerHTML = parseDate.shortDate(data[l].timeStamp);
tr = e(null, tbody, 'tr');
td = e(null, tr, 'td');
td.setAttribute('colspan', 2);
td.innerHTML = data[l].location;
}
},
homeForm:function (startForm, formList) {
var x = e('homeForm');
empty(x);
for (var f2 in formList){
var option = document.createElement("option");
option.text = f2+' - ' + formList[f2];
option.value = f2;
if(startForm==f2) {
option.selected = true;
}
x.add(option);
}
}
},
update: {
password: function () {
j.post(['updatePassword'], function (data) {
if (data.result == 1) {
message('Password Updated', 1);
e('passwordForm').reset();
frmo.init();
}
else message("There was an error updating your password", 3);
}, {pass: e('password').value.trim()});
return false;
},
profile: function () {
j.post(['updateProfile'], function (data) {
if (data.result == 1) {
message('Your Profile has been updated', 1);
frmo.init();
}
else message("There was an error updating your Profile", 3);
}, ff.toObj('profileForm'));
return false;
},
photo: function () {
var image = e('photoSelect').files[0];
// check for jpg
if (image.type != "image/jpeg") message("The file must be in jpeg format.", 0);
// check for size
else if (image.size > 2097152) message("The file must be less then 2MB.", 0);
// upload
else j.image(['updatePhoto'], image, function (data) {
// update
if (data.result == 1) message('User photo has been updated :)', 1);
else message('Error updating user photo :(', 0);
e('photo').src = '/img/users/' + sett.user.id + '.jpg?' + new Date().getTime();
}, {});
}
}
};
frm[125] = {
init:function(){
j.post(['init'], function (data) {
frmo.run.adminGrid(data.admins);
}, {});
},
run:{
adminGrid: function (admins) {
// debug.cnsl(admins);
var adminTempl = $('.admindiv').remove().clone();
$.each(admins, function (i, admin) {
var admindiv = adminTempl.clone();
if(admin.su==0) admindiv.find('.isAdmin').hide();
if(admin.su==1) admindiv.find('.isAdmin').show();
var photo = parseInt(admin.photo) == 1 ? '/img/users/' + admin.id + '.jpg' : '/img/placeholder.jpg';
//admindiv.find('.photo a')[0].href = photo;
admindiv.find('.photo img')[0].src = photo;
admindiv[0].id = 'admin'+parseInt(admin.id);
admindiv.find('.adminName').text(admin.firstName+' '+admin.lastName);
admindiv.find('.adminEmail').html(''+admin.email+'');
if (admin.viber!='') admindiv.find('.contacts').append('Viber: '+admin.viber+'');
if (admin.skype!='') admindiv.find('.contacts').append('Skype: Start chat('+admin.skype+')');
if (admin.phone!='') admindiv.find('.contacts').append('Phone: '+admin.phone+'');
admindiv.appendTo('#adminGrid');
})
}
}
};frm[126] = {
yId: false,
init:function(params){
if(params[0]=='ytManual'){
frmo.yId = params[1];
}
else frmo.yId = false;
j.post(['init'], function (data) {
if(isDefined(data.yIdInfo)){
if(data.yIdInfo!=null){
frmo.yIdInfo = data.yIdInfo;
document.querySelector('#uplArea .panel-title').innerHTML = "Upload video file for youTubeLog: \""+data.yIdInfo.yTitle+"\"";
document.getElementById('note').value = "Uploaded by "+sett.user.name+" manually from YouTube - https://www.youtube.com/watch?v="+frmo.yId+"\n";
e('yTitle').a('value',data.yIdInfo.yTitle);
e('yId').a('value',frmo.yId);
e('activeFlag').checked = data.yIdInfo.activeFlag==1;
e('linkOnlyFlag').checked = data.yIdInfo.linkOnlyFlag==1;
}
else{
message('This youtube video already uploaded or you have no permissions for this action', 3);
}
}
var cats = document.getElementById('ctid');
var selected = false;
var isYT = isDefined(data.yIdInfo) && data.yIdInfo!=null;
for (var ct in data.cats) {
selected = isYT && data.yIdInfo.ctid == data.cats[ct].id
cats.options[cats.options.length] = new Option(data.cats[ct].name, data.cats[ct].id, selected, selected);
}
var chans = document.getElementById('chid');
for (var ch in data.channels) {
selected = isYT && data.yIdInfo.chid == data.channels[ch].id
chans.options[chans.options.length] = new Option(data.channels[ch].name, data.channels[ch].id, selected, selected);
}
frmo.uploadUnlock();
}, frmo.yId?{yId:frmo.yId}:{});
$('#noteForm select').off().on('change', function () {
frmo.uploadUnlock();
});
},
uploadUnlock: function (){
var sel = $('#noteForm select');
if(sel[0].value != 'false' && sel[1].value != 'false'){
$('#uplArea').removeClass('panel-collapsed');
$('.rotate-180').removeClass('rotate-180');
$('.panel-body').removeClass('hidden');
$('.panel-body').show();
}
},
upload:function(el){
debug.cnsl(el,el.files);
var formData = ff.toObj('noteForm');
upload.process(el.files,this.uploadCallback,formData);
},
uploadBtn:function(){
debug.cnsl('Upload button clicked');
e("fileSelect").click();
},
drag:function(ev){
ev.stopPropagation();
ev.preventDefault();
$(ev.target).removeClass('dragover');
//ev.target.style.borderColor = '#cf4';
var formData = ff.toObj('noteForm');
upload.process(ev.dataTransfer.files,this.uploadCallback,formData);
},
uploadCallback:function(params){
params.formId = 126;
debug.cnsl(params);
j.post(['insert','upload'], function (data,params) {
if(isDefined(data.success)){
message(''+params.name + ' has been uploaded.', 1);
if(isDefined(data.youTubeStatus)) {
if(data.youTubeStatus) message('All youtube data copied success', 1);
else message('Something went wrong with youTube API', 3);
if(form.id == 126) nav.goTo(161);
}
}
else message('Error while uploading ' + params.name);
}, params);
}
};frm[127] = {
init: function () {
j.post(['init'], function (data) {
debug.cnsl(data);
}, {});
},
import: function () {
var link = document.getElementsByName('importUrl')[0].value;
j.post(['insert', 'import'], function (data) {
if(isDefined(data.success)){
message(''+ data.filename + ' has been uploaded.', 1);
}
else message('Error while uploading ' + data.filename);
}, {link: link});
},
upload:function(el){
debug.cnsl(el,el.files);
var formData = ff.toObj('noteForm');
upload.process(el.files,this.uploadCallback,formData);
},
uploadBtn:function(){
debug.cnsl('Upload button clicked');
e("fileSelect").click();
},
drag:function(ev){
ev.stopPropagation();
ev.preventDefault();
$(ev.target).removeClass('dragover');
var formData = ff.toObj('noteForm');
upload.process(ev.dataTransfer.files,this.uploadCallback,formData);
},
uploadCallback:function(params){
params.formId = 127;
debug.cnsl(params);
j.post(['insert','upload'], function (data,params) {
if(isDefined(data.success)){
message(''+params.name + ' has been uploaded.', 1);
}
else message('Error while uploading ' + params.name);
}, params);
}
};frm[128] = {
modulesList:'',
init:function(){
if(!isDefined(frmo.newRow))frmo.newRow = $('.forma').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.modulesList = data.modulesList;
frmo.modulListSelect=frmo.runModulListSelect('modId');
frmo.formIdList = frmo.formIdDatalist(data.forms, 'formIdList');
frmo.run.formsList(data.forms);
}, {});
},
run:{
formsList: function (forms) {
$('#formsTbody').empty();
var formaRow;
$.each(forms, function (i, forma) {
formaRow = frmo.newRow.clone();
formaRow[0].id = parseInt(forma.id);
formaRow[0].className = parseInt(forma.modId.replace(/\D+/g,""));
$.each(forma,function (fieldName,val) {
var td = $(formaRow).find('.'+fieldName);
if(fieldName=='icon') td.html(' '+val+'');
if(fieldName=='active'||fieldName=='menuActive') {
if(val==1)td.find('input[name="'+fieldName+'"]').attr('checked','checked');
else td.find('input[name="'+fieldName+'"]').removeAttr('checked','checked');
}
else td.text(val);
});
formaRow.find('td.editable').on('click',function (e) {
$(this).off();
frmo.edit.td(e.target);
});
formaRow.appendTo('#formsTbody').show();
});
//$('#modId').remove();
if(!isDefined($('select[name="modId"]')[0])){
$('#formsTable').prepend(''
+ frmo.formIdList + frmo.modulListSelect + '
');
}
$('#formsTable .topLine .modId').off().on('change', function () {frmo.search();});
$('#formIdSelect').off().on('input', function () {frmo.search();});
},
addLine:function (e) {
var did = isDefined($(e).parents('tr')[0]) ? $(e).parents('tr')[0].id : false;
if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;}
var row = frmo.newRow.clone().show();
$(row).find('td.editable').not('.textarea').not('.selector').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('num','').trim();
var type = $(v).hasClass('num') ? 'number' : 'text';
debug.cnsl(fieldName,type);
$(v).append('');
});
$(row).find('td.editable.selector').append(frmo.runModulListSelect('modId'));
$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});
$(row).find('button:not(.add):not(.cancel), .status *').remove();
$(row).find('button.add').show();
$(row).find('button.cancel').show();
$(row)[0].id = 'new';
if(did){
$(row).find('td.id')[0].innerText = 'Duplicate from '+did;
$(row)[0].dataset.did = did;
}
$(row).css('background-color','#8fbc8f');
$('#formsTbody').prepend(row);
$("html, body").animate({ scrollTop: 0 }, 1000);
//$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}
},
update:{
td:function (e,a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData+' debug');
j.post(['update','all'], function (data) {
debug.cnsl(typeof data.status);
if(data.status == true){
message('Saved!',1);
var line = $('#'+id).children('td');
for(var i=0; line.length > i; i++){
if(line[i].classList.contains('editable')){
var area = $(line[i]).children('input, select, textarea')[0];
if( isDefined(area)){
debug.cnsl(area.tagName);
if(area.tagName=="SELECT")line[i].innerHTML=frmo.modulesList[area.value]+' - '+area.value;
else line[i].innerHTML=area.value;
}
}
}
//if(!a)frmo.init();
}
else if (typeof data.status=="string" && data.status.indexOf('Duplicate')+1) {
message('You should use unique order key for each category!', 0);
}
else{
message('Has not been saved!(',0);
}
debug.cnsl(data);
}, formData);
}
},
insert:function (e) {
var formData = ff.toObj('new');
if (isDefined($(e).parents('#new')[0].dataset.did)) formData['did'] = $(e).parents('#new')[0].dataset.did;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
debug.cnsl(data);
if (data.status == true) {
message('Saved!', 1);
frmo.init();
}
else if (!data.status && data.error.indexOf('Duplicate')+1) {
message('You should use unique order key for each category!', 0);
$('#new').css('background-color','#deb887');
}
else {
message('Not saved!', 0);
}
}, formData );
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName=='') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable','').replace('num','').replace('textarea','').replace('selector','').trim();
debug.cnsl(fieldName);
$(e).empty();
if( $(e).hasClass('num') ) $(e).append('');
else if( $(e).hasClass('textarea') ) $(e).append('');
else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
else if($(e).not('.textarea, .selector')) $(e).not('.textarea').append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
debug.cnsl(data);
if (data.status==true) {
message('Deleted.');
$(e).parents('tr').remove();
}
else if(data.status.indexOf('cpFormRelations')+1) message('Can\'t delete this form. Delete relations for this form first on \'Form Relations\', and then try it again', 3);
else if(data.status.indexOf('cpLibFormRef')+1) message('Can\'t delete this form. Delete relations for this form first on \'Libs Relations\', and then try it again', 3);
else if(data.status.indexOf('analog')+1) message('Can\'t delete this form. Delete its analog from form list, and then try it again', 3);
}, {id: $(e).parents('tr')[0].id });
},
runModulListSelect: function (name) {
var select = '';
select += '';
return select;
},
formIdDatalist: function (data, name) {
var area = '';
area += '';
return area;
},
search: function () {
var modId = $('.modId').val();
var fid = $('#formIdSelect').val();
if(fid!='') fid='[id^="'+fid+'"]';
else fid='';
if(modId!='all') modId='.'+modId;
else modId = '';
if(modId!='' || fid!=''){
$('#formsTable tbody tr').hide();
if ($('#formsTable tbody tr'+fid+modId).length==0) $('.nothingMsg').show();
else {
$('#formsTable tbody tr'+fid+modId).show();
$('.nothingMsg').hide();
}
}
else{
$('#formsTable tbody tr').show();
$('.nothingMsg').hide();
}
}
};
frm[129] = {
// modulesList:'',
init:function(){
if(!isDefined(this.newRow))this.newRow = $('.module').clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.modulesList = data.modulesList;
frmo.modulListSelect = frmo.runModulListSelect('parentModule');
frmo.run.modulesList(data.modules);
}, {});
},
run:{
modulesList: function (modules) {
empty(e('modulesTbody'));
var moduleRow;
$.each(modules, function (i, module) {
moduleRow = frmo.newRow.clone();
moduleRow[0].id = parseInt(module.id);
$.each(module,function (fieldName,val) {
var td = $(moduleRow).find('.'+fieldName);
if(fieldName=='icon') td.html(' '+val+'');
else if(fieldName=='parentModule') {val = !parseInt(val) ? 'Root - '+val : frmo.modulesList[parseInt(val)]+' - '+val; td.text(val);}
else td.text(val);
});
moduleRow.find('td.editable').on('click',function (e) {
$(this).off();
frmo.edit.td(e.target);
});
moduleRow.appendTo('#modulesTbody').show();
});
},
addLine:function () {
if($('#new').is('tr')) {message('Press "Add" for previous line', 3); return;}
var row = frmo.newRow.clone().show();
/*
var fieldName = $(e)[0].className.replace('editable','').replace('num','').trim();
if (fieldName=='') fieldName = $(e).parents('td')[0].className.replace('editable','').replace('num','').trim();
$(row).find('td.editable').not('.num').append('');
$(row).find('td.editable.num').append('');*/
$(row).find('td.editable').not('.id').not('.selector').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('num','').trim();
var type = $(v).hasClass('num') ? 'number' : 'text';
console.log(fieldName,type);
$(v).append('');
});
$(row).find('td.editable.selector').append($(frmo.modulListSelect));
// .append('');
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color','#8fbc8f');
$('#modulesTbody').append(row);
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}
},
update: {
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td: function (e) {
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (isDefined(formData['id'])) {
formData['newId'] = formData['id'];
formData['id'] = id;
}
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
debug.cnsl(data);
if (data.status) message('Saved!', 1);
else message('Not saved!', 2);
frmo.run.modulesList(data.modules);
}, formData);
}
},
insert:function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color','#deb887');
}
}, formData );
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className.replace('editable','').replace('num','').trim();
if (fieldName=='') fieldName = $(e).parents('td')[0].className.replace('editable','').replace('num','').trim();
debug.cnsl(fieldName);
$(e).empty();
/* if( $(e).hasClass('num') ) $(e).append('');
else $(e).append('');*/
if( $(e).hasClass('num') ) $(e).append('');
else if( $(e).hasClass('textarea') ) $(e).append('');
else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
else if($(e).not('.textarea, .selector')) $(e).not('.textarea').append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
else message('Not deleted!',0);
}, {id: $(e).parents('tr')[0].id });
},
runModulListSelect: function (name) {
var select = '';
select += '';
return select;
}
};
// Для того чтобы выбрать картинку при переходе на эту форму, достаточно указать параметр через юрл
// например при переходе по ссылке https://cp.blagodat.com/images/gallery/slider/13
// при выборе картинки будет создана запись в localStorage: [sliderImgId13: id выбраной картинки]
// если в параметрах юрл число не указано: https://cp.blagodat.com/images/gallery/slider/13
// то в localStorage будет: [sliderImgId: id выбраной картинки]
// В КОДЕ МЕНЯТЬ НИЧЕГО НЕ НУЖНО!!!!!
// если хотите добавить какие-то условия для проверки, создайте их через switch/case в коде функции selector.init();
// на форме, сохранение картинки реализовать можно следующим образом, вместо slider (sliderImgId) и frmo.slideId указав используемый параметр в юрл:
/*
onstorage: function (ev) {
if (ev.key == 'newsletterImgId' && ev.newValue != null) {
frmo.updateImg(ev.newValue);
localStorage.removeItem(ev.key);
}
}
*/
frm[133] = { // Gallery class
limit: 24, // for start grid items
searchMinLength: 2, // minimum for run search
gallery: '',
searchPhrase: '',
searchCat: -1,
selectorBtnPath: false, // window open for select image
selector: {
init: function (params) {
frmo.selectorBtnPath = params[0];
frmo.selectorBtnText = 'Select image for ' + params[0];
frmo.selectorId = isDefined(params[1]) ? parseInt(params[1]) ? parseInt(params[1]): params[1]: '';
switch (params[0]) {
case 'mid': {
if (!regex.mid.test(params[1])) console.error('This mid is not valid');
break;
}
}
},
apply: function (ev) {
var newImgId = $(ev).parents('.imageBlock')[0].id;
localStorage.setItem(frmo.selectorBtnPath + 'ImgId' + frmo.selectorId, newImgId);
window.close();
}
},
init: function (params) {
if (isDefined(params) && params.length > 0) {
frmo.selector.init(params);
}
frmo.effectsMultiselect = this.imgEffectsMultiselect('effects');
if (!isDefined(frmo.newBlock)) frmo.newBlock = $('.imageBlock').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.imgCatsList = data.imgCatsList;
// SEARCH
$('.searchLine').append(frmo.imgCatsListSelect('catId', 'searchimgCatId'));
$('#searchimgCatId').off().on('change', function () {
frmo.search()
});
$('#searchButton').off().on('click', function () {
frmo.search();
});
$('#notUsedSearch').off().on('change', function (ev) {
frmo.search();
});
$('#search').off()
.on('keypress', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
}
})
.on('keyup', function (e) {
if (e.which == 13) {
frmo.search();
}
});
// end SEARCH
frmo.dataProcess(data);
}, {});
},
/* if (frmo.selectorBtnPath) {
$(".caption-overflow span").remove();
imageBlock.find('.selectImageFor').removeAttr('style')
.html('');
imageBlock.find('.getId').hide();
}*/
run: {
galleryGrid: function (empty) {
empty = isDefined(empty) ? empty : true;
if (empty) $('#galleryGrid').empty();
var imageBlock, i = 1, image;
// $.each(frmo.gallery, function (id, image) {
while (image = frmo.gallery.shift()) {
// debug.cnsl(image);
imageBlock = frmo.newBlock.clone();
imageBlock[0].id = parseInt(image.id);
var name = (image.dsc != null) ? image.dsc.replace(' ', '+') : "null";
imageBlock.find('.basic__img').load(function (e) {
// debug.cnsl('loaded');
$(e.target).fadeIn(1500);
}).attr('src', frmo.imgUrl(image.id, name, 'p'));
if (frmo.selectorBtnPath) {
// imageBlock.find(".caption-overflow span").remove();
imageBlock.find('.caption-overflow div')
.html('');
imageBlock.find('.getId').hide();
}
imageBlock.find('.image--large').attr('src', frmo.imgUrl(image.id, name, 'f'));
imageBlock.find('.data-id').text(parseInt(image.id));
if (frmPerms.del == 0) imageBlock.find('.del').hide();
if (frmPerms.update == 0) imageBlock.find('.editable').removeClass('editable');
// заполнение основного блока
$.each(image, function (fieldName, val) {
var item = $(imageBlock).find('.' + fieldName);
if (fieldName == 'dsc' && frmo.searchPhrase != '') {
val = val.replace(new RegExp(frmo.searchPhrase, "ig"), '' + frmo.searchPhrase + '');
item.html(val);
} else
item.text(val);
});
// for Code block
// debug.cnsl(image.width,image.height);
imageBlock.find('.effects').append(frmo.effectsMultiselect);
imageBlock.find('input[name="width"]').val(image.width);
imageBlock.find('input[name="height"]').val(image.height);
/*if (frmo.selectorBtnPath) {
imageBlock.find('.selectImageFor').removeAttr('style')
.html('');
imageBlock.find('.getId').hide();
}*/
// заполнение Info-блока
var item = $($(imageBlock).find('.info tbody'));
$.each(image, function (fieldName, val) {
// if (fieldName != 'dsc') {
if (fieldName == 'createDate' || fieldName == 'lastUsed') val = parseDate.shortDate(val);
if (fieldName == 'size') val = formatBytes(val, 1);
item.append('' +
'' +
'| ' + fieldName + ' | ' +
'' + val + ' | ' +
'
' +
'');
});
if (isDefined(frmo.imageNotUse[image.id])) imageBlock.addClass('notUse');
imageBlock.appendTo('#galleryGrid').fadeIn(500);
// Limiter for item count
if (i >= frmo.limit) break;
else i++;
}
var $cell = $('.image__cell');
$cell.find('.image--basic').on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var $thisCell = $(e.target).closest('.image__cell');
if ($thisCell.hasClass('is-collapsed')) {
$cell.not($thisCell).addClass('is-collapsed').removeClass('is-expanded');
$thisCell.addClass('is-expanded').removeClass('is-collapsed');
} else {
$thisCell.addClass('is-collapsed').removeClass('is-expanded');
}
});
$cell.find('.expand__close').on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var $thisCell = $(e.target).closest('.image__cell');
$thisCell.addClass('is-collapsed').removeClass('is-expanded');
});
$('input[name="height"]').on('blur', function (e) {
saveRatio($(e.target).parents('.imageBlock')[0].id, 'H');
});
$('input[name="width"]').on('blur', function (e) {
saveRatio($(e.target).parents('.imageBlock')[0].id, 'W');
});
$('input[name="ratio"]').on('mouseup', function (e) {
saveRatio($(e.target).parents('.imageBlock')[0].id, 'W');
});
frmo.edit.dsc();
frmo.edit.imgCategory();
$('.replaceimgId button').off().on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var parBlock = $(e.target).parents('.imageBlock');
var sImId = parBlock[0].id;
var rImId = parBlock.find('.replaceimgId input[type="number"]').val();
var del = ff.chkBoxVal(parBlock.find('.replaceimgId input.del[type="checkbox"]')[0]);
debug.cnsl(sImId, rImId, del);
j.post(['update', 'replImg'], function (data) {
debug.cnsl(data);
}, {sImId: sImId, rImId: rImId, del: del});
});
}
},
update: {
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
message('Saved.', 1);
if (!a) form.init();
}
else message('No saved!(', 0);
}, formData);
},
catsImg: function (e) {
var imgId = $(e).parents('.imageBlock')[0].id;
var status = ff.chkBoxVal(e);
j.post(['update', 'catImg'], function (data) {
debug.cnsl(data);
if (data.status) message('Saved!', 1);
else message('Error on save!', 0);
}, {catId: $(e).val(), status: status, imgId: imgId});
}
},
insert: function (e) {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
if ($(e).hasClass('text')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
},
dsc: function () {
// debug.cnsl( 'set Edit dsc' );
$('h6').off().on('click', function (e) {
var DSC = $(e.target);
$(e.target).off();
if (frmPerms.edit == 1) {
var id = $(e.target).parents('.imageBlock')[0].id;
debug.cnsl(id);
var input = $('');
$('#' + id + ' h6').html(input);
$('.dsc input').on('keypress', function (e) {
if (e.which == 13) {
var dsc = $(e.target).val();
debug.cnsl(dsc);
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
DSC.text(dsc);
frmo.edit.dsc();
}
else message('Not saved!', 0);
}, {dsc: dsc, id: id});
}
});
}
else message('No Update Permissions', 0);
});
},
imgCategory: function () {
$('.catsImg td.val span').off().on('click', function (e) {
var imgId = $(e.target).parents('.imageBlock')[0].id;
$(e.target).parent('td').html(frmo.imgCatsListMulticheckbox(imgId));
});
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('.imageBlock').remove();
}
else {
message('This image has a reference and can\'t be deleted.', 3);
debug.cnsl('Not deleted');
debug.cnsl(data);
}
}, {id: $(e).parents('.imageBlock')[0].id});
},
imgUrl: function (id, name, t) {
if (t == 'p') var url = img.url(id, frmo.size.preview.width, frmo.size.preview.height, name);
else if (t == 'f') var url = img.url(id, frmo.size.full.width, frmo.size.full.height, name);
return url;
},
size: {
preview: {
width: 252,
height: 200,
unit: 'px'
},
full: {
// width: 756,
// height: 600,
height: 420,
width: 500,
widthpr: 90,
heightpr: 85,
unit: '%'
},
get pw() {
return frmo.size.preview.width + frmo.size.preview.unit;
},
get ph() {
return frmo.size.preview.height + frmo.size.preview.unit;
},
get fw() {
return frmo.size.full.widthpr + frmo.size.full.unit;
},
get fh() {
return frmo.size.full.heightpr + frmo.size.full.unit;
}
},
getCode: function (e) {
var id = $(e).parents('.imageBlock')[0].id;
var width = $('#' + id + ' input[name="width"]').val();
var height = $('#' + id + ' input[name="height"]').val();
var filters = new Object();
$.each($('#' + id + ' .filtersContainer input'), function (i, item) {
filters[parseInt(item['name'])] = ff.chkBoxVal(item);
});
var code = img.encode(id, width, height, filters);
copyToClipboard(code);
debug.cnsl(href = imgServer + code + "/consoleLog.jpg");
return code;
},
search: function () {
var searchParam = {};
frmo.searchCat = parseInt($('#searchimgCatId').val());
frmo.searchPhrase = $('#search').val();
var count = frmo.searchPhrase.length;
if (count >= frmo.searchMinLength || count == 0) {
if (frmo.searchPhrase == '') searchParam = {
catId: frmo.searchCat,
notUsed: $('#notUsedSearch')[0].checked
};
else searchParam = {
dsc: frmo.searchPhrase,
notUsed: $('#notUsedSearch')[0].checked,
catId: frmo.searchCat
};
var searchPath = isNaN(frmo.searchPhrase) ? ['init', 'search'] : ['init', 'search', 'byId'];
j.post(searchPath, function (data) {
debug.cnsl(data);
frmo.dataProcess(data);
}, searchParam);
}
else {
message('minimum ' + frmo.searchMinLength + ' characters!', 3);
}
},
dataProcess: function (data) {
if (data.images) {
prepareGallery(data);
// debug.cnsl(data);
frmo.run.galleryGrid();
$(window).off("scroll").on("scroll", function () {
if ($(window).scrollTop() > $(document).height() - $(window).height() - 60 && $('#f133').is('div')) {
//Пользователь долистал до низа страницы
debug.cnsl('Пользователь долистал до низа страницы');
frmo.run.galleryGrid(false);
}
});
}
else {
message('Not found', 3);
$('#galleryGrid').empty().append('No images found ...
Try change request. ');
}
},
imgCatsListSelect: function (name, id) {
var select = '';
id = 'id="' + id + '" ' || ' ';
select += '';
return select;
},
imgCatsListMulticheckbox: function (imgId) {
var div = '';
var checked = '';
var activeCheckbox = frmo.catsImg[parseInt(imgId)];
div += '';
$.each(frmo.imgCatsList, function (id, name) {
if (parseInt(id) != 100) {
if (isDefined(activeCheckbox[parseInt(id)])) checked = ' checked = "checked" ';
else checked = '';
div += '';
}
});
div += '
';
return div;
},
imgEffectsMultiselect: function (name) {
var select = '';
select += '';
return select;
},
getImgId: function (e) {
debug.cnsl('getimgId!');
var id = $(e).parents('.imageBlock')[0].id;
copyToClipboard(id);
debug.cnsl(id);
return id;
}
};
function copyToClipboard(data) {
var $temp = $("");
$("body").append($temp);
$temp.val(data).select();
document.execCommand("copy");
message('Copied to clipboard!', 1);
$temp.remove();
}
function saveRatio(id, changedElem) {
var width = $('#' + id + ' input[name="width"]').val();
var height = $('#' + id + ' input[name="height"]').val();
if (!isDefined(width) || !isDefined(height)) message('Fields Width & Height are empty!', 0);
if (width < 10 || height < 10) message('Fields Width & Height can`t be less then 10 ', 0);
if (width > frmo.galleryCopy[id].width || height > frmo.galleryCopy[id].height) {
width = frmo.galleryCopy[id].width;
height = frmo.galleryCopy[id].height;
$('#' + id + ' input[name="width"]').val(width);
$('#' + id + ' input[name="height"]').val(height);
message('Width & Height can`t be more then original image size - ' + width + '*' + height + '.
' +
'Values were reset to max values!', 0);
}
if ($('#' + id + ' input[name="ratio"]')[0].checked) {
var h = $('#' + id + ' input[name="height"]');
var w = $('#' + id + ' input[name="width"]');
if (changedElem == 'H') {
/* Y = h.val();
X = Math.round((W * Y) / H);
w.val(X);*/
w.val(ratio.h(id, h.val()));
}
if (changedElem == 'W') {
/*Y = w.val();
X = Math.round((H * Y) / W);
h.val(X);*/
h.val(ratio.w(id, w.val()));
}
}
}
var ratio = {
construct: function (id) {
this.H = frmo.galleryCopy[id].height;
this.W = frmo.galleryCopy[id].width;
},
h: function (id, Y) {
ratio.construct(id);
return Math.round((this.W * Y) / this.H)
},
w: function (id, Y) {
ratio.construct(id);
return Math.round((this.H * Y) / this.W)
}
};
function prepareGallery(data) {
frmo.gallery = new Array();
frmo.galleryCopy = new Object();
var images = data.images;
for (var i in images) {
images[i].width = parseInt(images[i].width);
images[i].height = parseInt(images[i].height);
images[i].size = parseInt(images[i].size);
images[i].id = parseInt(images[i].id);
frmo.galleryCopy[images[i].id] = images[i];
}
frmo.gallery = images;
frmo.imageNotUse = data.imageNotUse;
frmo.catsImg = data.catsImg;
}frm[134] = {
searchMinLength: 3,
init: function () {
frmo.search();
// frmo.buttons();
frmo.findLine = $('#listBody .findLine').html();
$('#listBody').empty();
},
search: function (i) {
frmo.searchQ = ff.toObj('searchRequest');
j.post(['init', 'start'], function (data) {
$('.result').show();
debug.cnsl(data);
frmo.dataProcess(data);
}, frmo.searchQ);
},
dataProcess: function (data) {
$('#listBody').empty();
var tbl = e('listBody');
var qty = (data.searchRezultOverMids.length ? data.searchRezultOverMids.length : 0) + (data.searchRezultOverFile.length ? data.searchRezultOverFile.length : 0);
if (data.searchRezultOverFile.length > 0 || data.searchRezultOverMids.length > 0) $('.allFinds').text(qty + ' results');
else {
$('.allFinds').html('Nothing found');
$('.searList').fadeIn(500);
e(null, e(null, tbl, 'tr', 'findLine'), 'td')
.a('colspan', '8')
.a('style', 'text-align: center;')
.t('Nothing found, please try another search parameters or update search params and try again');
}
var line = frmo.findLine;
var el = data['searchRezultOverMids'];
if (isDefined(data['searchRezultOverMids'])) {
$('.searList').fadeIn(500);
for (var key in data.searchRezultOverMids) {
var keys = data.searchRezultOverMids[key]['id'];
var tr = e(keys, tbl, 'tr', 'findLine mid');
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId') {
cont = '
';
}
else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser;
else if (t == 'size' && cont != null) cont = formatBytes(cont);
$('#' + keys + ' td.' + t).html(cont);
}
}
e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete this MID');
}
}
var el = data['searchRezultOverFile'];
if (isDefined(data['searchRezultOverFile'])) {
$('.searList').fadeIn(500);
for (var key in data.searchRezultOverFile) {
var keys = data.searchRezultOverFile[key]['id'];
var tr = e(keys, tbl, 'tr', 'findLine file withoutDB');
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId') {
var hr = nav.link(213, [keys]);
cont = '
';
}
else if (t == 'name') {
// var hr = '/media/detail/' + keys;
var hr = nav.link(213, [keys]);
cont = '' + cont + '';
}
else if (t == 'status') {
cont = cont
+ '
' +
'
';
}
else if (t == 'createDate') cont = parseDate.jsTimeStamp(cont * 1000) + '
';
else if (t == 'size' && cont != null) cont = formatBytes(cont);
$('#' + keys + ' td.' + t).html(cont);
}
}
}
}
$('#source').off().on('change', function (ev) {
debug.cnsl(ev.target);
var sel = $('#source').val();
var mid = sel.indexOf('m') + 1;
var file = sel.indexOf('f') + 1;
if (mid && file) $('.findLine').show();
else if (mid) {
$('.findLine').hide();
$('.findLine.mid').show();
}
else if (file) {
$('.findLine').hide();
$('.findLine.file').show();
}
});
$('.secretDelete').off().on('click', function (ev) {
var mid = $(ev.target).parents('tr.findLine')[0].id;
if (confirm('Delete this image?')) {
j.post(['delete'], function (data) {
if (data.status) {
message('Image deleted successfully', 1);
$('#' + mid).hide();
}
else message('System error!', 0);
}, {id: mid});
}
});
},
fileSet: {
createMid: function (ev) {
// alert(ev.dataset.id+' нужно обсудить каким образом это будет работать');
j.post(['insert', 'createMid'], function (data) {
if (data.creaTED) {
message('Mid created successfully', 1);
window.open(nav.link(213, ev.dataset.id));
$(ev).parents('tr').remove();
}
else message('System error!', 0);
}, {mid: ev.dataset.id, createDate: ev.dataset.cdt});
},
delete: function (ev) {
j.post(['delete', 'file'], function (data) {
if (data.status == "Deleted!") {
message('File deleted successfully', 1);
$(ev).parents('tr').remove();
}
else if (!data.error) message('System error!', 0);
}, {mid: ev.dataset.id});
}
}
};frm[135] = { //class Upload Image
params: {
minWidth: 300,
minHeight: 300
},
canvas: '',
imgParams: {
sourceWidth: "",
sourceHeight: "",
contain: true,
meta: true,
orientation: 1,
crop: true,
canvas: true,
crossOrigin: true,
noRevoke: true
},
selectorBtnPath: false, // window open for select image
selector: {
init: function (params) {
frmo.selectorBtnPath = params[0];
frmo.selectorBtnText = 'Select image for ' + params[0];
frmo.selectorId = isDefined(params[1]) ? params[1] : '';
switch (params[0]) {
case 'mid': {
if (!regex.mid.test(params[1])) console.error('This mid is not valid');
break;
}
}
},
apply: function (imgId) {
localStorage.setItem(frmo.selectorBtnPath + 'ImgId' + frmo.selectorId, imgId);
window.close();
}
},
init: function (fpath) {
if (isDefined(fpath) && fpath.length > 0) {
frmo.selector.init(fpath);
}
var form = $('form.dropzone');
frmo.i = 0;
if (!isDefined(window.FileReader))
form.find('.dz-message span').html('Not supported browser!(').addClass('error');
else {
frmo.dropzone = form;
frmo.fDSC = $('#fDSC');
j.post(['init'], function (data) {
frmo.imgCatsList = data.imgCatsList;
frmo.fDSC.prepend(frmo.imgCatsListSelect('catId')).val(100);
});
form[0].addEventListener('dragover', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
debug.cnsl('dragover');
frmo.dropzone.addClass('dz-drag-hover');
}, false);// for design
form[0].addEventListener('dragleave', function () {
debug.cnsl('dragleave');
frmo.dropzone.removeClass('dz-drag-hover');
});// for design
form[0].addEventListener('drop', function (event) {
event.stopPropagation();
event.preventDefault();
frmo.images = event.dataTransfer.files;
frmo.prepareImg();
}, false);// chromes
form.on('click', function () {
$('').on('change', function () {
frmo.images = this.files;
frmo.prepareImg();
}).click();
});
}
},
import: function () {
var link = document.getElementsByName('importUrl')[0].value;
j.post(['insert', 'import'], function (data) {
if (isDefined(data.filename)) {
frmo.image = cpBaseUrl+"tmp/" + data.filename;
frmo.fDSC.find('*[name="dsc"]').val(data.filename.replace('.jpg', ''));
$('.dwnldZone').fadeOut(100);
frmo.loadImg(function () {
j.post(['delete', 'importImg'], function (data) {
}, {filename: data.filename});
});
}
else message('Error while uploading', 0);
}, {link: link});
},
prepareImg: function () {
debug.cnsl(frmo.images);
if (!isDefined(frmo.images[frmo.i])) form.init();
var image = frmo.images[frmo.i];
var good = true;
frmo.image = image;
debug.cnsl(image);
// check for jpg
if (image.type != "image/jpeg") {
message("The file -" + image.name + "- must be in jpeg format.", 0);
good = false;
}
// check for size
else if (image.size > 11097152) {
message("The file -" + image.name + "- must be less then 10MB.", 0);
good = false;
}
// show img in web page
else {
frmo.dropzone.fadeOut(100);
frmo.DSC();
}
frmo.last = parseInt(frmo.i + 1) == frmo.images.length ? true : false;
if (!good) {
frmo.dropzone.removeClass('dz-drag-hover');
if (frmo.last) {
frmo.dropzone.fadeIn(1000);
// frmo.fDSC.fadeOut(100);
}
else {
frmo.i++;
frmo.prepareImg();
}
}
},
imageToServer: function () {
// upload
var image = frmo.canvas.toDataURL('image/jpeg');
var params = ff.toObj('fDSC');
if (frmo.canvas.width >= frmo.params.minWidth && frmo.canvas.height >= frmo.params.minHeight) {
params['width'] = frmo.canvas.width;
params['height'] = frmo.canvas.height;
params['size'] = frmo.image.size;
j.image(['insert', 'image'], image, function (data) {
debug.cnsl(data);
if (data.result == 1) {
if (frmo.selectorBtnPath) {
frmo.selector.apply(data.imgId)
}
// update
else {
message('Image has been uploaded', 1);
frmo.dropzone.removeClass('dz-drag-hover');
if (frmo.last) {
frmo.dropzone.fadeIn(1000);
frmo.fDSC.fadeOut(100);
}
else {
frmo.i++;
frmo.prepareImg();
}
}
}
else message('Error uploading image.', 0);
}, params);
}
else message('Image must be ' + frmo.params.minWidth + '*' + frmo.params.minHeight + 'px or more. Your image is ' + frmo.canvas.width + '*' + frmo.canvas.height + ' You can upload another image here', 0);
},
DSC: function () {
frmo.fDSC.find('*[name="dsc"]').val(frmo.image.name.replace('.jpg', ''));
frmo.fDSC.find('*[name="catId"]').val(100);
frmo.loadImg(function () {
debug.cnsl('loadImg sucsess!');
if (frmo.canvas.width < frmo.params.minWidth || frmo.canvas.height < frmo.params.minHeight)
message('Image must be ' + frmo.params.minWidth + '*' + frmo.params.minHeight + 'px or more. Your image is ' + frmo.canvas.width + '*' + frmo.canvas.height + ' You can upload another image here', 0);
});
},
loadImg: function (callback) {
var image = frmo.image;
// frmo.fDSC.fadeOut();
frmo.fDSC.find('.preview').remove();
loadImage(
image,
function (img) {
if (img.type === "error") {
debug.cnsl("Error loading image " + image);
} else {
debug.cnsl(img);
frmo.fDSC.prepend($(img).addClass('preview').attr('title', image.name)).find('.preview')[0].id = 'preview';
frmo.fDSC.fadeIn(500);
frmo.canvas = img;
if (isDefined(callback)) callback();
}
},
frmo.imgParams
);
},
applyToImg: function (e) {
debug.cnsl($(e));
debug.cnsl($(e).attr('name'));
debug.cnsl($(e).val());
var name = $(e).attr('name');
var val = name == 'orientation' ? parseInt($(e).val()) : $(e).val();
frmo.imgParams[name] = val;
frmo.loadImg();
},
imgCatsListSelect: function (name, id) {
var select = '';
id = 'id="' + id + '" ' || ' ';
select += '';
return select;
}
};frm[136] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.filter').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
if(isDefined(data.cats))frmo.run.catList(data.cats);
if(!!parseInt(path.slice(-1)[0])) frmo.run.addLine(parseInt(path.slice(-1)[0]));
}, {});
},
run: {
catList: function (filters) {
$('#filtersTbody').empty();
var filterRow;
$.each(filters, function (i, filter) {
filterRow = frmo.newRow.clone();
filterRow[0].id = parseInt(filter.id);
$.each(filter, function (fieldName, val) {
var td = $(filterRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(val);
td.text(val);
});
filterRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
filterRow.appendTo('#filtersTbody').show();
});
},
addLine: function (imgId) {
if ($('#new').is('tr')) {
message('Press "Add" for previos line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.textarea').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('textarea', '').trim();
$(v).append('');
});
var imgId = imgId || '';
$(row).find('td.imgId').append('');
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#filtersTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
td: function (e) {
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
debug.cnsl(data);
message('Saved!', 1);
frmo.run.catList(data.cats);
}
else message('Not saved!(', 0);
}, formData);
}
},
insert: function (e) {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
nav.goTo(form.id);
}
else {
message('Img can\'t be added, maybe this imgID does not exist', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('textarea', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
if ($(e).hasClass('text')) $(e).append('');
if ($(e).hasClass('textarea')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
}
};frm[150] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.filter').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.catList(data.cats);
}, {});
},
run: {
catList: function (filters) {
$('#filtersTbody').empty();
var filterRow;
$.each(filters, function (i, filter) {
filterRow = frmo.newRow.clone();
filterRow[0].id = parseInt(filter.id);
$.each(filter, function (fieldName, val) {
var td = $(filterRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(val);
td.text(val);
});
filterRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
filterRow.appendTo('#filtersTbody').show();
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Press "Add" for previos line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
$(v).append('');
});
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#filtersTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
td: function (e) {
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
debug.cnsl(data);
message('Saved!', 1);
frmo.run.catList(data.cats);
}
else message('Not saved!(', 0);
}, formData);
}
},
insert: function (e) {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
if ($(e).hasClass('text')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
}
};
frm[160] = {
popup:false,
init: function () {
j.post(['init'], function (data) {
for (var a in data.cats) {
if(data.cats[a]['id'] == data.ctidDef)e(null, e('ctid'), 'option').h(data.cats[a]['name']).a('value', data.cats[a]['id']).a('selected', 'selected');
else e(null, e('ctid'), 'option').h(data.cats[a]['name']).a('value', data.cats[a]['id']);
}
for (var a in data.channels) {
if(data.channels[a]['id'] == data.chidDef)e(null, e('chid'), 'option').h(data.channels[a]['name']).a('value', data.channels[a]['id']).a('selected', 'selected');
else e(null, e('chid'), 'option').h(data.channels[a]['name']).a('value', data.channels[a]['id']);
}
}, {});
frmo.setEvents();
frmo.processField();
},
processField:function () {
if (isDefined(getUrlParameter('v')))$('#yId')[0].value = getUrlParameter('v');
if (isDefined(getUrlParameter('i')))$('#copyImage')[0].value = getUrlParameter('i');
},
setEvents: function () {
$('button.save').off().on('click', function () {
console.count('button.save click');
if(e('yId').value == '' && !ff.chkBoxVal(e('massUpload'))) {
message('YouTube code - can\'t be empty!',0);
return false;
}
else if(ff.chkBoxVal(e('massUpload')) && e('yIds').value=="") {
message('YouTube codes - can\'t be empty!',0);
return false;
}
let yId, i, formdata = ff.toObj('uploadYoutube');
j.post(['insert'], function (data) {
let status = true;
for (let r of data.results) {
if(!r.status) {
message(r.error, 3);
status = false;
}
else message(r.msg, 1);
}
if (status) {
if (ff.chkBoxVal($('#massUpload'))) $('#yId,#yIds').toggle();
$('#uploadYoutube')[0].reset();
}
}, formdata);
// }
});
}
};
function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'),
sParameterName,
i;
for (i = 0; i < sURLVariables.length; i++) {
sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] === sParam) {
return sParameterName[1] === undefined ? true : sParameterName[1];
}
}
}frm[161] = {
pagerCount: 200,
dataSeted: false,
searchInit: 1,
init: function (params) {
frmo.page = params != 0 ? params.shift() : 0;
if (getUrlParameter('ylId')) frmo.ylId = getUrlParameter('ylId');
if (isDefined(frmo.searchParams)) {
// e('createUserSelector').t(frmo.createUserSelector);
// $('#createUserSelector').val(frmo.searchParams.userId);
$('#statusSelect').val(frmo.searchParams.status);
$('#searchInput').val(frmo.searchParams.sw);
// debug.cnsl('h');
frmo.search();
} else {
frmo.search();
}
$('#searchBtn').off().on('click', function (ev) {
frmo.page = 0;
frmo.search();
});
$('#searchInput').off().on('keydown', function (ev) {
if (ev.keyCode == 13) {
ev.preventDefault();
ev.stopImmediatePropagation();
frmo.searchParams.sw = ev.target.value;
frmo.page = 0;
frmo.search();
}
});
$('#statusSelect').off().on('change', function (ev) {
frmo.searchParams.status = ev.target.value;
frmo.page = 0;
frmo.search();
});
$('#createUserSelector').off().on('change', function (ev) {
frmo.searchParams.userId = ev.target.value;
frmo.page = 0;
frmo.search();
});
},
userList: function (users) {
for (var t in users) {
if (t == sett.user.id) {
e(null, e('createUserSelector'), 'option')
.t(users[t])
.a('value', t)
.a('selected');
frmo.search();
} else e(null, e('createUserSelector'), 'option')
.t(users[t])
.a('value', t);
}
frmo.createUserSelector = document.getElementById('createUserSelector').innerHTML;
},
run: function (data) {
frmo.dataSeted = true;
$('#yTable').empty();
for (var keys in data) {
var line = data[keys];
var id = line['id'];
var tr = e(id, e('yTable'), 'tr', line['isOwner'] == 1 ? 'owner' : 'notOwner');
var order = new Array('mid', 'yTitle', 'yChannel', 'createDate', 'updateDate');
for (var i in order) {
var columnName = order[i];
// line[columnName] = !isDefined(line[columnName]) || line[columnName] == null ? 'loading...' : line[columnName];
let text = '';
switch (columnName) {
case 'createDate':
case 'updateDate': {
text = isDefined(line[columnName]) && line[columnName] != '' ?
(parseDate.shortDate(line[columnName]) + '
' + (columnName == 'createDate' ? line['createUser'] : line['updateUser']))
: '';
break;
}
case 'mid': {
text = '';
if (line['image'] != null)
text = '';
// text = '
';
text = text + '' + line[columnName] + '';
$('#' + line['id'] + ' .mid').prepend(text);
break;
}
case 'yTitle': {
text = '';
let vId = line['yId'];
let url = 'https://www.youtube.com/watch?v=' + vId;
if (line[columnName] != 0) text = text + '' + line[columnName] + '';
else text = text + '' + url + '
';
if (line['note'] != '' && line['note'] != null) text = text + 'Note: ' + line['note'] + '
';
break;
}
case 'yChannel': {
let url = 'https://www.youtube.com/channel/' + line['yChannelId'];
text = '' + line[columnName] + '';
break;
}
default: {
text = line[columnName];
break;
}
}
e(null, tr, 'td', columnName).innerHTML = text;
}
switch (line['status']) {
// Yid error
case '0': {
e(null, tr, 'td', 'actions').innerHTML = '' +
'';
e(id).className += ' error';
$('#' + id + ' .actions').prepend('error
');
break;
}
// Yid pending
case '1': {
e(null, tr, 'td', 'actions').innerHTML = '' +
' ' +
'
' +
'
'
;
e(id).className += ' pending';
$('#' + id + ' .actions').prepend('pending
');
break;
}
// In process
case '2': {
e(null, tr, 'td', 'actions');
e(id).className += ' inProcess';
$('#' + id + ' .actions').prepend('inProcess
');
break;
}
// Added or deleted after add
case '3': {
if (line['mid'] == 'loading...') {
e(null, tr, 'td', 'actions').innerHTML = 'Deleted
' +
' ';
e(id).className += ' deleted';
} else e(null, tr, 'td', 'actions').innerHTML = '' +
'';
/*$('#'+id+' .actions').prepend('Deleted
');*/
break;
}
// Blocked mid (yId)
case '4': {
e(null, tr, 'td', 'actions').innerHTML = 'Blocked
' +
'
';
e(id).className += ' deleted';
break;
}
// Deleted as duplicate
case '5': {
e(null, tr, 'td', 'actions').innerHTML = 'Duplicate
(deleted)';
e(id).className += ' duplicate';
break;
}
// Mid linkOnly
case '7': {
e(null, tr, 'td', 'actions').innerHTML = 'link Only
' +
'';
e(id).className += ' linkOnly';
break;
}
// Mid not active
case '8': {
e(null, tr, 'td', 'actions').innerHTML = 'Not active
';
e(id).className += ' notActive';
break;
}
// Channel not active
case '9': {
e(null, tr, 'td', 'actions').innerHTML = 'Channel not active
';
e(id).className += ' chNotActive';
break;
}
// Server processing
case '10': {
e(null, tr, 'td', 'actions').innerHTML = 'Processing in progress
';
e(id).className += ' chNotActive';
break;
}
default:
break;
}
}
frmo.events();
},
events: function () {
$('.midImg').off().on('mousedown', function (ev) {
if (ev.which == 1) {
ev.preventDefault();
ev.stopImmediatePropagation();
ev.target.src = ev.target.dataset.src;
ev.target.play();
ev.target.controls = true;
// $(ev.target).css('width', '120px');
$(ev.target).css('height', 'auto');
$(ev.target).css('min-height', '80px');
}
});
$('.yTitle a').off().on('click', function (ev) {
ev.target.innerHTML = '';
});
},
importList: function () {
// get pending data
j.post(['init', 'pending'], function (data) {
if (data.txt != null) {
var textFile = null;
var data = new Blob([data.txt], {type: 'text/plain'});
if (textFile !== null) {
window.URL.revokeObjectURL(textFile);
}
textFile = window.URL.createObjectURL(data);
var link = document.getElementById('youTubeListLink');
link.href = textFile;
link.click();
}
}, {});
},
delete: function (ev) {
local.confirmDelete.func(function (params) {
let p = $(params).parents('tr')[0].id;
j.post(['delete'], function (data) {
if (data.status) {
$("#" + p + " button").hide();
$("#" + p + " span.status").text('Blocked');
$("#" + p).css('background-color', '#ccc');
} else {
debug.cnsl(data);
message('System Error', 0)
}
}, {id: p, deleteNote: params.deleteNote});
}, ev);
},
delMidDuplicate: function (ev) {
let parId = ev.closest('tr').id;
let equalMid = prompt('Do you want to delete this MID and mark it as duplicate in YouTube log?\nPlease enter equal mid:');
if (parseInt(equalMid) >= 100000)
j.post(['delete'], function (data) {
debug.cnsl(data);
if (data.status) {
$("#" + parId + " button").hide();
$("#" + parId + " span.status").text('Marked as duplicate');
$("#" + parId).css('background-color', '#92e6f1');
}
}, {id: parId, equalMid: parseInt(equalMid), markAsDuplicate: 1});
else if (equalMid) message('This mid is not valid', 3);
},
addAgain: function (ev) {
debug.cnsl(ev);
var p = $(ev).parents('tr')[0].id;
j.post(['update'], function (data) {
if (data.status) {
$("#" + p + " button").hide();
$("#" + p + " span.status").text('Pending');
$("#" + p).css('background-color', 'lightgoldenrodyellow');
} else message('System Error', 0)
}, {id: p, status: 1});
},
reloadApiData: function (ev) {
const logId = ev.closest('tr').id;
j.post(['update', 'apiData'], function (data) {
debug.cnsl(data);
if (data.status) frmo.search();
}, {id: logId});
},
pager: {
next: function () {
nav.goTo(parseInt(form.id), [parseInt(frmo.page) + 1]);
},
prev: function () {
nav.goTo(parseInt(form.id), [parseInt(frmo.page) - 1]);
}
},
search: function () {
frmo.searchParams = {
userId: frmo.searchInit == 1 && !isDefined(frmo.ylId) ? sett.user.id : isDefined(frmo.ylId) ? 'all' : frmo.searchParams.userId,
status: $('#statusSelect').val(),
sw: $('#searchInput').val(),
page: frmo.page,
pagerCount: frmo.pagerCount,
init: 0
};
if (isDefined(frmo.ylId)) {
frmo.searchParams.sw = frmo.ylId;
$('#searchInput').val(frmo.ylId);
delete frmo.ylId;
}
debug.cnsl(frmo.searchParams);
j.post(['init', 'search'], function (data) {
frmo.searchInit = 0;
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(161));
}
// debug.cnsl(data);
if (isDefined(data.Count)) {
if (!frmo.createUserSelector) {
debug.cnsl(data.users);
for (var t in data.users) {
if (t == data.userId) {
e(null, e('createUserSelector'), 'option')
.t(data.users[t])
.a('value', t)
.a('selected');
// frmo.search();
} else e(null, e('createUserSelector'), 'option')
.t(data.users[t])
.a('value', t);
}
frmo.createUserSelector = document.getElementById('createUserSelector').innerHTML;
} else {
e('createUserSelector').t(frmo.createUserSelector);
document.getElementById('createUserSelector').value = data.userId;
}
frmo.listCount = data.Count;
frmo.run(data.sList);
pagerService();
if (frmo.listCount == 0) message('Not found', 3);
} else {
message('System Error', 3)
}
// debug.cnsl(data);
}, frmo.searchParams);
}
};frm[162] = Object.create(frm[161]);frm[163] = {
init: function () {
j.post(['init'], function (data) {
if(isDefined(data.YTUC)){
debug.cnsl(data);
var UScr = "var head = document.getElementsByTagName('HEAD')[0];\n" +
"var script = document.createElement('script');\n" +
"script.src = 'https://blago.tube/sync/BD.js';\n" +
"head.appendChild(script);\n" +
"var settedUC = '"+data.YTUC+"';";
document.getElementById('userJs').value = UScr;
}
}, {});
}
};frm[164] = {
init: function (path) {
frmo.id=parseInt(path);
// frmo.events.infoSaveButton();
var params = new Object();
if (isDefined(path[0])) params.mid = parseInt(path[0]);
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.details=data.details;
frmo.catsList=data.imgCatsList;
frmo.activeCats=data.imgCatsUse;
frmo.imgUse=data.imageUse;
frmo.run.articleCatsListBox();
}, {imgId:path[0]||4000});
},
run: {
infoPanel: function () {
var parentMid, info = frmo.details;
if(isDefined(frmo.imgUse) && frmo.imgUse.length!=0){
$.each(frmo.imgUse, function (mid, val) {
var block = e('using');
var el = e(null, block, 'button', 'goMid btn');
el.innerHTML=''+ val['useId'];
el.title=val['title'];
el.dataset.ext = val['ext'];
el.type='button';
});
$('#using').show();
}
else $('#using').html('This image isn\'t using').show();
$('#fileInfo').show(500).find('#form').hide()[0].id = 'settingsForm';
var formInfo = $('#settingsForm');
$.each(info, function (name, val) {
if (name == 'size' && val != null) val = formatBytes(val, 1);
if ((name == 'createDate') && val != null) val = parseDate.shortDate(val);
formInfo.find('*[name="' + name + '"]').val(val);
});
for( var i in frmo.activeCats) {
$('#catId').find('#'+i).attr('checked','checked');
}
$('#thisImg')[0].src = img.url(frmo.id, 0, 0);
formInfo.fadeIn(500);
frmo.events();
},
articleCatsListBox: function () {
var box = '';
box += '';
$('#catId').html(box);
frmo.run.infoPanel();
}
},
events: function () {
$('.goMid').off().on('click', function (e) {
var mid = e.target.innerText;
switch (e.target.dataset.ext){
case 'holiday': {
window.open(nav.link(114, 'edit/'+mid));
break;
}
case 'channel': {
window.open(nav.link(249, mid));
break;
}
case 'slide': {
window.open(nav.link(148, mid));
break;
}
case 'article': {
window.open(nav.link(108, mid));
break;
}
case 'author': {
window.open(nav.link(127));
break;
}
case 'manualLock': {
window.open(nav.link(136));
break;
}
default:
window.open(nav.link(213, mid));
break;
}
});
$('.save').off().on('click', function (e) {
var data = ff.toObj('settingsForm');
data['id'] = String(frmo.id);
data['formId'] = "133";
debug.cnsl(data);
j.post(['update', '164'], function (data) {
if (data.status) {
message('Saved', 1);
}
else message('Not saved!(', 0);
}, data);
});
$('#catId input[type="checkbox"]').on('click',function (e) {
debug.cnsl(ff.chkBoxVal(e.target));
var params = {
imgId: String(frmo.id),
catId: $(e.target)[0].id,
formId: "133",
status: ff.chkBoxVal(e.target)
};
debug.cnsl(params);
j.post(['update', 'catImg'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Image category updated', 1);
}
else {
message('Error updating image category', 0);
}
}, params);
});
$('#thisImg').off().on('click', function (ev) {
var X = ev.offsetX / (ev.target.width/100);
var Y = ev.offsetY / (ev.target.height/100);
$('*[name="centerX"]').val(X);
$('*[name="centerY"]').val(Y);
e('save').click();
frmo.clearCache();
});
$('.delImg').off().on('click', function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
nav.goTo(133);
} else {
message('This image has a reference and can\'t be deleted.', 3);
debug.cnsl('Not deleted');
debug.cnsl(data);
}
}, {id: frmo.id,formId:133});
});
$('input[name="rImId"]').off().on('keyup', function (e) {
var replBut = $('.replaceimgId i');
replBut.show();
var rmid = $('input[name="rImId"]');
if(rmid.val() > 3999 &®ex.imgId.test(rmid.val())){
replBut.addClass('textShadow');
replBut.off().on('click', function () {
j.post(['update','replImg'], function (data) {
if(data.statusReplace){
if(data.statusDel){
message('Image replaced success. Old img deleted.', 1);
}
else message('Image replaced success.', 1);
}
else message('Something went wrong. Image can\'t be replaced.', 0);
}, {sImId:frmo.id, rImId:rmid.val(), del:(confirm('Delete image after replace?') ? 1 : 0), formId: "133"});
});
}
else{ replBut.removeClass('textShadow');
replBut.off();
}
});
},
clearCache:function () {
j.post(['update','cache'], function (data) {
if(data.status){
message("Cache cleared successfully!\n"+data.count+" file(s) deleted", 1);
}
}, {imgId:frmo.id});
}
};
frm[168] = {
vformId: false,
init:function(){
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.forms = data.forms;
frmo.CPV = data.CPV;
//frmo.sjv = data.scriptJSV;
for(var key in sett.forms){
$('.formIds').append('');
}
frmo.formsText = "\r\n\r\n**** Active forms versions **** \r\n";
for(var key in frmo.forms){
frmo.formsText = frmo.formsText + key + ': ' + frmo.forms[key] + '; ';
}
/*$('.jsSubmit .oldVers').text('(cur ver. '+frmo.sjv+')');*/
}, {});
$('.formIds').off().on('change', function () {
frmo.vFormId = $('.formIds').val();
$('.formSubmit .selectedId [name="comment"]').prop('disabled', true);
$('.formSubmit .selectedId [name="comment"]').removeAttr('disabled').addClass();
if(frmo.vFormId!='all')$('.formSubmit input[name="version"]').val(frmo.forms[frmo.vFormId]);
else $('.formSubmit input[name="version"]').val('');
});
//For submit file
/*$('.jsSubmit button').off().on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
var data = ff.toObj('submitJsVersion');
data['baseVersion'] = frmo.sjv;
j.post(['insert', 'script'], function (data) {
debug.cnsl(data);
if(data.status) message('New version for js file submited', 1);
else message(data.error, 0)
}, data);
});*/
$('.formSubmit button.save').off().on('click', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
frmo.comment='';
var data = ff.toObj('submitFormVersion');
data['vFormId'] = frmo.vFormId;
if(data['vFormId'] != 'all')frmo.comment = data['comment'] + frmo.formsText + "\r\n Control Panel Version: "+frmo.CPV;
else frmo.comment = data['comment'] + "\r\n\r\n Group backup for CP Forms" + frmo.formsText + "\r\n Control Panel Version: "+frmo.CPV;
data['comment'] = frmo.comment;
debug.cnsl(data);
if(isDefined(frmo.vFormId))j.post(['insert', 'form'], function (data) {
debug.cnsl(data);
if(data.status){
message('New version for '+frmo.vFormId+' form submitted', 1);
nav.goTo(169, frmo.vFormId);
}
// else message(data.error, 0)
}, data);
else message('You should select form before submitting it, or select all forms', 3);
});
}
};frm[169] = {
init:function(param){
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.listFV = data.listFV;
frmo.curForm = parseInt(param[0]);
//frmo.listSV = data.listSV;
for(var key in sett.forms){
$('.formIds').append('');
}
for(var key in frmo.listFV){
var order = new Array ('vFormId', 'version', 'baseVersion', 'comment', 'createUser', 'createDate');
var table = e('formsTbody');
var act = frmo.listFV[key]['active']==1?'current ' : '';
var line = e(null, table, 'tr', act + frmo.listFV[key]['vFormId']);
//debug.cnsl(frmo.listFV[key]);
for(var k in order){
var i = order[k];
var text = frmo.listFV[key][i];
if (i == 'createDate') text = parseDate.shortDate(text);
e(null, line, 'td', i).innerHTML = text;
}
e(null, line, 'td', 'actions').innerHTML=' ';
}
if(isDefined(sett.forms[frmo.curForm])){
$('.formIds').val(frmo.curForm);
$('.vFormsList tbody tr').hide();
if ($('.vFormsList tr.'+frmo.curForm).length==0) $('.nothingMsg').show();
else $('.vFormsList tbody tr.'+frmo.curForm).show();
}
$('.formIds').off().on('change', function () {
$('.nothingMsg').hide();
$('.vFormsList').removeClass('panel-collapsed');
$('.vFormsList .panel-body').show();
$('.vFormsList [data-action="collapse"]').removeClass('rotate-180');
var vFid = $('.formIds').val();
if(vFid!='all'){
$('.vFormsList tbody tr').hide();
if ($('.vFormsList tr.'+vFid).length==0) $('.nothingMsg').show();
else $('.vFormsList tbody tr.'+vFid).show();
}
else $('.vFormsList tbody tr').show();
});
}, {});
}
};frm[170] = {
init:function(params){
j.post(['init', params[0], params[1]], function (data) {
// debug.cnsl(data);
if(/*data.scriptData == null && */data.formData == null) nav.goTo(169);
frmo.formInfo = data.formData;
//frmo.fileInfo = data.scriptData;
if(params[0]=='fv'){
$('.formVersion').show();
for (var i in frmo.formInfo){
//debug.cnsl(i);
$('.formVersion [name='+i+']').val(frmo.formInfo[i]);
if(i=='vFormId') $('.formVersion [name="form"]').val(nav.ref.idToTitle[frmo.formInfo['vFormId']].join(' / '));
else if(i=='baseVersionId'){
var base = frmo.formInfo['versions'][frmo.formInfo['baseVersionId']];
if (isDefined(base)) base = base['version'];
else base = 'no';
$('.formVersion [name="baseVersion"]').val(base);
}
else if(i=='version'){
for (var k in frmo.formInfo['versions']){
var base = 'no';
if (isDefined(frmo.formInfo['versions'][frmo.formInfo['versions'][k]['baseVersionId']]))
base = frmo.formInfo['versions'][frmo.formInfo['versions'][k]['baseVersionId']]['version'];
//debug.cnsl(frmo.formInfo);
debug.cnsl(k);
$('.formVersion select[name="version"]').append('');
}
$('.formVersion [name="version"]').val(frmo.formInfo['id']);
}
}
}
/*else if(params[0]=='sv'){
$('.fileVersion').show();
for (var i in frmo.fileInfo){
$('.fileVersion [name='+i+']').val(frmo.fileInfo[i]);
if(i=='version'){
for (var k in frmo.fileInfo['versions'])
$('.fileVersion select[name="version"]').append('');
$('.fileVersion [name="version"]').val(frmo.fileInfo['id']);
}
}
}*/
}, {});
frmo.events();
},
del:{
fv:function () {
if(confirm('Delete this version of the form?'))
j.post(['delete', 'fv', frmo.formInfo['id']], function (data) {
debug.cnsl(data);
if(data.status){
message('Form version deleted successfully', 1);
nav.goTo(169, frmo.formInfo['vFormId']);
}
else message("Error deleting form version.", 0);
}, {});
}
},
restore:{
fv:function (e) {
if(confirm('Restore this version of the form?'))
j.post(['update', 'restore', 'fv', frmo.formInfo['id']], function (data) {
debug.cnsl(data);
message(data.result, 1);
}, {});
},
/*sv:function (e) {
if(confirm('Are you sure want to restore this file version?'))
j.post(['update', 'restore', 'sv', frmo.fileInfo['id']], function (data) {
debug.cnsl(data);
if(data.status) message('File version restored successful', 1);
else message('Error file version didn\'t restore', 0);
}, {});
}*/
},
save:{
fv:function (e) {
var com = $('.formVersion textarea[name="comment"]').val();
debug.cnsl(com);
j.post(['update', 'save', 'fv', frmo.formInfo['id']], function (data) {
debug.cnsl(data);
if(data.status)message('Form version saved successful.', 1);
else message('Error saving form version.', 0);
}, {comment:com});
},
/*sv:function (e) {
var com = $('.fileVersion textarea[name="comment"]').val();
debug.cnsl(com);
j.post(['update', 'save', 'sv', frmo.fileInfo['id']], function (data) {
debug.cnsl(data);
if(data.status) message('File version saved successful', 1);
else message('Error file version didn\'t save', 0);
}, {comment: com});
}*/
},
events: function () {
$('.goForm').off().on('click', function () {
nav.goTo(frmo.formInfo['vFormId']);
});
$('.goFormList').off().on('click', function () {
nav.goTo(169, frmo.formInfo['vFormId']);
});
$('select[name="version"]').off().on('change', function () {
var id = /*params[0]=='sv' ? $('.fileVersion select[name="version"]').val() :*/ $('.formVersion select[name="version"]').val();
id = frmo.formInfo['versions'][id]['id'];
//debug.cnsl(id);
nav.goTo(170, 'fv/'+id);
});
}
};frm[171] = {
init:function(path){
j.post(['init'], function (data) {
frmo.relList = data.list;
$('#relTbody').empty();
for (var a in data.list) {
var line = e(a, e('relTbody'), 'tr');
var order = new Array('parentFormId', 'childFormId', 'comment', 'createUser');
for (var c in order) {
var b = order[c];
var cont = data.list[a][b];
if(b=='parentFormId' || b=='childFormId')cont = cont+': '+sett.forms[cont];
else if(b=='createUser')cont = cont + '
' + parseDate.shortDate(data.list[a]['createDate']);
e(null, line, 'td').t(cont);
}
e(null, line, 'td').t('')
}
debug.cnsl(data);
if(path=='create'){
frmo.createRel();
}
}, {});
},
createRel:function () {
$("html, body").animate({scrollTop: 0}, 1000);
if (!document.getElementById('new')){
var line = e('new', e('relTbody'), 'tr', null, {prepend: true});
e(null, line, 'td').t(local.getSelect(sett.forms, 'parentFormId', '-- Select parrent form id --'));
e(null, line, 'td').t(local.getSelect(sett.forms, 'childFormId', '-- Select child form id --'));
e(null, e(null, line, 'td'), 'textarea').a('name', 'comment').a('cols', '40').a('rows', '4');
e(null, line, 'td');
e(null, line, 'td', 'actions').t('');
}
else message('Create previous relation before creating new', 3);
},
del:function (t) {
var relId = $(t).parents('tr')[0].id;
debug.cnsl(relId);
if (confirm('Delete this relation?'))
j.post(['delete'], function (data) {
if (data.status){
message('Relation deleted successfully', 1);
$('#'+relId).hide();
}
else message('System error', 0);
}, {id: relId});
},
ins:function (t) {
var newRel = ff.toObj('new');
j.post(['insert'], function (data) {
if (data.status){
message('Relation created successfully', 1);
frmo.init();
}
else if(data.error.indexOf('Duplicate')+1) message('The relations between these forms has already been created',3);
else message('System Error', 0);
}, newRel);
}
};frm[173] = {
snapSaved: true,
cropStep: 100, //шаг для кропа при использовании клавиатуры в миллисекундах
init: function (param) {
frmo.findLine = $('#cropedListBody .tblLine').html();
frmo.vId = param[0];
debug.cnsl('crop init');
if (frmo.vId != '') {
j.post(['init'], function (data) {
debug.cnsl(data);
if (data.info != '' && isDefined(data.info)) {
frmo.info = data.info[0];
if (frmo.info.createUser != sett.user.id) {
document.getElementById('modify').disabled = true;
document.getElementById('saveOwner').disabled = false;
}
frmo.loadVideo();
local.getSelect(data.chans, 'newChanId', parseInt(frmo.info.chid), true, 'Channel', 'newChanBox');
local.getSelect(data.cats, 'newCatId', parseInt(frmo.info.ctid), true, 'Category', 'newCatBox');
frmo.cropedList(data.cropedList);
} else {
message('Wrong id (' + frmo.vId + ')', 0);
nav.goTo(105);
}
}, {id: frmo.vId});
}
},
loadVideo: function () {
for (var i in frmo.info) {
if (i == 'playTime') {
$('[name="endTime"]').attr('max', frmo.info[i] * 1000).attr('step', frmo.cropStep).val(frmo.info[i] * 1000);
$('[name="startTime"]').attr('max', frmo.info[i] * 1000).attr('step', frmo.cropStep);
$('.rangeBox .range_max').text(frmo.formatTime(frmo.info['playTime'] * 1000));
frmo.durationChange(frmo.info['playTime'] * 1000);
} else if (i == 'id') $('video')[0].src = 'https://cp.blago.tube/getFile/' + frmo.info.id + '/video.mp4';
else if (i == 'name') document.getElementById('newName').value = frmo.info[i] + " **** Cropped Video";
}
frmo.event();
},
event: function () {
$('input[type="range"]').on('input', function (e) {
frmo.range(e.target)
});
$('#startCrop').on('click', function () {
if (!frmo.snapSaved) {
if (confirm("Last snapshot isn't saved, are you sure want continue task with old image?")){
frmo.startCrop();
}
} else frmo.startCrop();
});
$('#getStartTime').off().on('click', function () {
var time = $('#outputVideo')[0].currentTime;
$('input[name="startTime"]').val(time * 1000);
frmo.range('input[name="startTime"]');
});
$('#getEndTime').off().on('click', function () {
var time = $('#outputVideo')[0].currentTime;
$('input[name="endTime"]').val(time * 1000);
frmo.range('input[name="endTime"]');
});
$('#duration').off().on('input', function (t) {
var dur = frmo.unFormatTime($(t.target).val());
if (dur > 0) $('input[name="endTime"]').val(parseInt($('input[name="startTime"]').val()) + dur);
var mask = '00:00:00';
try {
var text = document.getElementById('duration');
var value = text.value;
var literalPattern = /[0\*]/;
var numberPattern = /[0-9]/;
var newValue = "";
for (var vId = 0, mId = 0; mId < mask.length;) {
if (mId >= value.length)
break;
// Number expected but got a different value, store only the valid portion
if (mask[mId] == '0' && value[vId].match(numberPattern) == null) {
break;
}
// Found a literal
while (mask[mId].match(literalPattern) == null) {
if (value[vId] == mask[mId])
break;
newValue += mask[mId++];
}
newValue += value[vId++];
mId++;
}
text.value = newValue;
} catch (e) {
}
});
$('#playSelected').off().on('click', function () {
var video = e('outputVideo');
var start = $('input[name="startTime"]').val();
var end = $('input[name="endTime"]').val();
$(video).off().on('timeupdate', function () {
if (video.currentTime > end / 1000) {
video.pause();
$(video).off();
}
});
video.currentTime = start / 1000;
video.play();
});
frmo.video = document.querySelector('video');
frmo.canvas = document.querySelector('canvas');
frmo.context = frmo.canvas.getContext('2d');
frmo.video.addEventListener('loadedmetadata', function () {
frmo.canvas.width = frmo.video.videoWidth;
frmo.canvas.height = frmo.video.videoHeight;
// frmo.loadImg(frmo.info.imgId);
}, false);
},
startCrop: function () {
document.getElementById('newName').value = document.getElementById('newName').value.replace(/"/g, '\"');
var data = ff.toObj('cropParam');
data['startTime'] = data['startTime'] / 1000;
data['endTime'] = data['endTime'] / 1000;
const newImgId = document.getElementById('newImgId').dataset.id;
if(isDefined(newImgId) && !isNaN(newImgId)){
data['newImgId'] = newImgId;
j.post(['update', 'crop', frmo.vId], function (data) {
debug.cnsl(data);
if (data.status) {
message('Added to queue', 1);
nav.goTo(213, frmo.vId);
}
}, data);
}
else message('Please select img for new mid', 3);
},
loadImg: function (imgId) {
frmo.info.imgId = imgId;
var newImg = new Image();
newImg.src = img.url(parseInt(imgId), frmo.canvas.width, frmo.canvas.height);
newImg.onload = function () { // Событие onLoad, ждём момента пока загрузится изображение
frmo.canvas.width = newImg.width;
frmo.canvas.height = newImg.height;
frmo.context.drawImage(newImg, 0, 0); // Рисуем изображение от точки с координатами 0, 0
}
$('#newImgId')[0].dataset.id = imgId;
},
setImgAsPmid: function () {
if (confirm('Reset image?')) {
frmo.loadImg(frmo.info.imgId);
frmo.snapSaved = true;
}
},
onstorage: function (ev) {
if (ev.key == ('cropImgId' + frmo.info.id) && ev.newValue != null) {
frmo.loadImg(ev.newValue);
localStorage.removeItem(ev.key);
}
},
range: function (e) {
if (isDefined(e))
var rangeGroup = $(e).attr('name'),
minBtn = $(e).parent().children('.min'),
maxBtn = $(e).parent().children('.max'),
range_min = $(e).parent().children('.range_min'),
range_max = $(e).parent().children('.range_max'),
minVal = parseInt($(minBtn).val()),
maxVal = parseInt($(maxBtn).val()),
rBox = $(e).parents('.rangeBox'),
value,
origin = $(e)[0].className;
if (origin === 'min' && minVal > maxVal - frmo.cropStep) $(minBtn).val(maxVal - frmo.cropStep);
if (origin === 'max' && maxVal - frmo.cropStep < minVal) $(maxBtn).val(frmo.cropStep + minVal);
var minVal = parseInt($(minBtn).val());
var maxVal = parseInt($(maxBtn).val());
minVal = frmo.formatTime(minVal);
maxVal = frmo.formatTime(maxVal);
$(range_min).text(minVal);
$(range_max).text(maxVal);
frmo.durationChange();
$('#outputVideo')[0].currentTime = $(e).val() / 1000;
},
durationChange: function (dur) {
var duration = dur || $('input[name="endTime"]').val() - $('input[name="startTime"]').val();
$('#duration').val(frmo.formatTime(duration))
},
formatTime: function (milliseconds) {
//milliseconds = seconds * 1000;
if (milliseconds != null && milliseconds > 0) {
var msec_num = parseInt(milliseconds, 10); // don't forget the second param
var hours = Math.floor(msec_num / 3600000);
var minutes = Math.floor((msec_num - (hours * 3600000)) / 60000);
var seconds = Math.floor((msec_num - (hours * 3600000) - (minutes * 60000)) / 1000);
var mseconds = msec_num - (hours * 3600000) - (minutes * 60000) - (seconds * 1000);
if (mseconds < 10) mseconds = "00" + mseconds;
else if (mseconds < 100) seconds = "0" + mseconds;
else if (mseconds == 0) seconds = "000";
if (seconds < 10) seconds = "0" + seconds;
else if (seconds == 0) seconds = "00";
if (minutes < 10) minutes = "0" + minutes;
else if (minutes == 0) minutes = "00";
if (hours < 10) hours = "0" + hours;
else if (hours == 0) hours = "00";
var result = "";
result = hours + ':' + minutes + ':' + seconds + ':' + mseconds;
return result;
} else return '00:00:00:000';
},
unFormatTime: function (time) {
time = time.split(':');
var sec = 0;
var mult = 3600;
for (var a in time) {
sec += time[a] * mult;
if (mult > 1) mult /= 60;
else mult /= 1000;
}
return sec;
},
snap: {
get: function () {
frmo.canvas.width = frmo.video.videoWidth > 1920 ? 1920 : frmo.video.videoWidth;
frmo.canvas.height = frmo.video.videoHeight > 1080 ? 1080 : frmo.video.videoHeight;
frmo.video.crossOrigin = "Anonymous";
// Define the size of the rectangle that will be filled (basically the entire element)
frmo.context.fillRect(0, 0, frmo.canvas.width, frmo.canvas.height);
// Grab the image from the video
frmo.context.drawImage(frmo.video, 0, 0, frmo.canvas.width, frmo.canvas.height);
frmo.canvas.dataset.id = 'new';
frmo.snapSaved = false;
},
save: function () {
// upload
if(!frmo.snapSaved){
var image = frmo.canvas.toDataURL('image/jpeg');
// var params = ff.toObj('fDSC');
var params = new Object();
if (frmo.canvas.width >= 300 && frmo.canvas.height >= 239) {
params['width'] = frmo.canvas.width;
params['height'] = frmo.canvas.height;
params['size'] = 0; // THIS VALUE ON SERVER SIDE !!! $_POST['size'] = (int) (strlen(rtrim($_POST['slImage'], '=')) * 3 / 4);
params.formId = 135;
params['catId'] = 101;
params['dsc'] = frmo.info.name;
params['orientation'] = 1;
debug.cnsl(params);
j.image(['insert', 'image'], image, function (data) {
debug.cnsl(data);
// update
if (data.result == 1) {
$('#newImgId')[0].dataset.id = data.imgId;
message('Image has been uploaded and will be apply for new mid after crop', 1);
frmo.snapSaved = true;
} else message('Error uploading image.', 0);
}, params);
} else message('Image must be 300*300px or more. Your image is ' + frmo.canvas.width + '*' + frmo.canvas.height + '', 0);
}
else message("This image is already saved and will be applying to this video after crop");
}
},
cropedList: function (el) {
$('#cropedListBody').empty();
var tbl = e('cropedListBody');
if (!el) {
e(null, e(null, tbl, 'tr', 'tblLine'), 'td')
.a('colspan', '8')
.a('style', 'text-align: center;')
.t('Nothing found');
} else {
var line = frmo.findLine;
for (var key in el) {
var keys = el[key]['id'];
var mid = el[key]['mid'];
var tr = e(keys, tbl, 'tr');
$(tr).html(line);
e(keys, tbl, 'tr');
for (var t in el[key]) {
var td = el[key];
if ($('td.' + t)) {
var cont = td[t];
if (t == 'imgId' && mid != null) {
var hr = nav.link(213, [mid]);
// cont = '
';
cont = '';
} else if (t == 'name' && mid != null) {
// var hr = '/media/detail/' + keys;
var hr = nav.link(213, [mid]);
cont = '' + cont + '';
} else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser;
else if (['playTime', 'startTime', 'endTime'].includes(t) && cont != null) cont = frmo.formatTime(cont * 1000);
$('#' + keys + ' td.' + t).html(cont);
}
}
}
$('#cropedListBody .endTime').off().on('click', function (ev) {
var time = frmo.unFormatTime(ev.target.innerText);
$('input[name="startTime"]').val(time * 1000);
frmo.range('input[name="startTime"]');
});
$('#cropedListBody .startTime').off().on('click', function (ev) {
var time = frmo.unFormatTime(ev.target.innerText);
$('input[name="endTime"]').val(time * 1000);
frmo.range('input[name="endTime"]');
});
}
}
};frm[174] = {
pagerCount: 10,
init: function (params) {
frmo.page = (params.shift() || 0);
if (frmo.searchParams) {
$('#statusSelect').val(frmo.searchParams.status);
$('#searchInput').val(frmo.searchParams.sw);
frmo.search();
}
else {
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.listCount = data.Count;
frmo.list = data.searchList;
frmo.run(frmo.list);
}, {page: frmo.page, pagerCount: frmo.pagerCount});
}
},
run: function (yList) {
empty(e('yChannelTable'));
for (var keys in yList) {
var line = yList[keys];
var id = line['id'];
var tr = e(id, e('yChannelTable'), 'tr');
var order = new Array('chanelName', 'status', 'note', 'createUser', 'updateUser');
for (var i in order) {
var columnName = order[i];
var text = '';
switch (columnName) {
case 'createUser': {
text = 'User: ' + line[columnName] + '
Date: ' + parseDate.shortDate(line['createDate']);
break;
}
case 'updateUser': {
text = line[columnName] != '' ? 'User: ' + line[columnName] + '
Date: ' + parseDate.shortDate(line['updateDate']) : 'Not updated';
break;
}
case 'chanelName': {
text = '' + line[columnName] + '';
break;
}
case 'note': {
e(null, tr, 'td', columnName + ' editable textarea').t(line[columnName]).a('name', columnName);
break;
}
case 'status': {
//text = '';
var td = e(null, tr, 'td', columnName);
var s = e(null, td, 'select', 'form-control').a('name', columnName).t('');
$(s).val(line[columnName]);
/*text.find('option[value="'+line[columnName]+'"]').attr('selected');
var l = text.indexOf('value="'+line[columnName]+'"')+8;
var text1 = ;
var text2 = ;
text = text1 + ' selected ' + text2; */
break;
}
default: {
text = line[columnName];
break;
}
}
if (columnName != 'status' && columnName != 'note') e(null, tr, 'td', columnName).t(text);
}
e(null, tr, 'td', 'actions').t('');
}
frmo.options();
pagerService();
},
search: function () {
frmo.searchParams = {
status: $('#statusSelect').val(),
sw: $('#searchInput').val(),
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
if (data.result) {
frmo.listCount = data.Count;
frmo.list = data.searchList;
frmo.run(data.searchList);
if (frmo.listCount == 0) message('Not found', 3);
}
else {
message('Not found', 3)
}
debug.cnsl(data);
}, frmo.searchParams);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('num', '').replace('textarea', '').replace('selector', '').trim();
debug.cnsl(fieldName);
$(e).empty();
$(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
delete: function (e) {
var p = $(e).parents('.error')[0].id;
debug.cnsl(p);
j.post(['delete'], function (data) {
if (data.status) {
message('Deleted', 1);
$("#" + p).fadeOut();
}
else message('System error.', 1)
}, {id: p});
},
pager: {
next: function () {
nav.goTo(parseInt(form.id), [parseInt(frmo.page) + 1]);
},
prev: function () {
nav.goTo(parseInt(form.id), [parseInt(frmo.page) - 1]);
}
},
preview: function (i) {
var filePath = "";
if (frmo.list[i].audioOnly == "1") {
filePath = ".blago.tube/" + frmo.list[i].mid + "/" + toUrl(frmo.list[i].yTitle) + ".mp3";
bootbox.dialog({
title: frmo.list[i].name,
message: '',
buttons: {
cancel: {
label: ' Close'
}
},
backdrop: true
});
}
else if (frmo.list[i].audioOnly == "0") {
filePath = ".blago.tube/" + frmo.list[i].mid + "/" + toUrl(frmo.list[i].yTitle) + ".mp4";
bootbox.dialog({
title: frmo.list[i].name,
message: '',
buttons: {
cancel: {
label: ' Close'
}
},
backdrop: true
});
}
},
options: function () {
$('#searchBtn').off().on('click', function (ev) {
frmo.page = 0;
frmo.search();
});
$('#searchInput').off().on('keydown', function (ev) {
if (ev.keyCode == 13) {
ev.preventDefault();
ev.stopImmediatePropagation();
frmo.page = 0;
frmo.search();
}
});
$('#statusSelect').off().on('change', function (ev) {
frmo.page = 0;
frmo.search();
});
$('select[name="status"]').off().on('change', function (e) {
var id = $(e.target).parents('tr')[0].id;
var val = $(e.target).val();
$('tr#' + id + ' button.save')[0].removeAttribute('disabled');
});
$('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
$('button.save').off().on('click', function (e) {
var chId = $(e.target).parents('tr')[0].id;
var val = ff.toObj(chId);
debug.cnsl(val);
j.post(['update'], function (data) {
if (data.status) {
message('Status updated', 1);
$('tr#' + chId + ' button.save')[0].setAttribute('disabled', 'disabled');
$('tr td')[0].setAttribute('disabled', 'disabled');
}
else message('Error updating status ');
debug.cnsl(data);
}, {id: chId, status: val['status'], note: val['note'] || ''});
});
}
};frm[186] = {
listItem: '',
defList: new Array(),
init: function () {
j.post(['init'], function (data) {
frmo.list(data);
}, {});
frmo.events();
},
list: function (data) {
empty(e('cronTbody'));
for (var k in data.cron) {
frmo.defList[data.cron[k]['id']] = data.cron[k];
}
//debug.cnsl(data);
frmo.run.taskDef(data.cron);
local.getSelect(data.cronTaskTypes, 'type', ' -- select an option -- ', 'true', 'Type', 'types');
},
events: function () {
$('#executableEditName').off().on('click', function () {
if ($('[name="executable"]')[0].disabled) $('[name="executable"]')[0].disabled = false;
else $('[name="executable"]')[0].disabled = true;
});
$('#searchBtn').off().on('click', function (ev) {
frmo.search();
});
$('#searchInput').off().on('keydown', function (ev) {
if (ev.keyCode == 13) {
ev.preventDefault();
ev.stopImmediatePropagation();
frmo.search();
}
});
$('#activeSearch').off().on('change', function (ev) {
frmo.search();
});
$('#working').off().on('change', function (ev) {
frmo.search();
});
$('#notActiveSearch').off().on('change', function (ev) {
frmo.search();
});
},
insert: function () {
j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
frmo.f.close();
}
}, ff.toObj('cron'));
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.statusQR) {
message('Deleted.', 1);
$(e).parents('tr').remove();
} else {
message('Error. Task definition was not deleted. Please delete all active tasks for it, and then try again', 3);
}
}, {id: $(e).parents('tr')[0].id});
},
update: {
active: function (e) {
debug.cnsl(e);
j.post(['update', 'active'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
} else message('Something went wrong', 0);
}, {id: $(e).parents('tr')[0].id, active: $(e)[0].checked});
},
all: function () {
j.post(['update', 'all'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
frmo.f.close();
} else message('Something went wrong', 0);
}, ff.toObj('cron'));
},
restart: function (ev) {
var id = $(ev).parents('tr')[0].id;
if (confirm('Restart this taskDef?'))
j.post(['update', 'working'], function (data) {
if (data.status) {
message('Restarted successfully', 1);
$('#' + id).removeClass('working');
} else message('System error', 0);
}, {id: id, working: 0});
}
},
run: {
taskDef: function (data) {
var cron = data;
var order = new Array('id', 'active', 'name', 'dsc', 'executable', 'type', 'cronInterval', 'cronLastRun', 'createDate');
for (var i in cron) {
var line = cron[i];
var work = line['working'] != 0 ? 'working' : '';
var tr = e(line['id'], e('cronTbody'), 'tr', work).a('data-typeId', line['typeId']);
for (var k in order) {
var o = order[k];
if (o == 'active') {
e(null, tr, 'td', order[k]).innerHTML = '';
if (line[o] == '1') $(tr).find('.active input').attr('checked', 'checked');
else $(tr).find('.active input').removeAttr('checked');
} else if (o == 'createDate') e(null, tr, 'td', o).innerHTML = 'Date: ' + parseDate.shortDate(line[o]) + '
User: ' + line['createUser'];
else e(null, tr, 'td', o).innerHTML = line[o];
}
$(tr).append('' +
' ' +
'' +
'' +
' | ');
e(null, tr, 'span', 'secretRestart').t('').a('title', 'Activate this task again');
}
}
},
f: {
add: function () {
$('#formBlock button').hide();
$('#cron')[0].reset();
$('#formBlock,#insert').fadeIn(250);
$('[name="executable"]')[0].disabled = false;
$('#executableEditName')[0].checked = true;
},
edit: function (ev) {
$('#formBlock button').hide();
$('#formBlock,#save').fadeIn(250);
frmo.events();
var id = $(ev).parents('tr')[0].id;
var typeId = $(ev).parents('tr').attr('data-typeId');
var formData = frmo.defList[id];
$('[name="executable"]')[0].disabled = true;
$.each(formData, function (fieldName, val) {
var itemForm = $('#formBlock').find('*[name=' + fieldName + ']');
if (fieldName == 'createDate') val = parseDate.shortDate(val);
if (val == '0000-00-00') val = null;
if (itemForm.is('select')) {
itemForm[0].value = typeId;
} else if (itemForm.is('*[type="checkbox"]'))
switch (parseInt(val)) {
case 0: {
itemForm.removeAttr('checked');
break;
}
case 1: {
itemForm.prop('checked', 'checked');
break;
}
}
else itemForm.val(val);
debug.cnsl(fieldName, val);
});
},
close: function () {
$('#formBlock,#formBlock button').fadeOut();
$('#cron')[0].reset();
}
},
search: function () {
frmo.searchParams = {
sw: $('#searchInput').val(),
a: $('#activeSearch')[0].checked,
na: $('#notActiveSearch')[0].checked,
working: $('#working')[0].checked,
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
if (data.result) {
//frmo.list = data.list;
frmo.list(data);
if (frmo.listCount == 0) message('Not found', 3);
} else {
message('Not found', 3)
}
debug.cnsl(data);
}, frmo.searchParams);
}
};frm[187] = {
pagerCount: 50,
dataSeted: false,
searchParams: false,
tdSelector: false,
init: function (params) {
frmo.page = (params.shift() || 0);
if (frmo.searchParams) {
e('tdSelector').t(frmo.tdSelector);
$('#tdSelector').val(frmo.searchParams.taskDef);
$('#statusSelect').val(frmo.searchParams.status);
$('#searchInput').val(frmo.searchParams.sw);
frmo.search();
}
else {
frmo.search();
}
e('searchPanel').onclick = function () {
if (frmo.dataSeted) e('searchPanel').reset();
frmo.dataSeted = false;
};
$('#searchBtn').off().on('click', function (ev) {
frmo.page = 0;
frmo.search();
});
$('#searchInput').off().on('keydown', function (ev) {
if (ev.keyCode == 13) {
ev.preventDefault();
ev.stopImmediatePropagation();
frmo.page = 0;
frmo.search();
}
});
$('#statusSelect').off().on('change', function (ev) {
frmo.page = 0;
frmo.search();
});
$('#tdSelector').off().on('change', function (ev) {
frmo.page = 0;
frmo.search();
});
},
run: function (data) {
empty(e('cronATbody'));
var actList = data;
var order = new Array('status', 'name', 'type', 'params', 'startDate', 'completeDate', 'msg'/*, 'createUser'*/, 'createDate');
for (var i in actList) {
var stat = actList[i]['status'];
var tbl = e('cronATbody');
var tr = e(actList[i]['id'], tbl, 'tr', stat == 0 ? 'uncomplete' : stat == 1 ? 'inProgress' : stat == 2 ? 'completed' : 'error');
for (var c in order) {
a = order[c];
if (a == 'createDate' /*|| a=='startDate'||a=='completeDate'*/) {
actList[i][a] = parseDate.shortDate(actList[i][a])
}
else if (a == 'msg' && actList[i]['status'] == 3) actList[i][a] = actList[i]['errorMsg'];
else if (a == 'type') actList[i][a] = actList[i][a] == 1 ? 'recurring' : 'once';
else if (a == 'status') {
actList[i][a] = actList[i][a] == 0 ? 'uncomplete' : actList[i][a] == 1 ? 'inProgress' : actList[i][a] == 2 ? 'completed' : '';
actList[i][a] = '';
}
else if (a == 'msg') actList[i][a] = actList[i][a] + actList[i]['errorMsg'];
e(null, tr, 'td').t(actList[i][a]);
}
$(tr).append('' +
'' +
' | ');
e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete record finally');
}
pagerService();
$('.statusTable')[0].style.marginRight = document.getElementById('pager').offsetWidth + 'px';
$('.secretDelete').off().on('click', function (ev) {
var id = $(ev.target).parents('tr')[0].id;
if (confirm('Delete this cron history record?')) {
j.post(['delete'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Record deleted successfully', 1);
$('#' + id).hide();
}
else message('System error', 0);
}, {id: id});
}
});
},
search: function () {
frmo.searchParams = {
taskDef: $('#tdSelector').val(),
status: $('#statusSelect').val(),
sw: $('#searchInput').val(),
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(187));
}
frmo.pushTaskDefId(data.tds);
if (isDefined(data.Count)) {
frmo.listCount = data.Count;
frmo.list = data.list;
frmo.run(data.cronHistory);
if (frmo.listCount == 0) message('Not found', 3);
}
else {
message('Not found', 3)
}
debug.cnsl(data);
}, frmo.searchParams);
}
, pushTaskDefId: function (tds) {
debug.cnsl("tdSelector = " + tdSelector);
if (!frmo.tdSelector) {
for (var t in tds) {
e(null, e('tdSelector'), 'option')
.t(tds[t])
.a('value', t);
}
frmo.tdSelector = document.getElementById('tdSelector').innerHTML;
}
//else e('tdSelector').t(frmo.tdSelector);
}
, reactivate: function (ev) {
var id = $(ev).parents('tr')[0].id;
if (confirm('Activate this task again?')) j.post(['update'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Task activated successfully', 1);
//$('#' + id).hide();
}
else message('System error', 0);
}, {id: id});
}
};
frm[188] = {
pagerCount: 50,
dataSeted:false,
searchParams:false,
tdSelector:false,
userSelector:false,
init:function(params){
frmo.page = (params.shift() || 0);
if(frmo.searchParams){
e('tdSelector').t(frmo.tdSelector);
$('#tdSelector').val(frmo.searchParams.taskDef);
$('#statusSelect').val(frmo.searchParams.status);
$('#searchInput').val(frmo.searchParams.sw);
frmo.search();
}
else {
frmo.search();
/*j.post(['init'], function (data) {
debug.cnsl(data);
frmo.listCount = data.Count;
frmo.tasks = data.cronTaskNames;
frmo.run(data.activeCron);
}, {page: frmo.page, pagerCount: frmo.pagerCount});*/
}
e('searchPanel').onclick = function(){
if (frmo.dataSeted) e('searchPanel').reset();
frmo.dataSeted = false;
};
$('#searchBtn').off().on('click', function (ev) {frmo.page = 0; frmo.search();});
$('#searchInput').off().on('keydown', function (ev) {
if (ev.keyCode == 13){
ev.preventDefault();
ev.stopImmediatePropagation();
frmo.page = 0;
frmo.search();
}
});
$('#tdSelector').off().on('change', function (ev) {frmo.page = 0; frmo.search();});
$('#userSelector').off().on('change', function (ev) {frmo.page = 0; frmo.search();});
$('#primarySearch').off().on('change', function (ev) {frmo.page = 0; frmo.search();});
},
pager: {
next:function () {
nav.goTo(parseInt(form.id),[parseInt(frmo.page)+1]);
},
prev:function () {
nav.goTo(parseInt(form.id),[parseInt(frmo.page)-1]);
}
},
run :function (actList) {
empty(e('cronATbody'));
var order = new Array('name', 'type', 'intervalMinutes', 'params', 'startDate', 'createUser', 'createDate');
for(var i in actList){
var tbl = e('cronATbody');
var isPrimary = actList[i]['p']!=0? 'isPrimary' : '';
var tr = e(actList[i]['id'], tbl, 'tr', isPrimary);
for (var c in order){
var a=order[c];
var el = actList[i][a];
if(a=='intervalMinutes')el = isDefined(el)?el:'-';
//if(a=='startDate')el = isDefined(el)? '-' : parseDate.shortDate(el);
else if(a=='type')el= el == 1 ? 'recurring' : 'once';
else if(/*a=='startDate'||*/a=='createDate')el=parseDate.shortDate(el);
e(null, tr, 'td', a).t(el);
//debug.cnsl(a,el);
}
var act = e(null, tr, 'td');
e(null, act,'button', 'btn delete btn-xs btn-danger')
.t(' Cancel');
e(null, act,'button', 'btn primarySet btn-xs btn-success '+isPrimary)
.t(' Primary');
}
$('button.delete').off().on('click', function (ev) {
if (confirm('Delete this task?')){
j.post(['delete'], function (data) {
debug.cnsl(data);
$(ev.target).parents('tr').hide();
}, {id: $(ev.target).parents('tr')[0].id});
}
});
$('button.primarySet').off().on('click', function (ev) {
j.post(['update', 'setPrimary'], function (data) {
$(ev.target).parents('tr').toggleClass('isPrimary');
debug.cnsl(data);
}, {id: $(ev.target).parents('tr')[0].id});
});
pagerService();
},
add:function () {
if (!isDefined($('#new')[0])){
var line = e('new', e('cronATbody'), 'tr', null, {prepend:true});
//e(null, line, 'td').t(local.getSelect(frmo.tasks, 'taskDefId', '-- select task name --', true));
e(null, line, 'td').t(local.getSelect(frmo.tasks, 'taskDefId', 14, true));
//e('type', line, 'td').t(local.getSelect({0:'runs once', 1:'recurring'}, 'type', '-- select type --', true));
e('type', line, 'td').t(local.getSelect({0:'runs once', 1:'recurring'}, 'type', 0, true));
e(null, line, 'td').t('');
e(null, line, 'td').t('');
e(null, line, 'td').t(' ');
e(null, line, 'td').t('');
$('#type select').off().on('click', function (ev) {
if($('#type select').val()==1)$('input[name="intervalMinutes"]')[0].disabled = false;
else $('input[name="intervalMinutes"]')[0].disabled = true;
});
$(e(null, line, 'td').t(''))
.off().on('click', function () {
var newData = ff.toObj('new');
newData['startDate'] = newData['startDate'].replace('T', ' ');
debug.cnsl(newData);
j.post(['insert'], function (data) {
form.init();
}, newData);
});
}
else message('Add previous task', 3)
},
search:function () {
frmo.searchParams = {
taskDef: $('#tdSelector').val(),
user: $('#userSelector').val(),
sw: $('#searchInput').val(),
p: $('#primarySearch')[0].checked,
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
frmo.tasks = data.cronTaskNames;
if (isDefined(data.Count)){
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(188));
}
frmo.listCount = data.Count;
frmo.list = data.list;
frmo.run(data.activeCron);
if (!frmo.tdSelector){ for (var t in data.cronTaskNames){
e(null,e('tdSelector'),'option')
.t(data.cronTaskNames[t])
.a('value',t);
}
frmo.tdSelector = document.getElementById('tdSelector').innerHTML;}
//else e('tdSelector').t(frmo.tdSelector);
if (!frmo.userSelector){ for (var t in data.createUsers){
e(null,e('userSelector'),'option')
.t(data.createUsers[t])
.a('value',t);
}
frmo.userSelector = document.getElementById('userSelector').innerHTML;}
//else e('userSelector').t(frmo.userSelector);
if(frmo.listCount==0)message('Not found', 3);
}
else {message('System Error', 3);}
debug.cnsl(data);
}, frmo.searchParams);
}
};frm[189] = {
init:function(){
if(!isDefined(frmo.actions))frmo.actions = $('.actions').clone();
if(!isDefined(frmo.newRow))frmo.newRow = $('#new').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.vList(data.versions);
}, {});
},
run:{
vList: function (versions) {
var order = new Array('vid', 'comment', 'createUser', 'createDate');
e('versionsTbody').innerHTML='';
for (var a in versions) {
var act = frmo.actions.clone();
var line = e(versions[a]['id'], e('versionsTbody'), 'tr');
for (var b in order) {
var c = order[b];
var cont = versions[a][c];
//debug.cnsl(cont);
if(c == 'createDate')cont = parseDate.shortDate(cont);
if(c=='comment') e(null, line, 'td', c+' edit').t(cont).a('onclick', 'frmo.edit.td(this)').a('data-name', 'comment');
else e(null, line, 'td', c).t(cont);
}
$(line).append(act);
}
},
addLine:function () {
if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;}
else var newLin = e('versionsTbody').h(frmo.newRow.clone().show()[0]);
}
},
update:{
td:function (e,a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
$(e).parents('tr').children('td.comment')[0].id='comment';
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update','all'], function (data) {
if(data.status){
message('Saved!',1);
if(!a)form.init();
}
else message('Not saved!(',0);
}, formData);
$(e).parents('tr').children('td.comment').attr('contenteditable', 'false');
$(e).attr('disabled', 'disable');
}
},
insert:function (e) {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color','#deb887');
}
}, formData);
$('#new').remove();
},
edit: {
td: function (e) {
if($(e).hasClass('edit')){
$(e).attr('contenteditable', 'true');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id });
}
};frm[190] = {
init: function () {
j.post(['init'], function (data) {
if (data.sett) {
$('#tabsHeader, #tabBody').empty();
var tabsHeader = e('tabsHeader');
for (var num in data.tabs) {
e(null, e(null, tabsHeader, 'li'), 'a').a('data-toggle', 'tab').a('data-tab', 'tab'+num).t(data.tabs[num].name);
}
for (var k in data.sett) {
var main = e('tab'+Math.round(k/100)*100, e('tabBody'), 'div', 'tab-pane tab-body');
var property = data.sett[k];
if (property['type'] == 'textarea') {
var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3');
e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']);
e(property['id'], block, 'textarea', 'form-control').a('name', property['id']).t(property['value']);
if (property['disabled'] == 1) e(property['id']).disabled = true;
}
else if (property['type'] == 'hr') {
e(null, main, 'h4', 'col-xs-12 col-md-12').t(property['name']);
e(null, main, 'hr', 'col-xs-12 col-md-12 separator');
}
else {
var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3');
e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']);
// e(property['name'], block, 'input', 'form-control').a('name', property['name']).a('type', property['type'] || 'text').a('value', property['value']);
e(property['id'], block, 'input', 'form-control').a('name', property['id']).a('type', property['type'] || 'text').a('value', property['value']);
if (property['type'] == 'checkbox' && property['value'] != '0') e(property['id']).checked = true;
if (property['disabled'] == 1) e(property['id']).disabled = true;
}
}
$('#tabsHeader li')[0].classList += ' active';
$('.tab-pane')[0].classList += ' active';
$('a[data-toggle="tab"]').on('click', function (ev) {
var tab = ev.target.dataset.tab;
$('.tab-pane.active').removeClass('active');
$('#'+tab).addClass('active');
/*$('#tabsHeader li.active').removeClass('active');
$(ev.target).parent('li').addClass('active');*/
});
}
}, {});
$('.save').off().on('click', function (ev) {
ev.preventDefault();
ev.stopImmediatePropagation();
var sett = ff.toObj('cPSettings');
var newSett = ff.toObj('new');
// debug.cnsl(sett);
if (newSett.name) {
j.post(['insert'], function (data) {
if (data.status) {
message('Settings added successfully', 1);
$('#new').remove();
frmo.init();
}
}, newSett);
} else {
j.post(['update'], function (data) {
if (data.statusQR) {
message('Settings saved successfully', 1);
$('#settList').empty();
$('#new').remove(); // не удалять, это нужно, из-за того что при сохранении, ff.toObj('new') -- этот код создает блок, с этим айдишником, вне блока меин
frmo.init();
}
}, sett);
}
// $('#settList').empty();
// frmo.init();
});
$('#secretRestart').off().on('click', function (ev) {
if(confirm('Restart cron?'))
if (confirm('Are you sure?'))
j.post(['update', 'resetCron'], function (data) {
debug.cnsl(data);
if(data.statusQR) {
message('Cron has been reset successfully', 1);
form.init();
// $('#'+id).hide();
}
else message('System error', 0);
}, {});
});
},
addProp: function () {
var main = e('bottomBox');
var block = e(null, e('new', main, 'div', 'form-group', {prepend: true}), 'div', 'row');
e('disabled', e(null, block, 'div', ' col-md-1'), 'input', 'form-control').a('name', 'disabled').a('type', 'checkbox').a('title', 'disable edit');
e('name', e(null, block, 'div', ' col-md-2'), 'input', 'form-control').a('name', 'name').a('placeholder', 'name');
e('dsc', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'dsc').a('placeholder', 'Description');
e('type', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'type').a('placeholder', 'type');
e('value', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'value').a('placeholder', 'value').a('type', 'text');
}
};frm[206] = {
init:function(){
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.libsList = data.libsList
$('#libRefTbody').empty();
for (var a in data.list) {
var line = e(a, e('libRefTbody'), 'tr');
var order = new Array('vFormId', 'libName', 'createDate', 'createUser');
for (var c in order) {
var b = order[c];
var cont = data.list[a][b];
if(b=='vFormId')cont = cont+': '+sett.forms[cont];
else if(b=='createDate')cont = parseDate.shortDate(data.list[a][b]);
e(null, line, 'td').t(cont);
}
e(null, line, 'td').t('')
}
}, {});
},
createRel:function () {
if(!isDefined($('#new')[0])) {
var line = e('new', e('libRefTbody'), 'tr');
e(null, line, 'td').t(local.getSelect(sett.forms, 'vFormId', '-- Select form id --'));
e(null, line, 'td').t(local.getSelect(frmo.libsList, 'libId', '-- Select library id --'));
e(null, line, 'td');
e(null, line, 'td');
e(null, line, 'td', 'actions').t('');
}
else message('Please create previous relation', 3);
},
del:function (t) {
var relId = $(t).parents('tr')[0].id;
debug.cnsl(relId);
if (confirm('Delete this relation?'))
j.post(['delete'], function (data) {
if (data.status){
message('Relation deleted successfully', 1);
$('#'+relId).hide();
}
else message('System error', 0);
debug.cnsl(data);
}, {id: relId});
},
ins:function (t) {
var newRel = ff.toObj('new');
debug.cnsl(newRel);
j.post(['insert'], function (data) {
if (data.status){
message('Relation created successfully', 1);
frmo.init();
}
else message(data.error, 0);
debug.cnsl(data);
}, newRel);
}
};frm[210] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.chanel').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
for (var id in data.usersList) {
e(null, e('usersList', e('channelsTable'), 'datalist'), 'option').t(data.usersList[id]).value = id;
}
frmo.run.channelsList(data.channels);
}, {});
},
run: {
channelsList: function (channels) {
$('#channelsTbody').empty();
var chanelRow;
$.each(channels, function (i, channel) {
chanelRow = frmo.newRow.clone();
chanelRow[0].id = parseInt(channel.id);
for (var fieldName in channel) {
var val = channel[fieldName];
var td = $(chanelRow).find('.' + fieldName);
if (fieldName == 'createUser') val = val + '
' + parseDate.shortDate(channel['createDate']);
else if (fieldName == 'updateUser') val = val + '
' + parseDate.shortDate(channel['updateDate']);
else if (fieldName == 'imgId') {
val = "" +
"
";
}
if (fieldName == 'active') {
if (val == 1) td.find('input[name="active"]').attr('checked', 'checked');
else td.find('input[name="active"]').removeAttr('checked', 'checked');
}
else if (fieldName == 'isDefault') {
if (val == 1) td.find('input[name="isDefault"]').attr('checked', 'checked');
else td.find('input[name="isDefault"]').removeAttr('checked', 'checked');
}
else
td.html(val);
}
chanelRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
chanelRow.appendTo('#channelsTbody').show();
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Click "Add" for previous line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
// if (fieldName!='name')
$(v).append('');
/*else $(v).append('' +
'');*/
});
$(row).find('td.editable.textarea').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('textarea', '').trim();
$(v).append('');
});
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#channelsTbody').append(row);
$(row).find('td.owner input').attr('list', 'usersList');
e(null, $(row).find('td.owner')[0], 'span');
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (isDefined(data.matched)) {
if (data.changed == 1 && data.errno == 0)
message('Channel\'s new url saved!', 1);
else if (data.errno == 1062)
message('This channel url has been already used', 3);
else if (data.errno != 0)
message('System error', 3);
else if (data.changed == 0)
message('Channel url can\'t be changed because it\'s not empty!', 0);
}
if (data.status) {
message('Channel info saved!', 1);
if (!a) form.init();
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) {
message('Channel name already exist', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('default') + 1) {
message('User can have only one default channel', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('cName') + 1) {
message('Channel url already exist', 3);
}
else message('Not saved!(', 0);
}, formData);
},
img: function (newImgID) {
j.post(['update', 'img'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Saved!', 1);
frmo.init();
}
else message('System error!', 0);
}, {id: frmo.channelId, imgId: newImgID});
}
},
insert: function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
if (formData.cName == '' || formData.name == '') message("Name and cName can't be empty", 0);
else j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) {
message('Channel name already exist', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('default') + 1) {
message('User can have only one default channel', 3);
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (ev) {
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName == '') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('textarea', '').trim();
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
$(ev).empty();
// if( $(e).hasClass('num') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if (fieldName == 'owner') $(ev).append('');
else if ($(ev).hasClass('text')) $(ev).append('');
else if ($(ev).hasClass('textarea')) $(ev).append('');
$(ev).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.statusQR) {
message('Deleted.');
$(e).parents('tr').remove();
}
else message('Channel can\'t be deleted. For delete channel it should be empty');
}, {id: $(e).parents('tr')[0].id});
},
getUsersList: function () {
$('[name="chid"]').off().on('keyup', function (ev) {
var inp = $(ev.target).val().trim();
if (inp.length > 2) {
j.post(['init', 'channelsList'], function (data) {
debug.cnsl(data);
var ckR = data.channelsList;
empty(e('hintList'));
}, {word: inp});
}
});
},
onstorage: function (ev) {
if (ev.key == ('channelIdImgId' + frmo.channelId) && ev.newValue != null) {
frmo.update.img(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[211] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.cat').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.catsList(data.cats);
}, {});
},
run: {
catsList: function (cats) {
$('#catsTbody').empty();
var catRow;
$.each(cats, function (i, cat) {
catRow = frmo.newRow.clone();
catRow[0].id = parseInt(cat.id);
$.each(cat, function (fieldName, val) {
var td = $(catRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(val);
/*if(fieldName=='active') {
if(val==1)td.find('input[name="active"]').attr('checked','checked');
else td.find('input[name="active"]').removeAttr('checked','checked');
}
else*/
td.text(val);
});
catRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
catRow.appendTo('#catsTbody').show();
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Click "Add" for previous line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
$(v).append('');
});
$(row).find('td.editable.number').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('number', '').trim();
$(v).append('');
});
/*$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});*/
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#catsTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
debug.cnsl(id);
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
debug.cnsl(data);
if (data.status == true) {
message('Saved!', 1);
if (!a) form.init();
}
else if (typeof data.status == "string" && data.status.indexOf('Duplicate') + 1) {
message('Use unique order key for each form!', 0);
}
else {
message('Not saved!(', 0);
}
}, formData);
}
},
insert: function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('number', '').trim();
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
if (fieldName != 'cName') {
debug.cnsl(fieldName);
$(e).empty();
// if( $(e).hasClass('num') ) $(e).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(e).hasClass('text')) $(e).append('');
else if ($(e).hasClass('number')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
}
};frm[213] = {
starsCount: 10,
init: function (path) {
debug.cnsl(path);
frmo.events.infoSaveButton();
var params = new Object();
if (isDefined(path[0])) params.mid = parseInt(path[0]);
j.post(['init'], function (data) {
if (data.error) {
message('Please select video to manage', 3);
nav.goTo(105);
}
else {
if (isDefined(data.error)) message(data.error, 0);
if (isDefined(data.details)) {
frmo.nowDay = data.ts;
frmo.info = data.details;
frmo.ma = data.analytics;
frmo.curKeyWordsRef = data.curKeyWordsRef || new Array();
frmo.popularKeyWords = data.popularKeyWords || new Array();
frmo.keyWords = data.keyWords;
frmo.mid = data.details.id;
for (var a in data.cats) {
var line = e(null, e('ctid'), 'option').h(data.cats[a]['name']).a('value', data.cats[a]['id']);
}
for (var a in data.channels) {
var line = e(null, e('chid'), 'option').h(data.channels[a]['name']).a('value', data.channels[a]['id']);
}
frmo.run.infoPanel();
frmo.run.keywordPanel();
frmo.keywordsOption();
analytics.start();
}
}
$('#fileInfo .panel-body').show();
}, params);
},
run: {
infoPanel: function () {
var parentMid, info = frmo.info;
if (isDefined($('#fileInfo').show(500).find('#form')[0])) $('#fileInfo').show(500).find('#form').hide()[0].id = 'settingsForm';
var formInfo = $('#settingsForm');
formInfo[0].name = 'settingsForm';
formInfo.find('video')[0].src = 'https://cp.blago.tube/getFile/' + frmo.info.id + '/video.mp4';
$.each(info, function (name, val) {
if (val == '0000-00-00 00:00:00') val = null;
if (name == 'size' && val != null) val = formatBytes(val, 1);
if (name == 'curUserRating') {
for (var s = frmo.starsCount; s > 0; s--) {
e(s, e('starsBox'), 'i', 'icon-star').a('title', s);
}
for (var s = val; s > 0; s--) $(e(s)).addClass('rated');
}
if (name == 'globalUserRating') {
if (val == null) val = 'not set';
e('globalUserRating').t('(' + val + ')')
}
if ((name == 'createDate' || name == 'updateDate') && val != null) val = parseDate.shortDate(val);
if (name == 'playTime') val = formatTime(val);
if (name != 'curUserRating' && name != 'globalUserRating') formInfo.find('*[name="' + name + '"]').val(val);
if (name == 'activeFlag') {
if (val == 1) formInfo.find('input[name="activeFlag"]').attr('checked', 'checked');
else formInfo.find('input[name="activeFlag"]').removeAttr('checked', 'checked');
}
else if (name == 'linkOnlyFlag') {
if (val == 1) formInfo.find('input[name="linkOnlyFlag"]').attr('checked', 'checked');
else formInfo.find('input[name="linkOnlyFlag"]').removeAttr('checked', 'checked');
}
});
$('#mediaForm').find('*[name="dsc"]').val(frmo.info.dsc);
$('.icon-star').off().on('click', function (t) {
var rid = t.target.id;
j.post(['update', 'rating'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Rating updated!', 1);
for (var s = frmo.starsCount; s > 0; s--) $('#' + s).removeClass('rated');
for (var s = rid; s > 0; s--) $('#' + s).addClass('rated');
}
else message('Updating rating error', 0);
}, {mid: frmo.mid, rating: rid, updateDate: frmo.info.updateDate});
});
frmo.events.prepareVideoSnapshot();
formInfo.fadeIn(200);
document.querySelector('[name="techStatus"]').title = info['techStatusNote'];
},
keywordPanel: function () {
var ckR = frmo.curKeyWordsRef;
for (var id in ckR) {
e('kw' + id, e('existingKeywords'), 'span', 'oneKeyword').t(ckR[id] + ' ').a('data-id', id);
}
var pkW = frmo.popularKeyWords;
for (var id in pkW) {
e(null, e('popularKeywords'), 'a', 'addPopKwrd').t(pkW[id] + ' ').a('data-id', id).a('title', 'Click for add');
}
}
},
keywordsOption: function () {
frmo.kwDelete();
$('#newKeyword').off().on('keypress', function (t) {
if (t.which == 13) {
t.preventDefault();
t.stopImmediatePropagation();
}
}).on('keyup', function (t) {
t.preventDefault();
t.stopImmediatePropagation();
if (t.which == 13 || t.key == ',' || t.key == '.' || !isDefined(t.key)) {
var inp = $('#newKeyword').val().trim().split(',');
$('#hintList').hide();
empty(e('hintList'));
$('#newKeyword').val('');
var er = 0, s = 0;
var reports = new Array(0, 0, 0, 0); //[0] - success, [1] - exist, [2] - validate error, [3] - error
for (var obj in inp) {
if (!frmo.validateText(inp[obj])) {
reports[2]++;
delete inp[obj];
}
}
var count = inp.length;
for (var obj in inp) {
inp[obj] = inp[obj].trim().replace('.', '');
j.post(['insert', 'keywords'], function (data) {
if (data.statusQR) {
e('kw' + data.newKwId, e('existingKeywords'), 'span', 'oneKeyword').t(data.newKwContent + ' ').a('data-id', data.newKwId);
$('#kw' + data.newKwId).show();
frmo.curKeyWordsRef[data.newKwId] = data.newKwContent;
reports[0] = reports[0] + 1;
frmo.kwDelete();
}
else if (data.errorQR.indexOf('Duplicate') + 1) {
reports[1] = reports[1] + 1;
}
else {
reports[3] = reports[3] + 1;
}
s++;
if (count == s + reports[2]) {
message((reports[0] + ' keyword(s) added ' + reports[1] + ' already exist ' + reports[2] + ' rejected'), (reports[1] > 0 || reports[2] > 0 ? 3 : 1));
if (reports[3] != 0) message(reports[3] + ' System error');
}
}, {mid: frmo.mid, words: inp[obj]});
}
}
else {
var inp = $('#newKeyword').val().trim().split(',');
var c = inp[inp.length - 1].trim();
if (c.length > 2) {
j.post(['init', 'keywords'], function (data) {
debug.cnsl(data);
var ckR = data.keyWords;
empty(e('hintList'));
for (var id in ckR) {
e(null, e('hintList'), 'option').t(ckR[id]);
}
}, {str: c, mid: frmo.mid});
}
}
});
},
kwDelete: function () {
$('.kwDelete').off().on('click', function (e) {
var kwid = $(e.target).parents('.oneKeyword').attr('data-id');
debug.cnsl(kwid);
j.post(['delete', 'keywordOneRef'], function (data) {
debug.cnsl(data);
if (data['statusQR']) {
$('#kw' + kwid).hide();
delete frmo.curKeyWordsRef[kwid];
}
}, {mid: frmo.mid, kid: kwid});
});
$('.addPopKwrd').off().on('click', function (ev) {
var kwid = $(ev.target).attr('data-id');
var kwd = ev.target.innerText;
debug.cnsl(ev);
j.post(['insert', 'existKwrd'], function (data) {
e('kw' + kwid, e('existingKeywords'), 'span', 'oneKeyword').t(kwd + ' ').a('data-id', kwid);
$('#kw' + kwid).show();
frmo.keywordsOption();
$(ev.target).hide();
frmo.curKeyWordsRef[kwid] = kwd;
}, {mid: frmo.mid, kid: kwid});
});
},
goToPanel: function (id){
var panel = $("#"+id);
$("html, body").animate({scrollTop: (panel.offset().top - parseInt($('.navbar-fixed-top').css('height')))}, 1000);
panel.removeClass('panel-colapsed');
panel.find('.panel-body').show();
panel.find('.rotate-180').removeClass('rotate-180');
},
validateText: function (string, minLength) {
minLength = minLength || 3;
string = string.trim();
string.replace(/\s\s+/g, ' ');
if (string.length >= minLength) {
return true;
}
else return false;
},
updateImage: function (imgId) {
debug.cnsl('updateImage');
var dataForUpdate = {
mid: frmo.info.id,
imgId: imgId,
updateDate: frmo.info.updateDate
};
debug.cnsl(dataForUpdate);
j.post(['update', 'applytomid'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Applied image to Mid successfully!', 1);
frmo.loadImg(imgId);
//if (isDefined(data.info) && data.info) message('Old screenshot has been deleted', 2);
}
else {
message('Error applying image to Mid...', 0);
}
frmo.info.updateDate = data.updateDate;
}, dataForUpdate);
},
loadImg: function (imgId) {
$('#midImg')[0].poster = img.url(imgId, frmo.info.width, frmo.info.height);
var imag = new Image();
imag.src = img.url(parseInt(imgId), frmo.info.width, frmo.info.height);
imag.onload = function () { // Событие onLoad, ждём момента пока загрузится изображение
frmo.canvas.width = imag.width;
frmo.canvas.height = imag.height;
frmo.context.drawImage(imag, 0, 0); // Рисуем изображение от точки с координатами 0, 0
}
frmo.canvas.dataset.id = imgId;
document.getElementById('saveSnap').disabled = true;
},
clearImg: function () {
if (confirm('Reset image?')) {
frmo.updateImage(4000);
}
},
events: {
infoSaveButton: function () {
$('.save').off('click').on('click', function (e) {
// var idForm = $(e.target).parents('.info, .media')[0].id;
var idForm = $(e.target).parents('.info')[0].id;
console.clear();
debug.cnsl(idForm);
var formData = ff.toObj(idForm);
formData['id'] = parseInt(frmo.info.id);
formData['updateDate'] = frmo.info.updateDate;
debug.cnsl(formData);
j.post(['update', 'info'], function (data) {
debug.cnsl(data);
if(data.alreadyUpdated) {
if(confirm('This mid is already edited by another user. Are you want to load changes?'))form.init([frmo.mid]);
}
else if (data.status) {
message('Saved!', 1);
form.init([frmo.mid]);
}
else message('Not saved', 2);
frmo.info.updateDate = data.updateDate;
}, formData);
});
},
prepareVideoSnapshot: function () {
// Get handles on the video and canvas elements
frmo.video = document.querySelector('video');
frmo.canvas = document.querySelector('canvas');
frmo.context = frmo.canvas.getContext('2d');
frmo.video.addEventListener('loadedmetadata', function () {
frmo.canvas.width = frmo.video.videoWidth > 1920 ? 1920 : frmo.video.videoWidth;
frmo.canvas.height = frmo.video.videoHeight > 1080 ? 1080 : frmo.video.videoHeight;
frmo.loadImg(frmo.info.imgId);
}, false);
}
},
// Takes a snapshot of the video
snap: {
get: function () {
frmo.canvas.width = frmo.video.videoWidth > 1920 ? 1920 : frmo.video.videoWidth;
frmo.canvas.height = frmo.video.videoHeight > 1080 ? 1080 : frmo.video.videoHeight;
frmo.video.crossOrigin = "Anonymous";
// Define the size of the rectangle that will be filled (basically the entire element)
frmo.context.fillRect(0, 0, frmo.canvas.width, frmo.canvas.height);
// Grab the image from the video
frmo.context.drawImage(frmo.video, 0, 0, frmo.canvas.width, frmo.canvas.height);
frmo.canvas.dataset.id = 'new';
document.getElementById('saveSnap').disabled = false;
},
save: function () {
// upload
if (frmo.canvas.dataset.id === 'new') {
var image = frmo.canvas.toDataURL('image/jpeg');
var params = new Object();
if (frmo.canvas.width >= 300 && frmo.canvas.height >= 239) {
params['width'] = frmo.canvas.width;
params['height'] = frmo.canvas.height;
params['size'] = 0; // THIS VALUE ON SERVER SIDE !!! $_POST['size'] = (int) (strlen(rtrim($_POST['slImage'], '=')) * 3 / 4);
params.formId = 135;
params['catId'] = 101;
params['dsc'] = frmo.info.name;
params['orientation'] = 1;
debug.cnsl(params);
j.image(['insert', 'image'], image, function (data) {
debug.cnsl(data);
// update
if (data.result == 1) {
frmo.updateImage(data.imgId);
message('Image has been uploaded', 1);
}
else message('Error uploading image.', 0);
}, params);
}
else message('Image must be 300*300px or more. Your image is ' + frmo.canvas.width + '*' + frmo.canvas.height + '', 0);
}
else {
message('This image already exist and selected or empty', 3);
}
}
}
, delMID: function () {
local.confirmDelete.func(function (params) {
j.post(['delete', 'mid'], function (data) {
if (data.status) {
message('Video deleted successfully', 1);
nav.goTo(105);
}
}, {id: frmo.mid, deleteNote: params.deleteNote});
});
}
, delMidDuplicate: function () {
let equalMid = prompt('Do you want to delete this MID and mark it as duplicate in YouTube log?\nPlease enter equal mid:');
if (parseInt(equalMid)>=100000)
j.post(['delete', 'midDuplicate'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Video deleted successfully', 1);
nav.goTo(105);
}
}, {id: frmo.mid, equalMid: parseInt(equalMid)});
else if(equalMid) message('This mid is not valid',3);
}
, genPub: function () {
j.post(['update', 'tech'], function (data) {
debug.cnsl(data);
if(data.alreadyUpdated) {
if(confirm('This mid is already edited by another user. Are you want to load changes?'))form.init([frmo.mid]);
}
else if (data.status) {
message('Updating started', 1);
}
frmo.info.updateDate = data.updateDate;
}, {id: frmo.mid, updateDate: frmo.info.updateDate});
}
, copyAll: function () {
var allKeywords = '';
for (var kid in frmo.curKeyWordsRef) {
allKeywords += frmo.curKeyWordsRef[kid] + ", ";
}
copyToClipboard(allKeywords);
}
, clearAll: function () {
if (confirm('Delete?')) j.post(['delete', 'keywordRefs'], function (data) {
debug.cnsl(data);
if (data.message) empty(e('existingKeywords'));
}, {mid: frmo.mid});
},
goMidClient: function () {
if (frmo.info.statusOrder < 100) message('Main video file info is updating, please wait few minutes and try again', 3);
else if (frmo.info.activeFlag == '0') message('This video is not active', 3);
else if (frmo.info.statusOrder < 200) message('Video processing in progress. Please wait.', 3);
else if (frmo.info.chActive == '0') message('Channel for this video is not active', 3);
else if (frmo.info.pid == null) message('Something went wrong. Please contact with admin', 3);
else {
if(!frmo.info.availableOnNode) {
message('Video is not available for search (availableOnNode). Link will open after 5 sec');
setTimeout(function () {
window.open('https://blago.tube/watch?v=' + frmo.info.pid);
}, 5000);
}
else window.open('https://blago.tube/watch?v=' + frmo.info.pid);
}
},
onstorage: function (ev) {
if (ev.key == ('midImgId' + frmo.info.id) && ev.newValue != null) {
frmo.updateImage(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[214] = {
init:function(){
if(!isDefined(frmo.newRow))frmo.newRow = $('.playlist').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.itemsList(data.items);
}, {});
},
run:{
itemsList: function (items) {
$('#itemsTbody').empty();
var itemRow;
for(var i in items){
var item=items[i];
itemRow = frmo.newRow.clone();
itemRow[0].id = parseInt(item.id);
$.each(item,function (fieldName,val) {
//debug.cnsl('fieldName,val == ');
//debug.cnsl(fieldName,val);
var td = $(itemRow).find('.'+fieldName);
if(fieldName=='createDate') val = parseDate.shortDate(val);
else if (fieldName=='imgId') {
$(itemRow).find('.image img')[0].src = img.url(parseInt(val), 100,50);
}
/*else if (fieldName=='chName') {
td.text(val);
}*/
if(fieldName=='linkOnly') {
if(val==1)td.find('input[name="linkOnly"]').attr('checked','checked');
else td.find('input[name="linkOnly"]').removeAttr('checked','checked');
}
if(fieldName=='chid'){
val = item['chName'];
}
if(fieldName=='id') {
$(itemRow).find('button[data-functions="manage"]')[0].dataset.id = val;
if(item['hasLink']!=0)$(itemRow).find('button[data-functions="view"]')[0].dataset.id = val;
else $(itemRow).find('button[data-functions="view"]').hide();
}
else if(fieldName!='linkOnly') td.text(val);
});
itemRow.find('td.editable').on('click',function (e) {
$(this).off();
frmo.edit.td(e.target);
});
itemRow.appendTo('#itemsTbody').show();
}
},
addLine:function () {
if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('text','').trim();
$(v).append('');
});
$(row).find('td.editable.number').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('number','').trim();
$(v).append('');
});
$(row).find('td .btn-box').hide();
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color','#8fbc8f');
$('#itemsTbody').append(row);
$(row).find('td.chid input')[0].setAttribute('list', 'hintList');
e(null, $(row).find('td.chid')[0], 'span');
e('hintList', $(row).find('td.chid')[0], 'datalist');
frmo.getChannelsList();
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}
},
update:{
linkOnly:function (ev) {
if(isDefined($(ev).parents('tr:not(#new)')[0])) {
j.post(['update', 'linkOnly'], function (data) {
if (data.status) message('Saved!', 1);
form.init();
}, {id: $(ev).parents('tr')[0].id, linkOnly: $(ev)[0].checked});
}
else {
debug.cnsl("as for new xmmm :( ");
}
},
td:function (e,a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update'], function (data) {
debug.cnsl(data);
if(data.status){
message('Saved!',1);
if(!a)form.init();
}
else {
message('Not saved!(',0);
}
}, formData);
},
img:function (newImgID) {
j.post(['update', 'img'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Saved!', 1);
frmo.init();
}
else message('System Error', 0);
}, {id: frmo.playlistId, imgId: newImgID});
}
},
insert:function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
//debug.cnsl(formData);
if (formData.name == '' || !isDefined(formData.chid)) message("Name and channel name can't be empty",0);
else j.post(['insert', 'new'], function (data) {
//debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color','#deb887');
}
}, formData );
},
edit: {
td: function (ev) {
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName=='') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable','').replace('text','').replace('number','').trim();
//debug.cnsl(fieldName);
$(ev).empty();
if( $(ev).hasClass('number') ) $(ev).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if($(ev).hasClass('text')) $(ev).append(''); // span сделан для того чтобы вывести подскаску у инпут через :after
if (fieldName=='chid') {
$(ev)[0].children[0].setAttribute('list', 'hintList');
debug.cnsl($(ev)[0]);
e('hintList', $(ev)[0], 'datalist');
frmo.getChannelsList();
}
$(ev).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id });
},
getChannelsList: function () {
$('[name="chid"]').off().on('keyup', function (ev) {
empty(e('hintList'));
var inp = $(ev.target).val().trim();
if(inp.length>2){
j.post(['init', 'channelsList'], function (data) {
debug.cnsl(data);
var ckR = data.channelsList;
empty(e('hintList'));
for (var id in ckR){
e(null,e('hintList'),'option').t(ckR[id]).value = id;
}
}, {word: inp});
}
});
},
onstorage: function (ev) {
if (ev.key == ('playlistIdImgId' + frmo.playlistId) && ev.newValue != null) {
frmo.update.img(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[215] = {
init:function(){
if(!isDefined(frmo.newRow))frmo.newRow = $('.item').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.users = data.users;
frmo.run.itemsList(data.items);
}, {});
},
run:{
itemsList: function (items) {
$('#itemsTbody').empty();
var itemRow;
for(var i in items){
var item=items[i];
itemRow = frmo.newRow.clone();
itemRow[0].id = parseInt(item.id);
if(item['expired']==1)$(itemRow).addClass('expired');
$.each(item,function (fieldName,val) {
var td = $(itemRow).find('.'+fieldName);
if(fieldName=='createDate') val = parseDate.shortDate(val);
else if (fieldName=='imgId') {
$(itemRow).find('.image img')[0].src = img.url(parseInt(val), 100,50);
}
/*if(fieldName=='active') {
if(val==1)td.find('input[name="active"]').attr('checked','checked');
else td.find('input[name="active"]').removeAttr('checked','checked');
}*/
// else
td.text(val);
});
itemRow.find('td.editable').on('click',function (e) {
$(this).off();
frmo.edit.td(e.target);
});
itemRow.appendTo('#itemsTbody').show();
}
},
addLine:function () {
if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('text','').trim();
$(v).append('');
});
$(row).find('td.editable.number').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('number','').trim();
$(v).append('');
});
$(row).find('td.editable.date').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('date','').trim();
$(v).append('');
});
/*$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});*/
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color','#8fbc8f');
$('#itemsTbody').prepend(row);
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
//create options in user selector
for (var a in frmo.users) {
var line = e(null, e('userId'), 'option')
.h(frmo.users[a]['name']).a('value', frmo.users[a]['id']);
}
}
},
update:{
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td:function (e,a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update'], function (data) {
debug.cnsl(data);
if(data.status){
message('Saved!',1);
if(!a)form.init();
}
else {
message('Not saved!(',0);
}
}, formData);
}
},
insert:function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color','#deb887');
}
}, formData );
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName=='') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable','').replace('text','')
.replace('number','').replace('date','').replace(' ','').trim();
debug.cnsl(fieldName);
$(e).empty();
if( $(e).hasClass('number') ) $(e).append('');
if( $(e).hasClass('date') ) $(e).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if($(e).hasClass('text')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id });
}
};frm[216] = {
needShowItem: ['imgId', 'name'],
plid: false,
init: function (path, jpath) {
frmo.plid = path.slice(-1)[0];
jpath = jpath || 'start';
j.post(['init', jpath], function (data) {
if (data.error) {
message('Please select playlist to manage', 3);
nav.goTo(214);
}
else {
frmo.process(data);
if(data.search)frmo.searchProcess(data);
}
}, {plid: frmo.plid});
$('#searchBtn').on('click', function () {
var params = ff.toObj("searchParams");
params.plid = frmo.plid;
empty(e('searchedItems'));
j.post(['init', 'search'], function (data) {
debug.cnsl(data);
if (data.search) frmo.searchProcess(data);
// else message('All records are in this playlist or no records at all', 2);
else $('#searchedItems')[0].innerHTML = "All records are in this playlist or no records at all
";
}, params);
});
},
process: function (data) {
// debug.cnsl(data.items);
if (isDefined(data.items)) {
empty(e('itemsTbody'));
}
for (var i in data.items) {
var row = data.items[i];
var p = e(null, e('itemsTbody'), 'tr', 'item').a('draggable', 'true').a('data-sort', i);
e(null, e(null, p, 'td'), 'button', 'sort btn-default btn').h(e(null, 'no', 'i', 'icon-menu-open'));
// .onclick = function (e) {
// frmo.del(e);
// };
for (var r in frmo.needShowItem) {
var rn = frmo.needShowItem[r];
var item = row[rn];
if (rn == 'imgId') {
e(null, p, 'td', rn).h(e(null, 'no', 'img').s(img.url(item, 70, 50)).a('draggable', 'false'));
} else if (rn == 'name') {
e(null, p, 'td', rn).h(e(null, 'no', 'a').a('onclick', 'window.open(\'' + nav.link(213, [row.mid]) + '\')').h(local.dbSymbols(item)));
}
else {
e(null, p, 'td', rn).t(item);
}
}
//debug.cnsl(row.id);
// e('\''+row.id+'\'', p, 'button', 'delete btn-danger btn').h(e(null, 'no', 'i', 'icon-cross'));
e(row.id, e(null, p, 'td'), 'button', 'delete btn-danger btn').h(e(null, 'no', 'i', 'icon-cross'))
.onclick = function (e) {
frmo.del(e.target);
};
// e(null, p, 'button', 'delete btn-danger btn').h(e(null, 'no', 'i', 'icon-cross'));
}
frmo.sort.eventListeners();
},
searchProcess: function (data) {
empty(e('searchedItems'));
for (var si in data.search) {
var row = data.search[si];
// debug.cnsl(row);
var sp = e('sr' + row.id, e('searchedItems'), 'tr', 'item');
var item = row['name'];
var butt = e(row.id, 'no', 'button', 'add btn btn-success btn-xs').a('type', 'button')
.h(' Add to playlist').h(e(null, 'no', 'i', 'icon-add position-left'));
butt.onclick = function (e) {
frmo.add(e.target)
};
e(null, sp, 'td', 'name').h(e(null, 'no', 'a').a('onclick', 'window.open(\'' + nav.link(213, [row.id]) + '\')').h(local.dbSymbols(item)));
e(null, sp, 'td', 'actions').h(butt);
}
},
add: function (ev) {
if(!ev.id) ev=ev.parentElement;
//debug.cnsl('add click!');
j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
$('#sr' + ev.id).remove();
frmo.init([frmo.plid], 'update');
}
else message('System error', 3);
}, {plid: frmo.plid, mid: ev.id});
},
del: function (e) {
debug.cnsl('del click!');
if (e.nodeName != 'BUTTON') e = $(e).parents('button')[0];
$(e).parents('tr').remove();
j.post(['delete'], function (data) {
debug.cnsl(data);
}, {id: e.id, plid: frmo.plid});
},
sort: {
eventListeners: function () {
frmo.dragCont = null;
frmo.cols = document.querySelectorAll('#itemsTbody .item');
for (var i = 0; i < frmo.cols.length; i++) {
var col = frmo.cols[i];
//debug.cnsl(col);
col.addEventListener('dragstart', frmo.sort.handleDragStart, false);
col.addEventListener('dragenter', frmo.sort.handleDragEnter, false);
col.addEventListener('dragover', frmo.sort.handleDragOver, false);
col.addEventListener('dragleave', frmo.sort.handleDragLeave, false);
col.addEventListener('drop', frmo.sort.handleDrop, false);
col.addEventListener('dragend', frmo.sort.handleDragEnd, false);
}
},
handleDragStart: function (e) {
e.target.style.opacity = '0.4';
frmo.dragCont = e.target;
e.dataTransfer.effectAllowed = 'all';
e.dataTransfer.setData('text/html', e.target.outerHTML);
frmo.startPos = $(e.target).attr('data-sort');
frmo.startY = e.pageY;
},
handleDragOver: function (e) {
if (e.preventDefault) {
e.preventDefault();
}
if (e.offsetY / e.target.offsetHeight > 0.5) {
this.classList.add('overAfter');
this.classList.remove('overBefore');
}
else {
this.classList.add('overBefore');
this.classList.remove('overAfter');
}
e.dataTransfer.dropEffect = 'copy';
return false;
},
handleDragEnter: function (e) {
for (var i = 0; i < frmo.cols.length; i++) {
var col = frmo.cols[i];
col.classList.remove('overBefore');
col.classList.remove('overAfter');
}
},
handleDrop: function (e) {
var relativePos = -1;
if ((e.pageY - frmo.startY) < 0) relativePos = 0;
if (e.stopPropagation) {
e.stopPropagation();
}
if (frmo.dragCont != this) {
var cont = e.dataTransfer.getData('text/html');
if (e.offsetY / e.target.offsetHeight > 0.5) {
$(cont).insertAfter(this);
relativePos = relativePos + 1;
}
else $(cont).insertBefore(this);
frmo.endPos = parseInt($(this).attr('data-sort')) + relativePos;
frmo.dragCont.remove();
}
return false;
},
handleDragEnd: function (e) {
frmo.cols = document.querySelectorAll('#itemsTbody .item');
for (var i = 0; i < frmo.cols.length; i++) {
var col = frmo.cols[i];
col.classList.remove('overBefore');
col.classList.remove('overAfter');
col.style.opacity = '1';
}
debug.cnsl(frmo.startPos);
debug.cnsl(frmo.endPos);
if (isDefined(frmo.startPos) && isDefined(frmo.endPos) && frmo.startPos != frmo.endPos)
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
frmo.init([frmo.plid]);
}
else message('Something went wrong',1);
delete frmo.endPos;
}, {plid: frmo.plid, sortOld: frmo.startPos, sortNew: frmo.endPos});
frmo.sort.eventListeners();
}
}
};frm[217] = {
pagerCount: 50,
searchParams: false,
init: function (params) {
frmo.page = params!=0 ? params.shift() : 0;
if (!isDefined(frmo.newRow)) frmo.newRow = $('.word').remove().clone();
j.post(['init'], function (data) {
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(217));
}
frmo.listCount = data.Count;
frmo.list = data.list;
debug.cnsl(data);
if(data.Count>0)frmo.run.wordsList(data.words);
else message('Nothing found', 3);
}, {page: frmo.page, pagerCount: frmo.pagerCount});
$('#searchInput').off()
.on('keypress', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
}
})
.on('keyup', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
frmo.search();
}
});
},
run: {
wordsList: function (words) {
// console.clear();
$('#wordsTbody').empty();
var wordRow;
$.each(words, function (i, word) {
// debug.cnsl(word);
// debug.cnsl(word.id+" = "+word.status);
// return false;
wordRow = frmo.newRow.clone();
wordRow[0].id = parseInt(word.id);
wordRow[0].className += " status" + word.status;
$.each(word, function (fieldName, val) {
var td = $(wordRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(val);
if(fieldName=='status' && word.status != 1) {
if(word.status == 0)$(wordRow).find('.actions').html('DELETED');
if(word.status == 2)$(wordRow).find('.actions').html('Merged with '+word.aid+'');
}
else
td.text(val);
});
wordRow.find('td.editable').on('click', function (ev) {
$(this).off();
frmo.edit.td(ev.target);
});
wordRow.appendTo('#wordsTbody').show();
});
pagerService();
$('.merge :not(input)').on('click', function (ev) {
frmo.merge(ev.target);
});
$('.merge input').on('keyup', function (ev) {
if (ev.keyCode == 13) frmo.merge(ev.target);
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Click "Add" for previous line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
$(v).append('');
});
/*$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});*/
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#wordsTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else message('Not saved! Maybe such keyword already exist', 0);
}, formData);
}
},
insert: function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved! Maybe such keyword already exist', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
// if( $(e).hasClass('num') ) $(e).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(e).hasClass('text')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
},
merge: function (e) {
var from = $(e).parents('.word')[0].id;
var to = $(e).parents('button').find('input').val();
debug.cnsl(from, to);
debug.cnsl(e);
if (confirm('Merge?')) j.post(['update', 'merge'], function (data) {
debug.cnsl(data);
if (data.status2) {
message('Merge success!', 2);
$(e).parents('.word').remove();
}
else message('System error', 0);
}, {from: from, to: to});
},
search: function () {
frmo.searchParams = {
sw: $('#searchInput').val(),
like: $('#like')[0].checked ? 1 : 0,
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(217));
}
frmo.listCount = data.Count;
frmo.list = data.list;
debug.cnsl(data);
if(data.Count>0)frmo.run.wordsList(data.words);
else message('Nothing found', 3);
}, frmo.searchParams);
}
};frm[218] = {
pagerCount: 50,
searchParams: false,
init: function (params) {
frmo.page = params!=0 ? params.shift() : 0;
if (!isDefined(frmo.newRow)) frmo.newRow = $('.word').remove().clone();
j.post(['init'], function (data) {
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(217));
}
frmo.listCount = data.Count;
frmo.list = data.list;
debug.cnsl(data);
if(data.Count>0)frmo.run.wordsList(data.words);
else message('Nothing found', 3);
}, {page: frmo.page, pagerCount: frmo.pagerCount});
$('#searchInput').off()
.on('keypress', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
}
})
.on('keyup', function (e) {
if (e.which == 13) {
e.preventDefault();
e.stopImmediatePropagation();
frmo.search();
}
});
},
run: {
wordsList: function (words) {
// console.clear();
$('#wordsTbody').empty();
var wordRow;
$.each(words, function (i, word) {
wordRow = frmo.newRow.clone();
wordRow[0].id = parseInt(word.id);
wordRow[0].className += " status" + word.status;
$.each(word, function (fieldName, val) {
var td = $(wordRow).find('.' + fieldName);
if(fieldName == 'minRating' || fieldName == 'maxRating')td[0].dataset.value = val;
if (fieldName == 'createDate') val = parseDate.shortDate(val);
else td.text(val);
});
wordRow.find('td.editable').on('click', function (ev) {
$(this).off();
frmo.edit.td(ev.target);
});
wordRow.appendTo('#wordsTbody').show();
});
pagerService();
$('.merge :not(input)').on('click', function (ev) {
frmo.merge(ev.target);
});
$('.merge input').on('keyup', function (ev) {
if (ev.keyCode == 13) frmo.merge(ev.target);
});
}
},
update: {
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else message('Not saved! You can\'t use negative or empty values for weight', 0);
}, formData);
}
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('num', '').trim();
debug.cnsl(fieldName);
$(e).empty();
if( $(e).hasClass('num') ) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
changingRating: function (ev) {
var p = $(ev).parents('tr')[0];
var min = $(p).children('td.minRating')[0];
var max = $(p).children('td.maxRating')[0];
min.innerHTML = Math.round (min.dataset.value*ev.value*1000)/1000;
max.innerHTML = Math.round (max.dataset.value*ev.value*1000)/1000;
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
},
merge: function (e) {
var from = $(e).parents('.word')[0].id;
var to = $(e).parents('button').find('input').val();
debug.cnsl(from, to);
debug.cnsl(e);
if (confirm('Merge?')) j.post(['update', 'merge'], function (data) {
debug.cnsl(data);
if (data.status2) {
message('Merge success!', 2);
$(e).parents('.word').remove();
}
else message('System error', 0);
}, {from: from, to: to});
},
search: function () {
frmo.searchParams = {
sw: $('#searchInput').val(),
like: $('#like')[0].checked ? 1 : 0,
page: frmo.page,
pagerCount: frmo.pagerCount
};
j.post(['init', 'search'], function (data) {
if (isDefined(data.page)) {
frmo.page = data.page;
history.pushState(null, null, nav.link(217));
}
frmo.listCount = data.Count;
frmo.list = data.list;
debug.cnsl(data);
if(data.Count>0)frmo.run.wordsList(data.words);
else message('Nothing found', 3);
}, frmo.searchParams);
}
};frm[220] = {
page: 0,
par: {simPercent: 20, deviation: 0},
init: function (path) {
frmo.page = parseInt(path)>=0 ? parseInt(path) : frmo.page;
e('simPercent').value = frmo.par.simPercent;
e('deviation').value = frmo.par.deviation;
frmo.par.position = frmo.page;
j.post(['init'], function (data) {
if(data.pairCount>0){
loadedData = data.simPair;
e('allItem').t(data.pairCount);
if(frmo.page < data.pairCount) e('currentPagePossition').t(frmo.page+1);
else {
nav.goTo(parseInt(form.id), 0);
}
for(let i = 1; i<3; i++){
let par = e('video'+i);
par.querySelector('video').src = 'https://cp.blago.tube/getFile/'+data.simPair['mid'+i]+'/video.mp4';
let parInfo = e('infoBox'+i);
parInfo.innerHTML = '';
e(null,e(null,e(null,parInfo,'tr', null, {prepend:true}), 'td'), 'h5').t(data.simPair['name'+i]+
'');
e(null,e(null,parInfo,'tr'), 'td').t(formatTime(data.simPair['playTime'+i]));
e(null,e(null,parInfo,'tr'), 'td').t(data.simPair['bitrate'+i]);
e(null,e(null,parInfo,'tr'), 'td').t(data.simPair['width'+i]);
e(null,e(null,parInfo,'tr'), 'td').t(data.simPair['height'+i]);
e(null,e(null,parInfo,'tr'), 'td').t(formatBytes(data.simPair['size'+i]));
e(null,e(null,parInfo,'tr'), 'td').t(data.simPair['chName'+i]);
e(null,e(null,parInfo,'tr'), 'td').t(parseDate.shortDate(data.simPair['createDate'+i]));
e(null,e(null,parInfo,'tr'), 'td', 'text-center').t('');
}
}
else message('All results for this params are checked', 1);
}, frmo.par);
},
act:{
duplDelete: function (curPosition) {
let midDel = loadedData['mid'+curPosition];
let midEq = curPosition==1 ? loadedData['mid2'] : loadedData['mid1'];
j.post(['delete', 'midDuplicate'], function (data) {
if(data.status) {
message(data.status, 1);
frmo.init();
}
}, {formId: 213, id: midDel, equalMid: midEq});
},
notEqual: function () {
j.post(['update', 'notEqual'], function (data) {
if(data.status) {
message(data.status, 1);
frmo.init();
}
}, {mida: loadedData.mid1, midb: loadedData.mid2});
}
}
};
frm[230] = {
init: function (path) {
j.post(['init'], function (data) {
data = data.usefulData;
const dataBx = e('mainDataBox');
for (let k in data) {
let curBx = e(null, dataBx, 'div', 'col-md-6');
e(null,curBx,'h4').t(k);
if(k=='totalSize')e(null, curBx,'p').t('Total originals size: ' + formatBytes(data[k]));
else for (let c in data[k]) {
e(null, curBx,'p').t(''+data[k][c].name+': ' + formatBytes(data[k][c].s));
}
}
}, {});
}
};
frm[243] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.word').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.list(data.libs);
}, {});
},
run: {
list: function (words) {
$('#wordsTbody').empty();
var wordRow;
$.each(words, function (i, word) {
wordRow = frmo.newRow.clone();
wordRow[0].id = parseInt(word.id);
$.each(word, function (fieldName, val) {
var td = $(wordRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(val);
/*if(fieldName=='active') {
if(val==1)td.find('input[name="active"]').attr('checked','checked');
else td.find('input[name="active"]').removeAttr('checked','checked');
}
else*/
td.text(val);
});
wordRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
wordRow.appendTo('#wordsTbody').show();
});
$('.merge :not(input)').on('click',function (e) {
frmo.merge(e.target);
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Click "Add" for previous line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
$(v).append('');
});
/*$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});*/
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#wordsTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
/* active:function (e) {
j.post(['update','active'], function (data) {
if(data.status) message('Saved!',1);
form.init();
}, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked });
},*/
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else message('Not saved!(', 0);
}, formData);
}
},
insert: function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
// if( $(e).hasClass('num') ) $(e).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(e).hasClass('text')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
},
merge: function (e) {
var from = $(e).parents('.word')[0].id;
var to = $(e).parents('button').find('input').val();
debug.cnsl(from, to);
debug.cnsl(e);
if (confirm('Merge?')) j.post(['update','merge'], function (data) {
debug.cnsl(data);
if (data.status2) {
message('Merge success!',2);
$(e).parents('.word').remove();
}
else message('Error',0);
}, {from: from, to: to});
}
};frm[249] = {
init: function () {
if (!isDefined(frmo.newRow)) frmo.newRow = $('.chanel').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.run.channelsList(data.channels);
}, {});
},
run: {
channelsList: function (channels) {
$('#channelsTbody').empty();
var chanelRow;
$.each(channels, function (i, channel) {
chanelRow = frmo.newRow.clone();
chanelRow[0].id = parseInt(channel.id);
for (var fieldName in channel) {
var val = channel[fieldName];
var td = $(chanelRow).find('.' + fieldName);
if (fieldName == 'createDate') val = parseDate.shortDate(channel['createDate']);
else if (fieldName == 'updateDate') val = parseDate.shortDate(channel['updateDate']);
else if (fieldName == 'imgId') {
val = "" +
"
";
}
if (fieldName == 'active') {
if (val == 1) td.find('input[name="active"]').attr('checked', 'checked');
else td.find('input[name="active"]').removeAttr('checked', 'checked');
}
else if (fieldName == 'isDefault') {
if (val == 1) td.find('input[name="isDefault"]').attr('checked', 'checked');
else td.find('input[name="isDefault"]').removeAttr('checked', 'checked');
}
else
td.html(val);
}
chanelRow.find('td.editable').on('click', function (e) {
$(this).off();
frmo.edit.td(e.target);
});
chanelRow.appendTo('#channelsTbody').show();
});
},
addLine: function () {
if ($('#new').is('tr')) {
message('Click "Add" for previous line', 3);
return;
}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim();
/*if (fieldName=='name')$(v).append('' +
'');
else */
$(v).append('');
});
$(row).find('td.editable.textarea').each(function (i, v) {
var fieldName = $(v)[0].className.replace('editable', '').replace('textarea', '').trim();
$(v).append('');
});
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color', '#8fbc8f');
$('#channelsTbody').append(row);
$("html, body").animate({scrollTop: $(document).height()}, 1000);
}
},
update: {
td: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
if (id != 'new') {
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update', 'all'], function (data) {
if (isDefined(data.matched)) {
if (data.changed == 1 && data.errno == 0)
message('Chanel\'s url saved!', 1);
else if (data.errno == 1062)
message('Url already exists', 3);
else if (data.errno != 0)
message('System error', 3);
else if (data.changed == 0)
message('Channel url can\'t be changed because it\'s not empty!', 0);
}
if (data.status) {
message('Channel info saved!', 1);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) {
message('Channel name already exists', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('default') + 1) {
message('User can have only one default channel', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('cName') + 1) {
message('Url already exists', 3);
}
else {
message('Not saved!(', 0);
debug.cnsl(data);
}
frmo.init();
debug.cnsl(data);
}, formData);
}
},
img: function (newImgID) {
j.post(['update', 'img'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Saved!', 1);
frmo.init();
}
else message('System error!', 0);
}, {id: frmo.channelId, imgId: newImgID});
}
},
insert: function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
if (formData.cName == '' || formData.name == '') message("Name and cName can't be empty", 0);
else j.post(['insert', 'new'], function (data) {
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) {
message('Name already exists', 3);
}
else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('default') + 1) {
message('User can have only one default channel', 3);
}
else {
message('Not saved!', 0);
$('#new').css('background-color', '#deb887');
debug.cnsl(data);
}
}, formData);
},
edit: {
td: function (e) {
var text = $(e).text().trim();
var fieldName = $(e)[0].className;
if (fieldName == '') fieldName = $(e).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('textarea', '').trim();
fieldName = fieldName.replace('editable', '').replace('text', '').trim();
debug.cnsl(fieldName);
$(e).empty();
// if( $(e).hasClass('num') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(e).hasClass('text')) $(e).append('');
else if ($(e).hasClass('textarea')) $(e).append('');
$(e).parents('tr').find('button.save').removeAttr('disabled');
}
},
del: function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
else message('Channel not deleted. Maybe it\'s not empty', 0);
}, {id: $(e).parents('tr')[0].id});
},
onstorage: function (ev) {
if (ev.key == ('channelIdImgId' + frmo.channelId) && ev.newValue != null) {
frmo.update.img(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[250] = {
init:function(){
if(!isDefined(frmo.newRow))frmo.newRow = $('.playlist').remove().clone();
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.chList=data.channelsList;
frmo.run.itemsList(data.items);
$('#channelSelector').empty();
local.getSelect(frmo.chList, 'channelSelector', '-- Select channel --', null, null, 'channelSelector');
}, {});
$('#channelSelector').off().on('change', function (ev) {
var chid = parseInt(ev.target.value);
if(chid>0){
$('#itemsTbody tr').hide();
$('#itemsTbody tr.ch'+chid).show();
}
else $('#itemsTbody tr').show();
});
},
run:{
itemsList: function (items) {
$('#itemsTbody').empty();
var itemRow;
// $.each(items, function (i, item) {
for(var i in items){
var item=items[i];
itemRow = frmo.newRow.clone();
itemRow[0].id = parseInt(item.id);
itemRow[0].classList = 'playlist ch'+parseInt(item.chid);
$.each(item,function (fieldName,val) {
//debug.cnsl('fieldName,val == ');
//debug.cnsl(fieldName,val);
var td = $(itemRow).find('.'+fieldName);
if(fieldName=='createDate') val = parseDate.shortDate(val);
else if (fieldName=='imgId') {
$(itemRow).find('.image img')[0].src = img.url(parseInt(val), 100,50);
}
/*else if (fieldName=='chName') {
td.text(val);
}*/
if(fieldName=='linkOnly') {
if(val==1)td.find('input[name="linkOnly"]').attr('checked','checked');
else td.find('input[name="linkOnly"]').removeAttr('checked','checked');
}
if(fieldName=='chName'){
debug.cnsl(item['chid']);
val = local.getSelect(frmo.chList, 'chid', parseInt(item['chid']));
}
if(fieldName=='id') {
$(itemRow).find('button[data-functions="manage"]')[0].dataset.id = val;
if(item['hasLink']!=0)$(itemRow).find('button[data-functions="view"]')[0].dataset.id = val;
else $(itemRow).find('button[data-functions="view"]').hide();
}
else if(fieldName!='linkOnly') td.html(val);
});
itemRow.find('td.editable').on('click',function (e) {
$(this).off();
frmo.edit.td(e.target);
});
itemRow.appendTo('#itemsTbody').show();
}
$('[name="chid"]').off().on('change', function (ev) {
var id = $(ev.target).parents('tr:not(#new)')[0].id;
$('#' + id +' td .save')[0].disabled = false;
});
},
addLine:function () {
if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;}
var row = frmo.newRow.clone().show();
$(row).find('td.editable.text').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('text','').trim();
$(v).append('');
});
$(row).find('td.editable.number').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('number','').trim();
$(v).append('');
});
$(row).find('td .btn-box').hide();
$(row).find('td.chName').html(local.getSelect(frmo.chList, 'chid', 'Select channel', true));
/*$(row).find('td.editable.textarea').each(function (i,v) {
var fieldName = $(v)[0].className.replace('editable','').replace('textarea','').trim();
$(v).append('');
});*/
$(row).find('button:not(.add), .status *').remove();
$(row).find('button.add').show();
$(row)[0].id = 'new';
$(row).css('background-color','#8fbc8f');
$('#itemsTbody').append(row);
$("html, body").animate({ scrollTop: $(document).height() }, 1000);
}
},
update:{
linkOnly:function (ev) {
if(isDefined($(ev).parents('tr:not(#new)')[0])) {
j.post(['update', 'linkOnly'], function (data) {
if (data.status) message('Saved!', 1);
form.init();
}, {id: $(ev).parents('tr')[0].id, linkOnly: $(ev)[0].checked});
}
else {
debug.cnsl("as for new xmmm :( ");
}
},
td:function (e,a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update'], function (data) {
debug.cnsl(data);
if(data.status){
message('Saved!',1);
if(!a)form.init();
}
else {
message('Not saved!(',0);
}
}, formData);
},
img:function (newImgID) {
j.post(['update', 'img'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Saved!', 1);
frmo.init();
}
else message('System error!', 0);
}, {id: frmo.playlistId, imgId: newImgID});
}
},
insert:function (e) {
// var id = $(e).parents('tr')[0].id;
var formData = ff.toObj('new');
// if (!isDefined(formData['id'])) formData['id'] = id;
//debug.cnsl(formData);
if (formData.name == '' || !isDefined(formData.chid)) message("Name and channel name can't be empty",0);
else j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
frmo.init();
}
else {
message('Not saved!', 0);
$('#new').css('background-color','#deb887');
}
}, formData );
},
edit: {
td: function (ev) {
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName=='') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable','').replace('text','').replace('number','').trim();
//debug.cnsl(fieldName);
$(ev).empty();
if( $(ev).hasClass('number') ) $(ev).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if($(ev).hasClass('text')) $(ev).append(''); // span сделан для того чтобы вывести подскаску у инпут через :after
$(ev).parents('tr').find('button.save').removeAttr('disabled');
}
},
del:function (e) {
if(confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id });
},
onstorage: function (ev) {
if (ev.key == ('playlistIdImgId' + frmo.playlistId) && ev.newValue != null) {
frmo.update.img(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[251] = Object.create(frm[216]);frm[253] = Object.create(frm[213]);frm[254] = Object.create(frm[126]);
frm[254].uploadCallback = function(params){
params.formId = 254;
debug.cnsl(params);
j.post(['insert','upload'], function (data,params) {
if(isDefined(data.success)){
message(''+params.name + ' has been uploaded.', 1);
if(isDefined(data.youTubeStatus)) {
if(data.youTubeStatus) {
message('All youtube data copied success', 1);
if(form.id == 254) {
if(sett.perms[161])nav.goTo(161);
else nav.goTo(162);
}
}
else message('Something went wrong with youTube API', 0);
}
}
else message('Error while uploading ' + params.name);
}, params);
};frm[255] = Object.create(frm[133]);frm[256] = Object.create(frm[160]);frm[267] = {
init: function (path) {
frmo.id=parseInt(path);
// frmo.events.infoSaveButton();
var params = new Object();
if (isDefined(path[0])) params.mid = parseInt(path[0]);
j.post(['init'], function (data) {
if(!data.isOwner){
message(data.error, 3);
nav.goTo(255);
}
debug.cnsl(data);
frmo.details=data.details;
frmo.catsList=data.imgCatsList;
frmo.activeCats=data.imgCatsUse;
frmo.imgUse=data.imageUse;
frmo.run.articleCatsListBox();
}, {imgId:path[0]||4000});
},
run: {
infoPanel: function () {
var parentMid, info = frmo.details;
if(isDefined(frmo.imgUse) && frmo.imgUse.length!=0){
$.each(frmo.imgUse, function (mid, val) {
var block = e('using');
var el = e(null, block, 'button', 'goMid btn');
el.innerHTML=''+ val['useId'];
el.title=val['title'];
el.dataset.ext = val['ext'];
el.type='button';
});
$('#using').show();
}
else $('#using').html('This image isn\'t using').show();
$('#fileInfo').show(500).find('#form').hide()[0].id = 'settingsForm';
var formInfo = $('#settingsForm');
$.each(info, function (name, val) {
if (name == 'size' && val != null) val = formatBytes(val, 1);
if ((name == 'createDate') && val != null) val = parseDate.shortDate(val);
formInfo.find('*[name="' + name + '"]').val(val);
});
for (var i in frmo.activeCats) {
if (i!='')$('#catId').find('#'+i).attr('checked','checked');
}
$('#thisImg')[0].src = img.url(frmo.id, 0, 0);
formInfo.fadeIn(500);
frmo.events();
},
articleCatsListBox: function () {
var box = '';
box+='';
$('#catId').html(box);
frmo.run.infoPanel();
}
},
events: function () {
$('.goMid').off().on('click', function (e) {
var mid = e.target.innerText;
switch (e.target.dataset.ext){
case 'mp3': {
window.open(nav.link(151, mid));
break;
}
case 'mp4': {
window.open(nav.link(213, mid));
break;
}
case 'holiday': {
window.open(nav.link(114, 'edit/'+mid));
break;
}
case 'channel': {
window.open(nav.link(249, mid));
break;
}
case 'pdf': {
window.open(nav.link(151, mid));
break;
}
case 'zip': {
window.open(nav.link(151, mid));
break;
}
case 'album': {
window.open(nav.link(216, mid));
break;
}
case 'slide': {
window.open(nav.link(148, mid));
break;
}
case 'article': {
window.open(nav.link(108, mid));
break;
}
case 'author': {
window.open(nav.link(127));
break;
}
case 'manualLock': {
window.open(nav.link(136));
break;
}
default:
break;
}
});
$('.save').off().on('click', function (e) {
var data = ff.toObj('settingsForm');
data['id'] = String(frmo.id);
data['formId'] = "255";
debug.cnsl(data);
j.post(['update', 'all'], function (data) {
if (data.status) {
message('Saved', 1);
}
else message('Not saved!(', 0);
}, data);
});
$('#catId input[type="checkbox"]').on('click',function (e) {
debug.cnsl(ff.chkBoxVal(e.target));
var params = {
imgId: String(frmo.id),
catId: $(e.target)[0].id,
formId: "255",
status: ff.chkBoxVal(e.target)
};
debug.cnsl(params);
j.post(['update', 'catImg'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Image category updated', 1);
}
else {
message('Error updating image category', 0);
}
}, params);
});
$('#thisImg').off().on('click', function (ev) {
var X = ev.offsetX / (ev.target.width/100);
var Y = ev.offsetY / (ev.target.height/100);
$('*[name="centerX"]').val(X);
$('*[name="centerY"]').val(Y);
e('save').click();
frmo.clearCache();
});
$('.delImg').off().on('click', function (e) {
if (confirm('Delete?')) j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
nav.goTo(255);
} else {
message('This image has a reference and can\'t be deleted.', 3);
debug.cnsl('Not deleted');
debug.cnsl(data);
}
}, {id: frmo.id,formId:255});
});
},
clearCache:function () {
j.post(['update','cache'], function (data) {
if(data.status){
message("Cache cleared successfully!\n"+data.count+" file(s) deleted", 1);
}
}, {imgId:frmo.id});
}
};frm[288] = {
page1: 1,
page2: 1,
init: function (path) {
frmo.plid = path.slice(-1)[0];
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.paramsInit(data.channels, data.cats, data.chDef, data.ctDef);
frmo.midsList(data.midsList1, e('channel1'));
frmo.midsList(data.midsList2, e('channel2'));
}, {});
$('.updSearch').off().on('click', function (ev) {
var num = $(ev.target).parents('.channelSelector')[0].dataset.num;
frmo['page'+num] = 1;
e('pageNum'+num).t(1);
frmo.search(ev.target);
});
$('.nextPage').off().on('click', function (ev) {
ev.preventDefault();
ev.stopImmediatePropagation();
var num = $(ev.target).parents('.channelSelector')[0].dataset.num;
var curp = 'page'+num;
frmo[curp] = isDefined(frmo[curp]) ? frmo[curp] + 1 : 1;
e('pageNum'+num).t(frmo[curp]);
document.querySelector('#searchForm'+num+' .prevPage').classList.remove('hidden');
frmo.search(ev.target, frmo[curp]);
});
$('.prevPage').off().on('click', function (ev) {
ev.preventDefault();
ev.stopImmediatePropagation();
var num = $(ev.target).parents('.channelSelector')[0].dataset.num;
var curp = 'page'+num;
frmo[curp] = isDefined(frmo[curp]) ? frmo[curp] <= 1 ? 1 : frmo[curp] - 1 : 1;
e('pageNum'+num).t(frmo[curp]);
if(frmo[curp] <= 1)document.querySelector('#searchForm'+num+' .prevPage').classList.add('hidden');
frmo.search(ev.target, frmo[curp]);
});
},
midsList: function (data, par) {
empty(par);
if (isDefined(data) && data != null && Object.keys(data).length)
for (var i in data) {
var k = data[i].id;
var line = e(null, par, 'tr', 'midLine');
e(null, line, 'td').t('');
e(null, line, 'td').t('' + data[i]['name'] + '
'+data[i]['info']+'');
e(null, line, 'td').t('')
}
else e(null, e(null, par, 'tr', 'nothing'), 'td').a('colspan', '4').t('This channel hasn\'t any video or this page is empty');
$('.midImg').off().on('mousedown', function (ev) {
debug.cnsl('mousedown');
debug.cnsl(ev.which);
if (ev.which == 1) {
ev.preventDefault();
ev.stopImmediatePropagation();
ev.target.src = ev.target.dataset.src;
ev.target.play();
ev.target.controls = true;
// $(ev.target).css('width', '120px');
$(ev.target).css('height', 'auto');
$(ev.target).css('min-height', '80px');
}
});
},
paramsInit: function (chList, ctList, chDef, ctDef) {
local.getSelect(chList, 'chid', parseInt(chDef), 'required', null, 'searchForm1');
// local.getSelect(chList, 'chid', 'Select channel', 'required', null, 'searchForm2');
local.getSelect(chList, 'chid', 'All channels', null, null, 'searchForm2');
local.getSelect(ctList, 'ctid', parseInt(ctDef), null, null, 'searchForm1');
// local.getSelect(ctList, 'ctid', 'Select category', 'required', null, 'searchForm2');
local.getSelect(ctList, 'ctid', 'All categories', null, null, 'searchForm2');
$('.channelSelector select').off().on('change', function (ev) {
$(ev.target).css('border-color', '#ddd');
frmo.search(ev.target);
});
$('[name="sw"]').off().on('keyup', function (ev) {
frmo.search(ev.target);
});
},
move: function (ev) {
var newParams = $(ev).parents('#channel1').length > 0 ? 'searchForm2' : 'searchForm1';
var newParent = $(ev).parents('#channel1').length > 0 ? '#channel2' : '#channel1';
var params = ff.toObj(newParams);
if ((isDefined(params['chid'])&&isDefined(params['ctid']))&¶ms['chid']!=''&¶ms['ctid']!='') {
params['id'] = ev.dataset.mid;
j.post(['update'], function (data) {
$('.nothing').hide();
if (data.status) {
var midline = $(ev).parents('.midLine').remove().clone();
//debug.cnsl(midline);
midline.appendTo(newParent).show()
}
}, params);
}
else {
$('#' + newParams + ' [name="chid"], #' + newParams + ' [name="ctid"]').css('border-color', 'red');
message('Select channel and category to move', 3);
}
},
search: function (click, page) {
var params = $(click).parents('.channelSelector')[0];
var par = $(click).parents('.channelColumn').find('.channelListBody')[0];
// debug.cnsl(params);
var sData = ff.toObj(params.id);
var addParams = ff.toObj('addParams');
if (isDefined(page)) sData['page'] = page;
else e('pageNum'+params.dataset.num).t(1);
for (var k in addParams) {
sData[k] = addParams[k];
}
debug.cnsl(sData);
debug.cnsl(sData);
j.post(['init', 'channel'], function (data) {
debug.cnsl(data);
frmo.midsList(data.midsList, par);
}, sData);
}
};frm[289] = {
init: function (fpath, order) {
frmo.id = fpath[0];
// debug.cnsl();
if (!isDefined(fpath[0]) || parseInt(fpath[0]) < 100000) {
message("MID doesn't exist.
You can replace track for existing MID only!", 0);
nav.goTo(126);
}
else {
j.post(['init'], function (data) {
e('titlePanel').t('Replace file for: "' + data.name + '" -- (' + fpath[0] + ')')
}, {id: frmo.id});
}
},
upload: function (el) {
debug.cnsl(el, el.files);
var formData = ff.toObj('noteForm');
upload.process(el.files, this.uploadCallback, formData);
},
uploadBtn: function () {
debug.cnsl('Upload button clicked');
e("fileSelect").click();
},
drag: function (ev) {
ev.stopPropagation();
ev.preventDefault();
$(ev.target).removeClass('dragover');
//ev.target.style.borderColor = '#cf4';
var formData = ff.toObj('noteForm');
upload.process(ev.dataTransfer.files, this.uploadCallback, formData);
},
uploadCallback: function (params) {
params.formId = 289;
params.mid = frmo.id;
debug.cnsl(params);
j.post(['insert', 'upload'], function (data, params) {
debug.cnsl(data);
if (isDefined(data.success)) {
nav.goTo(213, data.mid);
message('Track for ' + params.name + ' has been replaced.', 1);
}
else message('Error while uploading ' + params.name);
}, params);
}
};frm[292] = {
init:function(fpath,order){
j.post(['init'], function (data) {
debug.cnsl(data);
frmo.DBTList = data.tableList;
local.getSelect(data.tableList, 'from', "- Select table for manage -", null, null, 'DBList');
for(k in data.fields){
var main = e('settList');
var property = data.fields[k];
var block = e('prop'+k, main, 'div', 'col-md-3', {prepend:true});
e(null, e(null, block, 'label').t(property['fieldCaption']), 'p').t(property['fieldDescr']);
var def = isDefined(property.value)?parseInt(property.value): false;
if(property.type=='select'){
local.getSelect(property.values,property['id'], def, null, null,'prop'+k);
debug.cnsl(property);
}
else {
e(property['fieldTagName'], block, 'input', 'form-control')
.a('name', property['fieldTagName'])
.a('type', property['type'] || 'text')
.a('value', property['value']);
if(property['type']=='checkbox' && property['value']!='0')$(e(property['fieldTagName']))[0].checked=true;
if(property['disabled']==1)$(e(property['name']))[0].disabled=true;
}
$("select[name='from']").off().on('change', function (ev) {
if(ev.target.value!=null) j.post(['init', 'getColumns'], function (data) {
debug.cnsl(data);
frmo.DBTFList = data.columns;
$('#TFieldsList').empty();
local.getSelect(data.columns, 'fieldDBName', "- Select table for manage -", null, null, 'TFieldsList');
$("select[name='fieldDBName']").off().on('change', function (ev) {
$('#save').show();
});
}, {tblName: frmo.DBTList[ev.target.value]});
else {
frmo.DBTFList = false;
$('#save').hide();
}
});
$('#settList div select, #settList div input').off().on('blur', function (ev) {
var arr = {
id:ev.target.getAttribute('name'),
val:ev.target.value
};
frmo.update(arr);
window.parent.postMessage(JSON.stringify({hdr:'update'}), "*");
});
}
}, {});
ff.validation(e('new'), frmo.insert);
},
addNew:function () {
$('.newForm').show();
var block = e(null, e('new'), 'div', 'row');
},
insert:function () {
var array = ff.toObj('new');
array.from = frmo.DBTList[array.from];
array.fieldDBName = frmo.DBTFList[array.fieldDBName];
debug.cnsl(array);
j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status){
message('New property was inserted successfully', 1);
form.init();
}
}, array);
},
update:function (arr) {
debug.cnsl(arr);
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.status){
message('Updated successfully', 1);
}
}, arr);
}
};frm[298] = {
init: function () {
j.post(['init'], function (data) {
if (data.sett) {
$('#tabsHeader, #tabBody').empty();
var tabsHeader = e('tabsHeader');
for (var num in data.tabs) {
e(null, e(null, tabsHeader, 'li'), 'a').a('data-toggle', 'tab').a('data-tab', 'tab'+num).t(data.tabs[num].name);
}
for (var k in data.sett) {
var main = e('tab'+Math.round(k/100)*100, e('tabBody'), 'div', 'tab-pane tab-body');
var property = data.sett[k];
if (property['type'] == 'textarea') {
var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3');
e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']);
e(property['id'], block, 'textarea', 'form-control').a('name', property['id']).t(property['value']);
if (property['disabled'] == 1) e(property['id']).disabled = true;
}
else {
var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3');
e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']);
// e(property['name'], block, 'input', 'form-control').a('name', property['name']).a('type', property['type'] || 'text').a('value', property['value']);
e(property['id'], block, 'input', 'form-control').a('name', property['id']).a('type', property['type'] || 'text').a('value', property['value']);
if (property['type'] == 'checkbox' && property['value'] != '0') e(property['id']).checked = true;
if (property['disabled'] == 1) e(property['id']).disabled = true;
}
}
$('#tabsHeader li')[0].classList += ' active';
$('.tab-pane')[0].classList += ' active';
$('a[data-toggle="tab"]').on('click', function (ev) {
var tab = ev.target.dataset.tab;
$('.tab-pane.active').removeClass('active');
$('#'+tab).addClass('active');
/*$('#tabsHeader li.active').removeClass('active');
$(ev.target).parent('li').addClass('active');*/
});
}
}, {});
$('.save').off().on('click', function (ev) {
ev.preventDefault();
ev.stopImmediatePropagation();
var sett = ff.toObj('cPSettings');
var newSett = ff.toObj('new');
// debug.cnsl(sett);
if (newSett.name) {
j.post(['insert'], function (data) {
if (data.status) {
message('Settings added successfully', 1);
$('#new').remove();
frmo.init();
}
}, newSett);
} else {
j.post(['update'], function (data) {
if (data.statusQR) {
message('Settings saved successfully', 1);
$('#settList').empty();
$('#new').remove(); // не удалять, это нужно, из-за того что при сохранении, ff.toObj('new') -- этот код создает блок, с этим айдишником, вне блока меин
frmo.init();
}
}, sett);
}
// $('#settList').empty();
// frmo.init();
});
},
addProp: function () {
var main = e('bottomBox');
var block = e(null, e('new', main, 'div', 'form-group', {prepend: true}), 'div', 'row');
e('disabled', e(null, block, 'div', ' col-md-1'), 'input', 'form-control').a('name', 'disabled').a('type', 'checkbox').a('title', 'disable edit');
e('name', e(null, block, 'div', ' col-md-2'), 'input', 'form-control').a('name', 'name').a('placeholder', 'name');
e('dsc', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'dsc').a('placeholder', 'Description');
e('type', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'type').a('placeholder', 'type');
e('value', e(null, block, 'div', ' col-md-3'), 'input', 'form-control').a('name', 'value').a('placeholder', 'value').a('type', 'text');
}
};frm[299] = {
init:function(){
j.post(['init'], function (data) {
debug.cnsl(data);
}, {});
}
};frm[303] = {
init: function () {
j.post(['init'], function (data) {
frmo.process.pushInfo(data.CSList);
}, {});
},
cols: {
availableForClient: {name: 'Available For Client', cls: 'checkbx'},
id: {name: 'ID'},
groupId: {name: 'Group Id', cls: 'editable number'},
location: {name: 'Geo Location'},
dns: {name: 'DNS', cls: 'editable text'},
ipv4: {name: 'IPv4', cls: 'editable text'},
spaceUsed: {name: 'spaceUsed'},
spaceAllocated: {name: 'spaceAllocated'},
createDate: {name: 'Create'},
updateDate: {name: 'Update'},
lastRestartDate: {name: 'Last Restart'},
actions: {name: 'Actions'}
},
process: {
pushInfo: function (data) {
var th = e(null, document.querySelector('thead'), 'tr');
var tbody = document.querySelector('tbody');
var tr = '';
for (var h in frmo.cols) {
e(null, th, 'th').t(frmo.cols[h].name);
}
for (var key in data) {
tr = e(key, tbody, 'tr');
for (var j in frmo.cols) {
var text = data[key][j];
var td = e(null, tr, 'td', j + ' ' + (isDefined(frmo.cols[j].cls) ? frmo.cols[j].cls : ''));
if (text != null || j === 'actions') {
if (j === 'availableForClient') {
text = '';
}
else if (j === 'createDate') {
text = 'User: ' + data[key]['createUser'] + '
Date: ' + parseDate.shortDate(text);
}
else if (j === 'updateDate') {
text = 'User: ' + data[key]['updateUser'] + '
Date: ' + parseDate.shortDate(text);
}
else if (j === 'lastRestartDate') {
text = parseDate.shortDate(text);
}
else if (j === 'actions') text = '';
}
td.t(text);
if (isDefined(frmo.cols[j].cls) && frmo.cols[j].cls.includes('editable')) td.onclick = frmo.edit;
}
}
}
},
showModal: function () {
$('#modal_form_vertical form')[0].reset();
$('#modal_form_vertical').modal('show');
/*$('#modal_form_vertical form')[0].id = modalId;
$($('#modal_form_vertical .modal-title')[0]).text("Form " + modalId);*/
return false;
},
update: function (e, a) {
a = a || false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
debug.cnsl(formData);
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else {
message('Not saved!(', 0);
}
}, formData);
},
edit: function (ev) {
ev.target.onclick='';
ev = ev.target;
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName == '') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').replace('number', '').trim();
//debug.cnsl(fieldName);
$(ev).empty();
if ($(ev).hasClass('number')) $(ev).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(ev).hasClass('text')) $(ev).append(''); // span сделан для того чтобы вывести подскаску у инпут через :after
if (fieldName == 'chid') {
$(ev)[0].children[0].setAttribute('list', 'hintList');
debug.cnsl($(ev)[0]);
e('hintList', $(ev)[0], 'datalist');
frmo.getChannelsList();
}
$(ev).parents('tr').find('button.save').removeAttr('disabled');
},
addCS: function () {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
$('#modal_form_vertical').modal('hide');
form.init();
}
else {
message('Not saved!(', 0);
}
}, formData);
}
};frm[304] = {
init: function () {
j.post(['init'], function (data) {
frmo.process.pushInfo(data.statusesList);
}, {});
},
cols: {
id: {name: 'ID'},
orderInGlobalProcess: {name: 'Order in global'},
description: {name: 'Description'},
foRun: {name: 'foRun'},
notification: {name: 'Notification', cls: 'editable text'},
createDate: {name: 'Create'},
updateDate: {name: 'Update'}
},
process: {
pushInfo: function (data) {
var th = e(null, document.querySelector('thead'), 'tr');
var tbody = document.querySelector('tbody');
var tr = '';
for (var h in frmo.cols) {
e(null, th, 'th').t(frmo.cols[h].name);
}
for (var key in data) {
tr = e(key, tbody, 'tr');
for (var j in frmo.cols) {
var text = data[key][j];
var td = e(null, tr, 'td', j + ' ' + (isDefined(frmo.cols[j].cls) ? frmo.cols[j].cls : ''));
if(text != null || j === 'actions'){
if(j === 'foRun'){
var attr = text == 0 ? 'disabled' : (text == 1 ? '' : 'checked');
text = ''
}
else if (j === 'createDate'){
text = 'User: ' + data[key]['createUser'] + '
Date: ' + parseDate.shortDate(text)
}
else if (j === 'updateDate'){
text = 'User: ' + data[key]['updateUser'] + '
Date: ' + parseDate.shortDate(text)
}
}
td.t(text);
if(isDefined(frmo.cols[j].cls) && frmo.cols[j].cls.includes('editable')) td.onclick = frmo.edit;
}
}
}
},
update: function (ev, a) {
a = a || false;
var id = $(ev).parents('tr')[0].id;
var formData = ff.toObj(id);
if (!isDefined(formData['id'])) formData['id'] = id;
if (isDefined(formData['notification'])) formData['notification'] = formData['notification']=="" ? null : formData['notification'];
if (isDefined(formData.foRun) && ['1','2','5','8'].includes(formData['id']))
formData.foRun = formData.foRun == 0 ? 1 : 11;
else if (isDefined(formData.foRun)) delete formData.foRun;
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else {
message('Not saved!(', 0);
}
}, formData);
},
edit: function (ev) {
ev.target.onclick='';
ev = ev.target;
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName == '') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').replace('number', '').trim();
$(ev).empty();
if ($(ev).hasClass('number')) $(ev).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(ev).hasClass('text')) $(ev).append(''); // span сделан для того чтобы вывести подскаску у инпут через :after
$(ev).children('input').focus();
}
};
notifyCounter = function () {
j.post(['checkNotify'], function (data) {
if(data.notifCount>0){
if(!document.getElementById('csNotifyCounter')){
var n = document.createElement('span');
n.id = "csNotifyCounter";
n.className = "badge bg-danger-400";
document.querySelector('#navbar .dropdown .icon-server').parentNode.parentNode.appendChild(n)
}
document.getElementById("csNotifyCounter").innerText = data.notifCount;
}
}, {formId:304});
setTimeout(notifyCounter, 300000)
};frm[305] = {
init: function () {
j.post(['init'], function (data) {
frmo.process.pushInfo(data.mQList);
}, {});
},
cols: {
active: {name: 'Active'},
id: {name: 'ID', cls: 'editable number'},
quality: {name: 'Quality'},
width: {name: 'Width'},
height: {name: 'Height'},
crf: {name: 'Crf'},
createDate: {name: 'Create'},
updateDate: {name: 'Update'},
actions: {name: 'Actions'}
},
process: {
pushInfo: function (data) {
document.querySelector('thead').innerHTML = '';
document.querySelector('tbody').innerHTML = '';
var th = e(null, document.querySelector('thead'), 'tr');
var tbody = document.querySelector('tbody');
var tr = '';
for (var h in frmo.cols) {
e(null, th, 'th').t(frmo.cols[h].name);
}
for (var key in data) {
var currentMaxQinSystem = data[key]['currentMaxQinSystem']==1 ? 'currentMaxQinSystem' : '';
tr = e(key, tbody, 'tr', currentMaxQinSystem);
for (var j in frmo.cols) {
var text = data[key][j];
var td = e(null, tr, 'td', j + ' ' + (isDefined(frmo.cols[j].cls) ? frmo.cols[j].cls : ''));
if (text != null || j === 'actions') {
if (j === 'active') {
text = '';
}
else if (j === 'createDate') {
text = 'User: ' + data[key]['createUser'] + '
Date: ' + parseDate.shortDate(text)
}
else if (j === 'updateDate') {
text = 'User: ' + data[key]['updateUser'] + '
Date: ' + parseDate.shortDate(text)
}
else if (j === 'actions') text = ' ' +
'';
}
td.t(text);
if (isDefined(frmo.cols[j].cls) && frmo.cols[j].cls.includes('editable')) td.onclick = frmo.edit;
}
}
}
},
showModal: function () {
$('#modal_form_vertical form')[0].reset();
$('#modal_form_vertical').modal('show');
/*$('#modal_form_vertical form')[0].id = modalId;
$($('#modal_form_vertical .modal-title')[0]).text("Form " + modalId);*/
return false;
},
update: function (e, a) {
a = a || false;
var isCurrentMaxQinSystem = $(e).parents('tr')[0].className.indexOf('currentMaxQinSystem')+1 > 0 ? true : false;
var id = $(e).parents('tr')[0].id;
var formData = ff.toObj(id);
debug.cnsl(formData);
var conf = true;
if (!isDefined(formData['id']) && formData['active']==0 ){
conf = false;
if(!isCurrentMaxQinSystem){
if (confirm('Are you sure want to deactivate this quality?'))
if (confirm('All videos for this quality will be deleted! Are you agree?'))
conf = true;
}
}
if (conf) {
if (isDefined(formData['id'])) formData['newId'] = formData['id'];
formData['id'] = id;
j.post(['update'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
if (!a) form.init();
}
else {
message('Not saved!(', 0);
}
}, formData);
}
else{
if(isCurrentMaxQinSystem) message('You can\'t deactivate currentMaxQin',3);
frmo.init();
}
},
edit: function (ev) {
ev = ev.target;
var text = $(ev).text().trim();
var fieldName = $(ev)[0].className;
if (fieldName == '') fieldName = $(ev).parents('td')[0].className;
fieldName = fieldName.replace('editable', '').replace('text', '').replace('number', '').trim();
//debug.cnsl(fieldName);
$(ev).empty();
if ($(ev).hasClass('number')) $(ev).append('');
// else if( $(e).hasClass('textarea') ) $(e).append('');
// else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/\d+$/)[0]));
if ($(ev).hasClass('text')) $(ev).append(''); // span сделан для того чтобы вывести подскаску у инпут через :after
if (fieldName == 'chid') {
$(ev)[0].children[0].setAttribute('list', 'hintList');
debug.cnsl($(ev)[0]);
e('hintList', $(ev)[0], 'datalist');
frmo.getChannelsList();
}
$(ev).parents('tr').find('button.save').removeAttr('disabled');
},
del: function (e) {
if (confirm('Are you sure want to delete this quality?'))
if (confirm(' All videos for it will be deleted too!'))
j.post(['delete'], function (data) {
if (data.status) {
message('Deleted.');
$(e).parents('tr').remove();
}
}, {id: $(e).parents('tr')[0].id});
},
addQuality: function () {
var formData = ff.toObj('new');
debug.cnsl(formData);
j.post(['insert'], function (data) {
debug.cnsl(data);
if (data.status) {
message('Saved!', 1);
$('#modal_form_vertical').modal('hide');
form.init();
}
else {
message('Not saved!(', 0);
}
}, formData);
}
};frm[308] = {
firstLoad: true,
snapSaved: true,
info: {
imgId: 4000,
id: false,
ext: false,
name: false,
chid: false,
ctid: false,
modify: 1
},
init: function (params) {
j.post(['init', 'start'], function (data) {
local.getSelect(data.chans, 'chid', '-- Select Channel --', true, 'Channel', 'newChanBox');
local.getSelect(data.cats, 'ctid', '-- Select Category --', true, 'Category', 'newCatBox');
}, {});
frmo.canvas = document.querySelector('canvas');
frmo.context = frmo.canvas.getContext('2d');
if (isDefined(params[0]) && frmo.firstLoad) {
var mid = params[0];
setTimeout(function () {
if (mid > 100000) {
document.getElementsByName('sw')[0].value = mid;
document.getElementsByName('type')[0].value = 'mids';
frmo.search('mids', function () {
document.querySelector('tr[data-id="' + mid + '"] .selectForJoin').click();
});
}
}, 500);
}
document.getElementById('startJoin').onclick = function () {
var verify = false;
frmo.info.chid = document.getElementsByName('chid')[0].value;
frmo.info.ctid = document.getElementsByName('ctid')[0].value;
frmo.info.name = document.getElementsByName('name')[0].value;
frmo.info.modify = document.getElementsByName('modify')[0].checked ? 1 : 0;
for (var k in frmo.info) {
if (k === 'imgId' && frmo.info[k] === 4000) {
message('Please select or upload image', 3);
verify = false;
break;
} else if (frmo.info[k] === false) {
message('Please check ' + k, 3);
verify = false;
break;
} else verify = true;
}
if (!frmo.snapSaved) {
if (!confirm("Last snapshot isn't saved, are you sure want continue task with old image?")) verify = false;
else frmo.loadImg(frmo.info.imgId);
}
if(!(frmo.canvas.width == 1920 && frmo.canvas.height == 1080) && !(frmo.canvas.width == 1280 && frmo.canvas.height == 720)) {
verify = false;
message("You can use only 1920*1080 and 1280*720 images!", 3);
}
if (verify) {
debug.cnsl('success');
j.post(['insert', 'newJoin'], function (data) {
debug.cnsl(data);
if (data.statusQR) {
message('Converter started successfully', 1);
form.init();
} else message('Something went wrong', 0);
}, frmo.info);
}
};
frmo.firstLoad = false;
},
tbl: {
audio: {
id: {name: 'Name'},
size: {name: 'Size'},
createDate: {name: 'Download Date'},
actions: {name: 'Actions'}
},
mids: {
imgId: {name: 'Image'},
name: {name: 'Name'},
playTime: {name: 'Play Time'},
size: {name: 'Size'},
createDate: {name: 'Create Date'},
actions: {name: 'Actions'}
}
},
search: function (i, callback) {
if(i=='mids')document.getElementsByName('sw')[0].disabled = false;
else document.getElementsByName('sw')[0].disabled = true;
if (!isDefined(i)) {
i = document.getElementsByName('type')[0].value
} else document.getElementsByName('type')[0].value = i;
j.post(['init', i], function (data) {
if(data.notFound)message(data.notFound, 3);
frmo.dataProcess(data[i], i, callback);
if (!data[i]) message('This media not found, or you\'re not owner for it', 3);
}, {sw: document.getElementsByName('sw')[0].value});
},
dataProcess: function (data, cols, callback) {
var h = e('listHead');
var b = e('listBody');
var tr = '';
var td = '';
h.innerHTML = '';
b.innerHTML = '';
if (data) {
for (var n in frmo.tbl[cols]) {
e(null, h, 'th').t(frmo.tbl[cols][n].name);
}
for (var i in data) {
var type = cols;
var ext = cols === 'audio' ? 'mp3' : 'mp4';
tr = e(null, b, 'tr').a('data-id', data[i]['id']).a('data-type', type).a('data-ext', ext);
if (cols === 'mids') tr.a('data-chid', data[i]['chid']).a('data-ctid', data[i]['ctid']).a('data-name', data[i]['name']).a('data-imgid', data[i]['imgId']).a('data-width', data[i]['width']).a('data-height', data[i]['height']);
for (var j in frmo.tbl[cols]) {
var text = data[i][j];
if (j === 'imgId') text = "
";
else if (j === 'name' && cols === 'mids') text = "" + text + "";
else if (j === 'createDate' && cols === 'audio') text = parseDate.jsTimeStamp(text * 1000);
else if (j === 'createDate') text = parseDate.shortDate(text);
else if (j === 'playTime') text = formatTime(text);
else if (j === 'size') text = formatBytes(text);
else if (j === 'actions') {
text = " " +
" " +
(ext === 'mp3' ? "" : "");
}
td = e(null, tr, 'td').t(text);
}
}
if (isDefined(callback)) callback();
} else b.innerHTML = 'This media not found, or you\'re not owner for it. Try to change search parameters';
},
select: function (ev) {
frmo.info.id = ev.parentNode.parentNode.dataset.id;
frmo.info.ext = ev.parentNode.parentNode.dataset.ext;
if (ev.parentNode.parentNode.dataset.type === 'mids') {
document.getElementsByName('chid')[0].value = ev.parentNode.parentNode.dataset.chid;
document.getElementsByName('ctid')[0].value = ev.parentNode.parentNode.dataset.ctid;
document.getElementsByName('name')[0].value = ev.parentNode.parentNode.dataset.name;
frmo.canvas.width = ev.parentNode.parentNode.dataset.width;
frmo.canvas.height = ev.parentNode.parentNode.dataset.height;
frmo.loadImg(ev.parentNode.parentNode.dataset.imgid);
frmo.snapSaved = true;
document.getElementsByClassName('modifyBox')[0].style.display = 'block';
} else {
document.getElementsByName('name')[0].value = frmo.info.id.match(/.+[^.mp3]/g);
document.getElementsByClassName('modifyBox')[0].style.display = 'none';
}
if (isDefined(document.getElementsByClassName('success')[0]))
document.getElementsByClassName('success')[0].classList.toggle('success');
ev.parentNode.parentNode.classList.toggle('success');
},
play: function (ev) {
var type = ev.parentNode.parentNode.dataset.type;
var id = ev.parentNode.parentNode.dataset.id;
var ext = ev.parentNode.parentNode.dataset.ext;
var src = type === 'mids' ? 'https://cp.blago.tube/getFile/' + id + '/file.' + ext : '/audioUploads/' + sett.user.id + '/' + id;
var video = document.getElementById('outputVideo');
var name = ev.parentNode.parentNode.dataset.name;
frmo.info.name = name;
$('#modal_form_vertical').modal('show');
if (ext != 'mp4') {
document.getElementsByClassName('snap-img')[0].style.display = 'none';
video.poster = img.url(frmo.info.imgId);
} else document.getElementsByClassName('snap-img')[0].style.display = 'inline-block';
video.hidden = false;
video.src = src;
video.play();
frmo.video = video;
$($('#modal_form_vertical .modal-title')[0]).text(name);
$('#modal_form_vertical').on('hidden.bs.modal', function () {
video.pause();
})
},
deleteAudio: function (ev){
var name = ev.parentNode.parentNode.dataset.id;
if(confirm("Are you sure want to delete "+ name + "?"))j.post(['delete', 'audio'], function (data) {
if(data.status) {
message("Audio file deleted successfully", 1);
ev.parentNode.parentNode.remove();
}
else message("Something went wrong. Can't delete this audio file", 0);
}, {name: name});
},
snap: {
get: function () {
frmo.canvas.width = frmo.video.videoWidth > 1920 ? 1920 : frmo.video.videoWidth;
frmo.canvas.height = frmo.video.videoHeight > 1080 ? 1080 : frmo.video.videoHeight;
frmo.video.crossOrigin = "Anonymous";
// Define the size of the rectangle that will be filled (basically the entire element)
frmo.context.fillRect(0, 0, frmo.canvas.width, frmo.canvas.height);
// Grab the image from the video
frmo.context.drawImage(frmo.video, 0, 0, frmo.canvas.width, frmo.canvas.height);
frmo.snapSaved = false;
},
save: function () {
// upload
if (!frmo.snapSaved) {
var image = frmo.canvas.toDataURL('image/jpeg');
// var params = ff.toObj('fDSC');
var params = new Object();
if (frmo.canvas.width >= 300 && frmo.canvas.height >= 239) {
params['width'] = frmo.canvas.width;
params['height'] = frmo.canvas.height;
params['size'] = 0; // THIS VALUE ON SERVER SIDE !!! $_POST['size'] = (int) (strlen(rtrim($_POST['slImage'], '=')) * 3 / 4);
params.formId = 135;
params['catId'] = 101;
params['dsc'] = frmo.info.name;
params['orientation'] = 1;
debug.cnsl(params);
j.image(['insert', 'image'], image, function (data) {
debug.cnsl(data);
// update
if (data.result == 1) {
frmo.canvas.dataset.id = data.imgId;
frmo.info.imgId = data.imgId;
frmo.snapSaved = true;
message('Image has been uploaded and will be used for this mid', 1);
} else message('Error uploading image.', 0);
}, params);
} else message('Image must be 300*300px or more. Your image is ' + frmo.canvas.width + '*' + frmo.canvas.height + '', 0);
} else message('This image already saved and will be used for video');
}
},
loadImg: function (imgId) {
frmo.info.imgId = imgId;
var newImg = new Image();
newImg.src = img.url(parseInt(imgId), 0, 0);
newImg.onload = function () { // Событие onLoad, ждём момента пока загрузится изображение
frmo.canvas.width = newImg.width;
frmo.canvas.height = newImg.height;
frmo.context.drawImage(newImg, 0, 0); // Рисуем изображение от точки с координатами 0, 0
};
frmo.canvas.dataset.id = imgId;
},
clearImg: function () {
if (confirm('Reset image?')) {
frmo.loadImg(4000);
frmo.snapSaved = true;
}
},
onstorage: function (ev) {
if (ev.key == 'joinVideoImgId' && ev.newValue != null) {
frmo.loadImg(ev.newValue);
localStorage.removeItem(ev.key);
}
}
};frm[310] = {
devAlertOff: false,
init: function (params) {
j.post(['init'], function (data) {
frmo.formList = data.forms;
for (var f in data.forms) {
$('#exportFId').append('');
}
var mods = document.querySelectorAll('select[name="modId"]')[0];
for (var m in data.mods) {
mods.options[mods.options.length] = new Option(m + ' - ' + data.mods[m].name, m);
}
}, {});
var form = $('form.dropzone');
if (!isDefined(window.FileReader))
form.find('.dz-message span').html('Not supported browser!(').addClass('error');
else {
frmo.dropzone = form;
form[0].addEventListener('dragover', function (e) {
e.preventDefault();
e.stopImmediatePropagation();
debug.cnsl('dragover');
frmo.dropzone.addClass('dz-drag-hover');
}, false);// for design
form[0].addEventListener('dragleave', function () {
debug.cnsl('dragleave');
frmo.dropzone.removeClass('dz-drag-hover');
});// for design
form[0].addEventListener('drop', function (event) {
event.stopPropagation();
event.preventDefault();
event.dataTransfer.files[0].text().then(function(ev){frmo.formInfo = JSON.parse(ev); frmo.fileParse();});
}, false);// chromes
form.on('click', function () {
$('').on('change', function () {
this.files[0].text().then(function(ev){frmo.formInfo = JSON.parse(ev); frmo.fileParse();});
}).click();
});
}
},
fileParse: function () {
$('.startBlock').hide();
$('#formVersion').show();
for (var i in frmo.formInfo) {
debug.cnsl(i);
$('#formVersion [name=' + i + ']').val(frmo.formInfo[i]);
}
},
export: function (ev) {
var efid = document.getElementById('exportFId').value;
j.post(['export'], function (data) {
frmo.download($("#exportFId option:selected").text()+'.sls',data['POST']);
}, {efid: efid});
},
install: function () {
if (confirm('Are you sure want to install this form as '+frmo.formInfo.fid+'?')){
frmo.idChangeFiles(function () {
var importData = ff.toObj('formVersion');
importData['id'] = frmo.formInfo.fid;
j.post(['insert', frmo.formInfo.fid], function (data) {
debug.cnsl(data);
if(data.status){
message(data.result, 1);
form.init();
}
else message(data.result, 3);
}, importData);
});
}
},
download: function (filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
},
idChangeFiles: function (callback) {
var oldId = frmo.formInfo.fid;
var newId = document.querySelector("[name='fid']").value;
if(isDefined(frmo.formList[newId])){
message('This form id is already exist in CPanel.', 3);
}
else {
frmo.formInfo.fid = newId;
document.querySelector("[name='css']").value = document.querySelector("[name='css']").value.replace(new RegExp('#f'+oldId, 'g'), '#f'+newId);
document.querySelector("[name='js']").value = document.querySelector("[name='js']").value.replace('frm['+oldId+']', 'frm['+newId+']');
document.querySelector("[name='sp']").value = document.querySelector("[name='sp']").value.replace(' s'+oldId, ' s'+newId);
frmo.formInfo.fid = newId;
message('New form ID apply successfully, You can install it.', 1);
if (isDefined(callback)) callback();
}
},
devAlert:function(){
if(!frmo.devAlertOff){
alert('Change nothing if you\'re not sure. It\'s only for developers');
frmo.devAlertOff = true;
}
}
};