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 + '' + '' + 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 = '
    Permit
    Edit
    Insert
    Delete
    '; 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 += ''; /*$.each(sett.forms, function (id, name) { area += ''; });*/ for (var id in data){ 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; } } };