frm[100] = { startASyear: 2016, mediaImgWidth: 730, mediaImgHeight: 590, sectionYcount: 11, oneDay: 25*60*60*1000, // Attention 25 hours for other GMT on server oneYear: 365*24*60*60*1000, init: function () { debug.cnsl('init'); j.post(['init'], function (data) { console.log(data); frmo.nowDay = data.ts; frmo.aa = data.aa; frmo.emails = data.emails; frmo.process.emails(); frmo.homeAs = true; setTimeout(analytics.start,100); }); }, 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'], frmo.getHrefSearch); 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) { j.post(['init', 'start'], 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(''); } 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' ); $(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 == 'ext') { cont = getExtIcon(cont); cont = ' '; $('#' + keys + ' td.name').prepend(cont); } else if (t == 'theme') { if (td['lTheme']) td['theme'] = td['lTheme']; } else if (t == 'name') { if (td['lName']) cont = td['lName']; var hr = '/media/detail/' + td['id']; cont = '' + cont + '
'+td['pName']+''; } if (t == 'active') { if (td['active'] == 1) cont = 'checked'; else cont = ''; cont = ''; } 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) { var mid = $(ev.target).parents('tr.findLine')[0].id; if (confirm('Delete this video?')){ j.post(['delete'], function (data) { if(data.status) { message('Video deleted successfully', 1); $('#'+mid).hide(); } else message('System error!', 0); }, {id: mid}); } }); } }, 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){ debug.cnsl(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 = cpBaseUrl + nav.link(form.id) + '?'; var i = 0; for (var field in frmo.searchQ){ if(field != 'formId' && frmo.searchQ[field] != ""){ link += i==0 ? field+'='+encodeURIComponent(frmo.searchQ[field]) : '\&'+field+'='+ encodeURIComponent(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(); } } };frm[107] = { pagerCount: 10, imgWidth: 150, imgHeight: 150, init:function(params){ console.log(params); frmo.page = params.shift(); if(!isDefined(frmo.page)) nav.goTo(form.id,[0]); else { if (!isDefined(frmo.newRow)) frmo.newRow = $('#listBody tr').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); frmo.songs = data.songs; frmo.order = data.order; frmo.songsCount = data.songsCount; frmo.run.list(); }, {page: frmo.page, pagerCount: frmo.pagerCount}); } }, run: { list: function () { $('#listBody').empty(); let songs = frmo.songs; let order = frmo.order; for (let id in order) { let row = frmo.newRow.clone(); let song = songs[order[id]]; for (let name in song) { let value = song[name]; if (value == '0000-00-00 00:00:00') value = null; if ((name == 'createDate' || name == 'date' || name == 'updateDate') && value != null) value = parseDate.shortDate(value); if (name == 'catRef') { let newVal = ''; $.each(value,function (i,catName) { if(newVal == '')newVal += catName; else newVal += ', '+catName; }); value = newVal; } if (name == 'id') { row[0].id = value; row.find('.editA').attr('id', value); } if (name == 'active') { if (value == 1) row.find('.active').attr('checked', 'checked'); } else if (name == 'intro') { row.find('.intro').html(value); } else row.find('.' + name).text(value); } row.show(); $('#listBody').append(row); } pagerArticlesService(); } }, edit: function (e) { var curRow = $(e).parents('tr').addClass('editing'); nav.winOpen(108,[curRow[0].id]); // nav.goTo(108,[curRow[0].id]); }, del:function (e) { var curRow = $(e).parents('tr'); if (confirm('You want delete?')){ j.post(['delete'],function (data) { debug.cnsl(data); if(data.status){ message('Deleted!',2); curRow.remove(); } else message('Error deleting!',0); }, {id:curRow[0].id}); } }, update: { active: function (e) { var curRow = $(e).parents('tr'); // if (confirm('You want delete?')){ j.post(['update'], function (data) { debug.cnsl(data); if (data.status) { message('Updated!', 2); // curRow.remove(); } else message('Error updating!', 0); }, {id: curRow[0].id, active: ff.chkBoxVal(e)}); // } } }, pager: { next:function () { nav.goTo(parseInt(form.id),[parseInt(frmo.page)+1]); }, prev:function () { nav.goTo(parseInt(form.id),[parseInt(frmo.page)-1]); } }, addToRecom:function (e) { var id = $(e).parents('tr')[0].id; debug.cnsl(id); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message('Added to Recom!', 2); // curRow.remove(); } else message('Error added!', 0); }, {aid: id, active:1, formId: 159}); } }; function pagerArticlesService() { if(typeof frmo.articlesCount != 'undefined') { if(parseInt(frmo.articlesCount-frmo.page*frmo.pagerCount)>frmo.pagerCount) frmo.finish = parseInt(frmo.page) * frmo.pagerCount+frmo.pagerCount; else frmo.finish = parseInt(frmo.articlesCount); $('#currentPagePossition').text( (parseInt(frmo.page)*frmo.pagerCount+1) + '-' + (frmo.finish) ); $('#allItem').text(frmo.articlesCount); } debug.cnsl('pagerArticlesService'); if(parseInt(frmo.page)>0) $('#pagerPrev').removeAttr('disabled'); else $('#pagerPrev').attr( 'disabled', 'disabled' ); if((parseInt(frmo.page)+1) >= Math.ceil(parseInt(frmo.articlesCount)/frmo.pagerCount)) $('#pagerNext').attr( 'disabled', 'disabled' ); else $('#pagerNext').removeAttr('disabled'); }frm[108] = { // id: 'new', imgWidth: 350, imgHeight: 350, previewCouplets: [], newCh: false, init: function (params) { if (isDefined(frmo.validateForm)) frmo.validateForm.destroy(); if (isDefined(params[0]) && (!isNaN(params[0]) || !isNaN(frmo.id))) { frmo.id = params[0]; frmo.waitId = wait.on(); $('#f108').removeClass('new').addClass('edit'); j.post(['init'], function (data) { if (data.songInfo) { frmo.data = data; frmo.previewCouplets = data.couplets; frmo.process.main(); frmo.process.videoLinks(); frmo.process.colRefs(); frmo.process.keywordPanel(); frmo.process.buildCouplets(data.couplets); frmo.process.chordsTable(); frmo.keywordsOption(); frmo.process.hideForNew(false); document.querySelector('input[name="dirMid"]').required = true; if (window.location.hash) document.querySelector(window.location.hash).scrollIntoView(); } else { wait.off(frmo.waitId); message("Song not found", 3); nav.goTo(105); } }, {id: frmo.id}) } else { frmo.id = 'new'; j.post(['init'], function (data) { frmo.data = {}; frmo.data.authorsList = data.authorsList; frmo.data.composersList = data.composersList; frmo.data.dirsList = data.dirsList; frmo.data.languages = data.languages; frmo.process.dataLists(); document.querySelector('input[name="dirMid"]').required = false; frmo.process.hideForNew(true); }); $('#f108').addClass('new').removeClass('edit'); } }, process: { main: function () { this.dataLists(); for (let fieldName in frmo.data.songInfo) { let indx, value = frmo.data.songInfo[fieldName]; if (value == '0000-00-00 00:00:00') value = null; else if ((fieldName == 'createDate' || fieldName == 'updateDate') && value != null) value = parseDate.shortDate(value); else if ((indx = ['composerId', 'authorId', 'dirMid'].indexOf(fieldName)) + 1) { e('songDetails').querySelector('[name="' + fieldName + '"]') .previousElementSibling.innerText = indx == 0 ? frmo.data.composersList[value] : indx == 1 ? frmo.data.authorsList[value] : frmo.data.dirsList[value]; } if (fieldName == 'active') $('#f108').find('.' + fieldName + ', [name="' + fieldName + '"]')[0].checked = value == 1; else $('#f108').find('.' + fieldName + ', [name="' + fieldName + '"]').val(value); } wait.off(frmo.waitId); }, keywordPanel: function () { var ckR = frmo.data.curKeyWordsRef; for (var id in ckR) { e('kw' + id, e('existingKeywords'), 'span', 'oneKeyword').t(ckR[id] + ' ').a('data-id', id); } var pkW = frmo.data.popularKeyWords; for (var id in pkW) { e(null, e('popularKeywords'), 'a', 'addPopKwrd').t(pkW[id] + ' ').a('data-id', id).a('title', 'Click for add'); } }, buildCouplets: function (data) { var edtr = e('coupletsEditor'); e('coupletsPreview').innerHTML = edtr.value = ''; e('coupletsPreview').innerHTML = edtr.value = ''; for (let k in data) { if (k == 'length') break; let cplt = data[k]; let chorusCls = cplt.isChorus == 1 ? ' chorus' : ''; edtr.value += (edtr.value == '' ? '' : "\n\n") + cplt.body; let prevP = e(null, e('coupletsPreview'), 'div', 'singleCouplet' + chorusCls); prevP.dataset.couplet = k; prevP.dataset.bodyLength = cplt.body.length; let cls = cplt.hasChords == 1 ? 'hasChords' : null; let txt = this.rebuildText(cplt.body); e(null, prevP, 'div', cls).t(txt); let input = e(null, prevP, 'input').a('type', 'checkbox'); input.checked = cplt.isChorus == 1; input.onchange = frmo.actions.couplets.chorusChange; } this.bodyChords(); frmo.actions.chords.setCoupletEvents(); }, dataLists: function () { if (frmo.data.authorsList) e('auth').t(frmo.listSelect('authList')); if (frmo.data.composersList) e('composers').t(frmo.listSelect('compList')); if (frmo.data.tonesList) e('defTonality').t(frmo.listSelect('defTonality')); if (frmo.data.dirsList) e('dirs').t(frmo.listSelect('dirsList')); if (frmo.data.chordsDB) e('chords').t(frmo.listSelect('chordsList')); if (frmo.data.languages) e('language').t(frmo.listSelect('language')); if (frmo.data.collections) e('collectionList').t(frmo.listSelect('colList')); }, bodyChords: function () { for (let s in frmo.data.usedChords) { let chrd = frmo.data.usedChords[s]; const chord = document.createElement('chord'); chord.dataset.refid = chrd.refid; chord.dataset.chrid = chrd.id; chord.innerText = chrd.code; chord.className = 'using'; let chrdPlace = false; const curCoupl = document.querySelector('div[data-couplet="' + chrd.coupletSort + '"]'); const bodyLength = parseInt(curCoupl.dataset.bodyLength); let curLett = curCoupl.querySelector('span[data-pos="' + chrd.pos + '"]'); if (!curLett) curLett = curCoupl.querySelector('span[data-pos="' + (bodyLength - 1) + '"]'); chrdPlace = curLett.querySelector('span.chordPlace'); if (!chrdPlace) { const sp = document.createElement('span'); sp.className = 'chordPlace'; curLett.prepend(sp); chrdPlace = curLett.querySelector('span.chordPlace'); } chrdPlace.prepend(chord); // если аккорд добавлен и страница не перегружалась if (!chrdPlace.closest('div').classList.contains('hasChords')) chrdPlace.closest('div').classList.add('hasChords'); } e('chordsMood').value = frmo.data.songInfo.defTonality > 14 ? 1 : 0; this.chordsTable(); }, chordsTable: function () { e('chordsMood').value = frmo.data.songInfo.defTonality > 14 ? 1 : 0; e('chordsTable').innerHTML = ''; for (let lvl in frmo.data.chordsDB[e('chordsMood').value]) { let cd = frmo.data.chordsDB[e('chordsMood').value][lvl]; let tr = e('ton' + lvl, e('chordsTable'), 'tr', (frmo.data.songInfo.defTonality == lvl ? 'info' : '')); for (let st in cd) { e(null, e(null, tr, 'td'), 'chord').t(cd[st]['code']).dataset.chrid = cd[st]['id']; } } frmo.actions.chords.setChordEvents(); }, rebuildText: function (txt) { let nTxt = ''; for (let i = 0; i < txt.length; i++) { nTxt += '' + txt[i] + ''; } return nTxt; }, videoLinks: function () { const linksList = frmo.data.videoLinks; let nTxt = ''; let newLine = ''; for (let i in linksList) { let newLine = e(null, e('btLinksBody'), 'tr', null, {prepend: true}).t(e('newBTLink').innerHTML); newLine.dataset.id = i; newLine.querySelector('input').value = linksList[i]; } return nTxt; }, colRefs: function () { const refsList = frmo.data.songCollections; let nTxt = ''; let newLine = ''; for (let i in refsList) { newLine = e(null, e('colRefsBody'), 'tr', null, {prepend: true}).t(e('newColRef').innerHTML); newLine.dataset.id = i; newLine.querySelector('span').innerText = frmo.data.collections[refsList[i].colId]; newLine.querySelector('input[type="text"]').value = refsList[i].colId; newLine.querySelector('input[type="number"]').value = refsList[i].songNum; } return nTxt; }, hideForNew: function (status) { document.querySelectorAll('.disabledForNew').forEach(function (e) { e.disabled = status; e.required = status; e.title = status ? 'You can change this after add song' : ''; }); } }, actions: { save: function () { formData = ff.toObj('f108'); formData['id'] = frmo.id; debug.cnsl(formData); j.post(['update'], function (data) { debug.cnsl(data); if (data.status) { message('All changes saved successfully.', 1); frmo.data.songInfo = data.songInfo; frmo.process.chordsTable(); // nav.goTo(107, ['0']); } else { message('Not saved!', 0); } }, formData); }, add: function () { let formData = ff.toObj('f108'); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message(':)', 1); nav.goTo(108, [data.sId]); } else { message(':(', 0); } }, formData); }, del: function () { if (confirm('Delete this song?')) { j.post(['delete', 'song'], function (data) { if (data.status) { message('Song deleted successfully', 1); } else message('System error!', 0); }, {id: frmo.id}); } }, delAsDuplicate:function (){ let equalSid = prompt('Do you want to delete this song and set references and move media files to another?\nPlease enter equal song id:'); if (parseInt(equalSid)>=10000) j.post(['delete', 'songAsDuplicate'], function (data) { debug.cnsl(data); if (data.status) { message('Song deleted successfully', 1); nav.goTo(108, equalSid); } }, {id: frmo.id, equalSid: parseInt(equalSid)}); else if(equalSid) message('This mid is not valid',3); }, 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.data.curKeyWordsRef[kwid]; } }, {id: frmo.id, 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.data.curKeyWordsRef[kwid] = kwd; }, {id: frmo.id, kid: kwid}); }); }, copyAll: function () { var allKeywords = ''; for (var kid in frmo.data.curKeyWordsRef) { allKeywords += frmo.data.curKeyWordsRef[kid] + ", "; } copyToClipboard(allKeywords); }, clearAll: function () { if (confirm('Delete?')) j.post(['delete', 'keywordRefs'], function (data) { debug.cnsl(data); if (data.message) empty(e('existingKeywords')); }, {id: frmo.id}); }, datalistSelect: function (ev) { let txt; if (txt = ev.list.querySelector('option[value="' + ev.value + '"]')) { ev.previousElementSibling.innerText = txt.innerText; } }, couplets: { saveAll: function () { frmo.actions.couplets.preview(); j.post(['update', 'couplets'], function (data) { if (data.statusQR) message('Couplets saved successfully!', 1); else message('Something went wrong...', 0); }, {sId: frmo.data.songInfo.id, couplets: JSON.stringify(frmo.previewCouplets)}); }, preview: function () { let couplets = e('coupletsEditor').value.split("\n\n"); let c = 0; if(isDefined(frmo.previewCouplets) == false) frmo.previewCouplets = []; for (let coupletsKey in couplets) { if (!isNaN(parseInt(coupletsKey)) && couplets[coupletsKey].trim() != '') { if (!isDefined(frmo.previewCouplets[coupletsKey])) frmo.previewCouplets[coupletsKey] = {isChorus: 0}; frmo.previewCouplets[coupletsKey].body = couplets[coupletsKey].trim(); c++; } } frmo.previewCouplets.length = c; frmo.process.buildCouplets(frmo.previewCouplets); }, chorusChange: function (ev) { frmo.actions.couplets.preview(); let cNum = ev.target.closest('.singleCouplet').dataset.couplet; frmo.previewCouplets[cNum].isChorus = ev.target.checked ? 1 : 0; frmo.process.buildCouplets(frmo.previewCouplets); } }, chords: { addEditChord: function (newCh) { const parChord = newCh.parentElement; if (parChord.tagName != 'CHORD') { const pos = newCh.closest('span[data-pos]').dataset.pos; const cplt = newCh.closest('div[data-couplet]').dataset.couplet; const chId = newCh.dataset.chrid; const refid = newCh.dataset.refid ? newCh.dataset.refid : 0; frmo.newCh = newCh; // insert or update if refid is defined j.post(['insert', 'chord'], function (data) { frmo.data.usedChords = data.usedChords; if (!data.statusQR && !data.insId) { message('Update error. Contact with superadmin', 0); frmo.actions.couplets.preview(); } else if (data.insId) { frmo.newCh.dataset.refid = data.insId; } // frmo.actions.couplets.preview(); }, {sId: frmo.id, coupletSort: cplt, pos: pos, chordId: chId, refid: refid}); } else { const params = { sId: frmo.id, refid: parChord.dataset.refid } if (newCh.classList.contains('addLabel')) params.addLabel = newCh.innerText; else params.bassChordId = newCh.dataset.chrid; j.post(['update', 'chord'], function (data) { frmo.data.usedChords = data.usedChords; }, params); } }, delChord: function (ev) { const refid = ev.target.dataset.refid; j.post(['delete', 'chord'], function (data) { if (data.statusQR) ev.target.remove(); else message('Update error. Contact with superadmin', 0); frmo.data.usedChords = data.usedChords; }, {sId: frmo.id, refid: refid}); }, dragStart: function () { event.target.classList.add('moving'); if (event.target.closest('td')) event.target.closest('td').classList.add('curTd'); event.dataTransfer.effectAllowed = 'all'; event.dataTransfer.setData('text/html', event.target.outerHTML); frmo.chordDraged = true; // console.log(event); }, dragEnd: function () { const cplt = document.querySelector('.dropProcess'); if (event.target.classList.contains('using') && cplt) { event.target.remove(); } else if (event.target.closest('td')) { event.target.classList.remove('moving'); event.target.closest('td').classList.remove('curTd'); } if (cplt) { frmo.actions.chords.clearSelect(); const newCh = cplt.querySelector('chord.moving'); const isSubChord = newCh.parentElement.tagName == 'CHORD'; if (!isSubChord && newCh.classList.contains('addLabel')) { message('You can add label only for used chord', 3); newCh.remove(); } else { frmo.actions.chords.addEditChord(newCh); cplt.classList.remove('dropProcess'); if (isSubChord) newCh.parentNode.innerHTML = newCh.parentNode.innerText.replace("\n", ''); else { newCh.className = 'using'; frmo.actions.chords.setChordEvents(); cplt.classList.add('hasChords'); } } } frmo.chordDraged = false; frmo.actions.chords.removeLight(true); }, setChordEvents: function () { const els = document.querySelectorAll('chord:not(.inited)'); for (let el of els) { el.ondragstart = frmo.actions.chords.dragStart; el.ondragend = frmo.actions.chords.dragEnd; if (el.classList.contains('using')) el.ondblclick = frmo.actions.chords.delChord; el.contenteditable = false; el.draggable = true; el.classList.add('inited'); } }, setCoupletEvents: function () { const els = document.querySelectorAll('div.singleCouplet>div'); for (let el of els) { debug.cnsl(el); el.ondragover = function (ev) { if (frmo.chordDraged) { if (ev.target.tagName == 'SPAN' && !ev.target.classList.contains('chordPlace') && !ev.target.classList.contains('light')) { frmo.actions.chords.removeLight(); ev.target.classList.add('light'); ev.target.closest('div').contentEditable = true; } else if (ev.target.tagName == 'CHORD' && !ev.target.classList.contains('light')) { frmo.actions.chords.removeLight(); ev.target.classList.add('light'); ev.target.closest('div').contentEditable = true; } } }; el.ondragleave = function (ev) { if (ev.target.tagName == 'DIV') { frmo.actions.chords.removeLight(); } }; el.ondrop = function (ev) { ev.preventDefault(); ev.stopImmediatePropagation(); const curSpan = document.querySelector('.light'); const moving = document.querySelector('chord.moving'); //вставка дополнения if (curSpan.tagName == 'CHORD' && moving.classList.contains('addLabel')) { curSpan.innerHTML += moving.outerHTML; } //вставка басового аккорда else if (curSpan.tagName == 'CHORD') { curSpan.innerHTML += '/' + moving.outerHTML; } else { const newCh = moving.cloneNode(true); let chrdPlace = curSpan.querySelector('span.chordPlace'); if (!chrdPlace) { const sp = document.createElement('span'); sp.className = 'chordPlace'; curSpan.prepend(sp); chrdPlace = curSpan.querySelector('span.chordPlace'); } chrdPlace.append(newCh); } curSpan.closest('div').classList.add('dropProcess'); frmo.actions.chords.removeLight(); }; } }, removeLight: function (end) { if (document.querySelector('.light')) document.querySelector('.light').classList.remove('light'); if (end) for (let el of document.querySelectorAll('div[contenteditable="true"]')) { el.contentEditable = false; } }, clearSelect: function () { var sel = window.getSelection ? window.getSelection() : document.selection; if (sel) { if (sel.removeAllRanges) { sel.removeAllRanges(); } else if (sel.empty) { sel.empty(); } } } }, videoLinks: { insert: function (el) { const line = el.closest('tr'); const newValue = line.querySelector('input').value; j.post(['insert', 'BTLink'], function (data) { if (data.insertId) { const newLine = e(null, e('btLinksBody'), 'tr', null, {prepend: true}).t(e('newBTLink').innerHTML); newLine.dataset.id = data.insertId; newLine.querySelector('input').value = newValue; e('newBTLink').querySelector('input').value = ''; } }, {src: newValue, sId: frmo.id}); }, update: function (el) { const line = el.closest('tr'); const newValue = line.querySelector('input').value; j.post(['update', 'BTLink'], function (data) { if(data.statusQR) message("Changes apply successfully.", 1); }, {linkId: line.dataset.id, src: newValue}); }, delete: function (el) { const line = el.closest('tr'); if (confirm('Are you sure want to delete this video link?')) j.post(['delete', 'BTLink'], function (data) { if(data.statusQR) line.remove(); else message("Something went wrong. Link wasn't removed", 0); }, {linkId: line.dataset.id}); }, openLink: function (el) { const line = el.closest('tr'); const newValue = line.querySelector('input').value; window.open(newValue); } }, colRefs:{ insert: function (el) { const line = el.closest('tr'); const colId = line.querySelector('input[type="text"]').value; const num = line.querySelector('input[type="number"]').value; j.post(['insert', 'colRef'], function (data) { if (data.insertId) { const newLine = e(null, e('colRefsBody'), 'tr', null, {prepend: true}).t(e('newColRef').innerHTML); newLine.dataset.id = data.insertId; newLine.querySelector('input[type="text"]').value = colId; newLine.querySelector('input[type="number"]').value = num; e('newColRef').querySelector('input[type="text"]').value = ''; e('newColRef').querySelector('input[type="number"]').value = ''; } else message('Something went wrong. Try input another number / collection or contact with superadmin', 3); }, {colId: colId, num: num, sId: frmo.id}); }, update: function (el) { const line = el.closest('tr'); const colId = line.querySelector('input[type="text"]').value; const num = line.querySelector('input[type="number"]').value; j.post(['update', 'colRef'], function (data) { if(data.statusQR) message("Changes apply successfully.", 1); else message('Something went wrong. Try to input another number / collection or contact with superadmin', 3); }, {colRefId: line.dataset.id, colId: colId, num: num}); }, delete: function (el) { const line = el.closest('tr'); if (confirm('Are you sure want to delete this collection reference?')) j.post(['delete', 'colRef'], function (data) { if(data.statusQR) line.remove(); else message("Something went wrong. Reference wasn't removed", 0); }, {colRefId: line.dataset.id}); } } }, listSelect: function (name) { let select = '', pList, type = '', defName = ''; switch (name) { // case 'composerId': { case 'compList': { pList = frmo.data.composersList; type = 'datalist'; defName = 'Select composer'; break; } // case 'authorId': { case 'authList': { pList = frmo.data.authorsList; type = 'datalist'; defName = 'Select author'; break; } case 'dirsList': { pList = frmo.data.dirsList; type = 'datalist'; break; } case 'chordsList': { pList = frmo.data.chordsDB; type = 'datalist'; break; } case 'language': { pList = frmo.data.languages; type = 'select'; defName = 'Select language'; break; } case 'defTonality': { pList = frmo.data.tonesList; type = 'select'; defName = 'Select tonality'; break; } case 'colList': { pList = frmo.data.collections; type = 'datalist'; break; } default: break; } select = type == 'datalist' ? '' : ''; return select; }, keywordsOption: function () { frmo.actions.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.data.curKeyWordsRef[data.newKwId] = data.newKwContent; reports[0] = reports[0] + 1; frmo.actions.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'); } }, {id: frmo.id, 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, id: frmo.id}); } } }); }, validateText: function (string, minLength) { minLength = minLength || 3; string = string.trim(); string.replace(/\s\s+/g, ' '); if (string.length >= minLength) { return true; } else return false; } };frm[109] = { pagerCount: 50, searchParams: false, init: function (params) { frmo.page = params!=0 ? params.shift() : 0; if (!isDefined(frmo.newRow)) frmo.newRow = $('.people').remove().clone(); frmo.search(); $('#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: { peopleList: function (peoples) { $('#channelsTbody').empty(); var chanelRow; for (let peoplesKey in peoples) { let people = peoples[peoplesKey]; chanelRow = frmo.newRow.clone(); chanelRow[0].id = parseInt(people.id); for (var fieldName in people) { var val = people[fieldName]; var td = $(chanelRow).find('.' + fieldName); if (val == '0000-00-00 00:00:00') val = null; if (fieldName == 'createDate') val = people['createUser'] + '
' + parseDate.shortDate(val); else if (fieldName == 'updateDate') val = people['updateUser'] + '
' + parseDate.shortDate(val); else if (fieldName == 'imgId') { val = "" + ""; } if (fieldName == 'isComposer' || fieldName == 'isAuthor') { if (val == 1) td.find('input[name="'+fieldName+'"]').attr('checked', 'checked'); else td.find('input[name="'+fieldName+'"]').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(); } 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(); // 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 (ev, a) { a = a || false; var id = ev.closest('tr').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.errno == 0) message('People info saved!', 1); else if (data.errno != 0) message('System error', 3); } if (data.status) { message('People info saved!', 1); if (!a) form.init(); } else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) { message('People name 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.peopleId, 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}); } }); }, merge: function (ev) { const from = ev.closest('.people').id; const to = ev.closest('button').querySelector('input').value; debug.cnsl(from, to); debug.cnsl(e); if (confirm('Merge?')) j.post(['update', 'merge'], function (data) { debug.cnsl(data); if (data.status) { message('Merge success!', 2); $(ev).parents('.people').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'], function (data) { if (isDefined(data.page)) { frmo.page = data.page; history.pushState(null, null, nav.link(217)); } for (var id in data.usersList) { e(null, e('usersList', e('channelsTable'), 'datalist'), 'option').t(data.usersList[id]).value = id; } frmo.listCount = data.Count; frmo.list = data.list; if(data.Count>0)frmo.run.peopleList(data.peoples); else message('Nothing found', 3); }, frmo.searchParams); }, onstorage: function (ev) { if (ev.key == ('peopleImgId' + frmo.peopleId) && ev.newValue != null) { frmo.update.img(ev.newValue); localStorage.removeItem(ev.key); } } }; 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[112] = { 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().trim(); frmo.searchQ = new Object(); frmo.searchQ = ff.toObj('searchRequest'); // frmo.searchQ.mincreateDate = parseInt(frmo.searchQ.mincreateDate); // frmo.searchQ.maxcreateDate = parseInt(frmo.searchQ.maxcreateDate); 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 || (parseInt(sText) || sText.length >= frmo.searchMinLength)) { j.post(['init', 'start'], 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) { for (let own in data.owners){ /*if (own == sett.user.id)$('select[name="createUser"]').append(''); else */ $('select[name="createUser"]').append(''); } for (let upd in data.updaters){ $('select[name="updateUser"]').append(''); } for (let com in data.composers){ $('select[name="composer"]').append(''); } for (let ex in data.authors){ $('select[name="author"]').append(''); } for (let col in data.collections){ $('select[name="collection"]').append(''); } }, getRange: function (data, callback){ debug.cnsl(data); var minDate = $('input[name="mincreateDate"]')[0]; var maxDate = $('input[name="maxcreateDate"]')[0]; // if (data["minD"] != data["maxD"]) { $('#searchRequest 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'); $('#searchRequest div.date .range_min').text(frmo.tmstmpDate(miD)); $('#searchRequest div.date .range_max').text(frmo.tmstmpDate(maD)); maxDate.setAttribute('min', miD); maxDate.setAttribute('max', maD); maxDate.value=maD; /*} else { $('#searchRequest div.date').fadeOut(); maxDate.value=parseInt(data["maxD"]); minDate.value=parseInt(data["minD"]); }*/ if(isDefined(callback))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' ); $(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 == 'title') { if (td['lName']) cont = td['lName']; var hr = nav.link(108, td['id']); cont = '' + cont + ''; } if (t == 'active') { if (td['active'] == 1) cont = 'checked'; else cont = ''; cont = ''; } else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser; $('#' + keys + ' td.' + t).html(cont); } } e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete this MID'); } $('.secretDelete').off().on('click', function (ev) { var mid = $(ev.target).parents('tr.findLine')[0].id; if (confirm('Delete this song?')){ j.post(['delete'], function (data) { if(data.status) { message('Song deleted successfully', 1); $('#'+mid).hide(); } else message('System error!', 0); }, {id: mid}); } }); } }, 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){ debug.cnsl(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 = cpBaseUrl + nav.link(form.id) + '?'; var i = 0; for (var field in frmo.searchQ){ if(field != 'formId' && frmo.searchQ[field] != ""){ link += i==0 ? field+'='+encodeURIComponent(frmo.searchQ[field]) : '\&'+field+'='+ encodeURIComponent(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(); } } };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').attr('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); nav.goTo(frmo.formId, [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(117); } 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) { 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); // 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) { 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(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] = { mid: 10000, // root mid dirStr: false, // holds all directory structure, sett: false, // holds data of current mid settings list: false,// holds list of current mid html: false,// for original html objects clipBrd: false,// holds copy of copied to clipboard for paste button displaySett: {mid: 10000, page: 1}, //local storage sett for this form limitPerPage: 150, // show 200 records per page blockLocalName: false, blockLocalTheme: false, serverData: false, //спрятать го ту сонг если песни нету init: function (fpath, order) { order = order || ''; // default orderBy - as dir settings value frmo.orderQ = order; if (order != '') empty(e('path')); if (isDefined(fpath) && fpath.length > 0 && regex.mid.test(fpath[0])) { this.mid = fpath[0]; localStorage.f126Sett = JSON.stringify({mid: this.mid, page: 1}); } else if (localStorage.f126Sett) { frmo.displaySett = JSON.parse(localStorage.f126Sett); this.mid = frmo.displaySett.mid; } if (this.html == false) { this.html = { listTr: e('listTr').innerHTML // holds original tr structure for list }; } j.post(['init'], function (data) { // return false; if (isDefined(data.sett)) { // save data frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.sett = data.sett; if (isDefined(data.str)) { frmo.dirStr = data.str; } // push title title.insert(data.sett.mid, data.sett.name); debug.cnsl(data); // clone Object // frmo.serverData = Object.assign({}, data); // frmo.serverData = deepCopy(data); frmo.process.settings(data.sett); // build settings frmo.process.list(); // build list frmo.process.dirDataList(data.str); // build dir list for move mid // закрасить столбцы если редактируется локальное значение if (ff.chkBoxVal(e('localName'))) { document.getElementById("listBody").className += " localName"; } if (ff.chkBoxVal(e('localTheme'))) { document.getElementById("listBody").className += " localTheme"; } } else { message("Mid couldn't be found."); frmo.init([10000]); } }, {mid: this.mid, str: (this.dirStr == false ? 1 : 0), order: order}); }, events: { localName: { toggle: function () { $('#listBody').toggleClass('localName'); j.post(['init'], function (data) { debug.cnsl('localName'); // var data = deepCopy(frmo.serverData); if (ff.chkBoxVal(e('localName'))) { frmo.blockLocalName = false; // frmo.process.list(data.list); // build list } else { frmo.blockLocalName = true; // frmo.process.list(data.list); // build list } frmo.process.list(data.list); // build list }, {mid: frmo.mid, str: (frmo.dirStr == false ? 1 : 0), order: frmo.orderQ}); } }, localTheme: { toggle: function () { $('#listBody').toggleClass('localTheme'); j.post(['init'], function (data) { // var data = deepCopy(frmo.serverData); if (ff.chkBoxVal(e('localTheme'))) { frmo.blockLocalTheme = false; // frmo.process.list(data.list); // build list } else { frmo.blockLocalTheme = true; // frmo.process.list(data.list); // build list } frmo.process.list(data.list); // build list }, {mid: frmo.mid, str: (frmo.dirStr == false ? 1 : 0), order: frmo.orderQ}); } }, clearLocal: function () { // Clear Local Names/themes j.post(['update', 'clearLocal'], function (data) { debug.cnsl(data); if (data.success) { j.post(['init'], function (data) { frmo.blockLocalName = true; frmo.blockLocalTheme = true; $('#listBody').removeClass('localName localTheme'); e('localName').removeAttribute('checked'); e('localTheme').removeAttribute('checked'); frmo.process.list(data.list); // build list }, {mid: frmo.mid, str: (frmo.dirStr == false ? 1 : 0), order: frmo.orderQ}); } }, {mid: frmo.mid}); }, pages: { init: function () { // e('currentPagePossition').innerText = frmo.displaySett.page; e('currentPagePossition').value = frmo.displaySett.page; e('allItem').innerText = Math.ceil(Object.keys(frmo.order).length / frmo.limitPerPage); }, reInit:function (){ frmo.events.pages.init(); frmo.events.pages.saveStorage(); frmo.process.list(); }, next: function () { if (Object.keys(frmo.order).length > (frmo.displaySett.page * frmo.limitPerPage)) { frmo.displaySett.page++; frmo.events.pages.reInit(); } }, prev: function () { if (frmo.displaySett.page > 1) { frmo.displaySett.page--; frmo.events.pages.reInit(); } }, goTo: function (){ let num = e('currentPagePossition').value; if (num > 0 && Object.keys(frmo.order).length > ((num-1) * frmo.limitPerPage)){ frmo.displaySett.page = num; frmo.events.pages.reInit(); } }, saveStorage: function () { localStorage.f126Sett = JSON.stringify(frmo.displaySett); } } }, process: { settings: function (s) { var f = 'settingsForm'; // convert data in proper format if (s.dirType == 1) s.dirTypeCon = "Directories"; else s.dirTypeCon = "Files"; s.createDate = parseDate.shortDate(s.createDate); // fill in inputs var inputs = e(f).getElementsByTagName('input'); for (var i in inputs) if (isDefined(s[inputs[i].name])) { if (inputs[i].type == 'checkbox') { // disable checkbox in case if it is directory type if (s.dirType == 1) inputs[i].setAttribute('disabled', ''); // else if check if it needs to be checked else if (s[inputs[i].name] == 1) inputs[i].checked = "checked"; } else inputs[i].value = s[inputs[i].name]; } // fill in selects var selects = e(f).getElementsByTagName('select'); for (var sel in selects) if (isDefined(s[selects[sel].name])) selects[sel].options.selectedIndex = s[selects[sel].name]; // fill in text areas var ta = e('f' + form.id).getElementsByTagName('textarea'); for (var t in ta) if (isDefined(s[ta[t].name])) ta[t].value = s[ta[t].name]; // enable form validation ff.validation(e(f), frmo.update.settings); ff.validation(e("noteForm"), frmo.update.settings); // verify permissions ff.validateEditPermissions(e(f), s.createUser); // add theme name to list table if (s.dirThName != '' && s.dirThName != null) e('tableThName').innerHTML = s.dirThName; else $(e('tableThName')).addClass('empty'); // create path for the table list var pmid = s.mid, h = e('path'), a, parent; frmo.pmid = pmid; h.innerHTML = ''; while (pmid > 10000) { parent = frmo.dirStr[pmid]; $(h).prepend(' / ' + parent.name + ' '); // take next parent mid pmid = parent.pmid; } $(h).prepend(' Media '); // show drag drop or create dir based on dir type and if user has insert permissions if (frmPerms.ins == 1) { if (s.dirType == 0) { $('#drop-zone').removeClass('hidden'); del.id('createDirectoryButton'); } else if (s.dirType == 1) del.id('uploadFilesButton'); } }, list: function () { let list = frmo.list; let tr, fields, f, fName, i, ind, c, row, name, icon, totalTime = 0, totaSize = 0, tbody = e('listBody'), indicators; empty(tbody); // for (var l in list){ // for (c in frmo.order) { c = (frmo.displaySett.page - 1) * frmo.limitPerPage; if (c > Object.keys(frmo.order).length) { frmo.displaySett.page = 1; c = 0; } for (; c < Object.keys(frmo.order).length && c < (frmo.displaySett.page * frmo.limitPerPage); c++) { var l = frmo.order[c]; row = list[l]; // calculate total values totalTime = totalTime + Number(row.playTime); totaSize = totaSize + Number(row.size); // row icon if (row.dir == 1) row.icon = "icon-folder3"; else if (row.ext == 'mp3') row.icon = "icon-music"; else if (row.ext == 'mp4') row.icon = "icon-screen3"; else if (row.ext == 'pdf') row.icon = "icon-file-pdf"; else row.icon = " icon-file-empty"; // format size if (row.size) row.size = formatBytes(row.size, 1); // format time row.playTime = formatTime(row.playTime); // format date row.createDate = parseDate.shortDate(row.createDate); var gName = false, gTheme = false; if (row.localName && row.localName != "" && !frmo.blockLocalName) { gName = row.name || ""; e('localName').setAttribute('checked', 'checked'); row.name = row.localName; } if (row.localTheme && row.localTheme != "" && !frmo.blockLocalTheme) { gTheme = row.theme || ""; e('localTheme').setAttribute('checked', 'checked'); row.theme = row.localTheme; } // create and fill tr debug.cnsl(row.active); if (row.active == 1) tr = e(row.mid, tbody, 'tr'); else tr = e(row.mid, tbody, 'tr', 'disactive'); tr.innerHTML = frmo.html.listTr; fields = tr.querySelectorAll('[data-name]'); for (i = 0; i < fields.length; i++) { f = fields[i]; // debug.cnsl(f); fName = f.getAttribute("data-name"); if (isDefined(row[fName])) { if (f.tagName.toLowerCase() == 'input') { if (row[fName] == 1) f.setAttribute('checked', 'checked'); f.onchange = frmo.update[fName]; } else if (f.tagName.toLowerCase() == 'i') f.className += ' ' + row[fName]; else f.innerHTML = row[fName]; // color mids based on mid owner if (fName == 'mid' && row.createUser == sett.user.id) f.className = 'text-success'; // editing permissions, verify admin level, ownership, edit permission before enable editing. if ((fName == 'name' || fName == 'theme') && ((row.createUser == sett.user.id && frmPerms.edit == 1) || sett.user.su)) { f.setAttribute('contenteditable', 'true'); f.onblur = frmo.update[fName]; if (fName == 'name' && gName) { f.setAttribute('title', "" + gName); f.className = 'local'; } if (fName == 'theme' && (gTheme || gTheme == '')) { f.setAttribute('title', "" + gTheme); f.className = 'local'; } } } } // image if (row.imgId > 4000) tr.querySelectorAll('.imgIco img')[0].src = img.url(row.imgId, 80, 35, row.name); else $(tr).remove('img').addClass('noImg'); indicators = tr.querySelectorAll('.indicators li'); for (i = 0; i < indicators.length; i++) { ind = indicators[i]; name = ind.className; if (row[name] > 0) $(ind).show(); else $(ind).hide(); } // return false; } frmo.events.pages.init(); // insert totals e('totalTime').innerHTML = formatTime(totalTime); if (totaSize > 0) e('totalSize').innerHTML = formatBytes(totaSize); // find all buttons and assign onclick event var buttons = e('listBody').querySelectorAll('[data-button]'); for (var b = 0; b < buttons.length; b++) buttons[b].onclick = frmo.button.init; var orderButtons = e('listTable').querySelectorAll('[data-order]'); frmo.orderButton.setDefOrder(frmo.orderQ); for (var oB = 0; oB < orderButtons.length; oB++) orderButtons[oB].onclick = frmo.orderButton.init; $('*[data-name="name"], *[data-name="theme"]').on('keyup', function (e) { debug.cnsl(e); e.target.className = 'local'; }); }, dirDataList: function (dataList) { var dirName = '', curId, dirListId; for (var id in dataList) { if (dataList[id].dirType == 0) dirListId = 'filesParMidList'; else dirListId = 'dirsParMidList'; curId = id; dirName = dataList[id].name; while (dataList[curId].pmid > 10000) { dirName = dataList[dataList[curId].pmid].name + ' / ' + dirName; curId = dataList[curId].pmid; } e(null, e(dirListId, null, 'datalist'), 'option').t(dirName).value = id; } } }, update: { settings: function (frm) { var obj = ff.toObj(frm.id); obj.mid = frmo.mid; j.post(['update', 'settings'], function (data, params) { if (isDefined(data.result) && data.result == 1) message(params.mid + " has been updated.", 1); else message('Error updating settings', 0); }, obj); }, name: function (ev) { // var el = ev.target; var el = $(ev.target).not('p')[0]; var newValue = el.innerText.trim(); var mid = el.closest('tr').id; if (ff.chkBoxVal(e('localName'))) frmo.update.list(mid, 'localName', newValue); else frmo.update.list(mid, 'name', newValue); }, theme: function (ev) { var el = ev.target; // var newValue = el.innerText.trim(); var newValue = el.innerText; // off TRIM!!! var mid = el.closest('tr').id; if (ff.chkBoxVal(e('localTheme'))) frmo.update.list(mid, 'localTheme', newValue); else frmo.update.list(mid, 'theme', newValue); }, active: function (ev) { var el = ev.target; var val = ff.chkBoxVal(el); if (val == 1) $(el).parents('tr').removeClass('disactive'); else $(el).parents('tr').addClass('disactive'); var mid = el.closest('tr').id; frmo.update.list(mid, 'active', val); }, activeAll: function (el) { // update list for (var m in frmo.list) frmo.list[m].active = ff.chkBoxVal(el); j.post(['update', 'activeAll'], function (data) { if (!data.success) message("Error updating active on all.", 0); else { var chks = e('listBody').getElementsByTagName('tr'); for (var c in chks) { if (c === 'length') break; if (el.checked && chks[c].classList.contains('disactive')) chks[c].classList.remove('disactive'); else if (!el.checked && !chks[c].classList.contains('disactive')) chks[c].classList.add('disactive'); chks[c].getElementsByTagName('input')[0].checked = el.checked; } } }, {mid: frmo.mid, active: ff.chkBoxVal(el)}); }, list: function (mid, field, newValue) { if (frmo.list[mid][field] != newValue) { debug.cnsl('Update ' + field + ' on ' + mid); j.post(['update', 'list', mid], function (data) { if (!data.statusQR) message("Error updating field", 0); }, {mid: mid, pmid: frmo.pmid, value: newValue, name: field}); frmo.list[mid][field] = newValue; } } }, button: { init: function (ev) { var el = ev.target; // find button name var name = el.closest('button').getAttribute("data-button"); // find mid var mid = el.closest('tr').id; debug.cnsl(name, mid); frmo.button[name](mid); }, mid: function (mid) { nav.goTo(151, [mid]); }, icon: function (mid) { var filePath = dwnldServer + mid + "/" + toUrl(frmo.list[mid].name) + "." + frmo.list[mid].ext; if (frmo.list[mid].dir == 1) nav.goTo(form.id, [mid]); else if (frmo.list[mid].ext == "mp3") { bootbox.dialog({ title: frmo.list[mid].name, message: '', buttons: { cancel: { label: ' Close' } }, backdrop: true }); } else if (frmo.list[mid].ext == "mp4") { bootbox.dialog({ title: frmo.list[mid].name, message: '', buttons: { cancel: { label: ' Close' } }, backdrop: true }); } else if (frmo.list[mid].ext == "pdf") window.open(pdfServer + mid + "/" + toUrl(frmo.list[mid].name) + "." + frmo.list[mid].ext); else window.location.href = dwnldServer + mid + "/" + toUrl(frmo.list[mid].name) + "." + frmo.list[mid].ext; }, news: function (mid) { j.post(['insert', 'ner'], function (data, params) { if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to front page news list.", 1); $('#' + mid + ' .inNews').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in news list."); else message("Error adding " + params.mid + " news.", 0); }, {mid: mid, ner: 'news'}); }, email: function (mid) { j.post(['insert', 'ner'], function (data, params) { if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to news's letter list.", 1); $('#' + mid + ' .inMails').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in news's letter list."); else message("Error adding " + params.mid + " news's letter.", 0); }, {mid: mid, ner: 'email'}); }, recommend: function (mid) { j.post(['insert', 'ner'], function (data, params) { if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to recommended list.", 1); $('#' + mid + ' .inRecommend').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in recommended list."); else message("Error adding " + params.mid + " recommended", 0); }, {mid: mid, ner: 'recommend'}); }, copyOLD: function (mid) { var $temp = $(""); $("body").append($temp); $temp.val(mid).select(); document.execCommand("copy"); $temp.remove(); frmo.clipBrd = mid; }, copy: function (mid) { var $temp = $(""); $("body").append($temp); $temp.val(mid).select(); document.execCommand("copy"); $temp.remove(); // frmo.clipBrd = mid; localStorage.setItem('clipBrd', mid); }, inMoveMid: false,// this needed to save currently in move mid move: function (mid) { frmo.button.inMoveMid = mid; var dirList = isDefined(frmo.dirStr[mid]) ? 'dirsParMidList' : 'filesParMidList'; bootbox.confirm({ size: 'small', title: "Where to move " + mid + " ?", // inputType: 'text', // list: 'dirList', message: '', // message: 'sdfsdfsff', callback: function (result) { if (result) { result = document.getElementById('newDirMid').value; var mid = frmo.button.inMoveMid; var targetMid = result.trim(); if (regex.mid.test(targetMid)) j.post(['update', 'move', mid], function (data, params) { if (isDefined(data.result) && data.result > 0) { if (data.result == 1) { message(params.mid + ' has been moved to ' + params.targetMid, 1); frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.process.list(data.list); } else if (data.result == 2) message("Can't move " + params.mid + " to " + params.targetMid + " because " + params.targetMid + " incompatible with " + params.mid + ". One directory can't have directories and files in it same time.", 3); } else message('Error moving ' + params.mid, 0); }, {mid: mid, targetMid: targetMid, oldMid: frmo.mid}); else message('Wrong mid!', 0); } } }); }, del: function (mid) { j.post(['delete', mid], function (data, params) { if (isDefined(data.result)) { if (data.result == 1) { message(params.mid + ' deleted.', 1) del.id(params.mid); } else if (data.result == 2) message("Can't delete " + params.mid + " because it has child mid. Delete or move child mid first.", 3) } else message('Error deleting' + params.mid, 0); }, {mid: mid, pMid: frmo.mid}); }, // header buttons upload: function () { debug.cnsl('Upload button clicked'); e("fileSelect").click(); }, directory: function () { debug.cnsl('Directory button clicked'); bootbox.dialog({ title: "Create Directory", message: e('createDirModal').innerHTML, buttons: { success: { label: "Save", className: "btn-success", callback: function (ev) { var inputs = ev.target.closest('.modal-content').getElementsByTagName('input'); var name = inputs['newDirName'].value.trim(); var type = inputs['newDirType'].checked ? 1 : 0; j.post(['insert', 'dir'], function (data) { if (isDefined(data.result) && data.result == 1) { message('Directory has been created successfully.', 1); frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.process.list(data.list); frmo.dirStr = data.str; } else message("Error creating new directory", 0); }, {mid: frmo.mid, name: name, type: type}); } } } } ); }, pasteOLD: function () { debug.cnsl('Paste button clicked'); var mid = frmo.clipBrd; if (regex.mid.test(mid)) { j.post(['insert', 'paste'], function (data, params) { if (isDefined(data.result)) { if (data.result == 1) { frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.process.list(data.list); message(params.mid = " was added to " + params.pMid, 1); } else if (data.result == 2) message("Can't paste " + params.mid + " to " + params.pMid + " because " + params.pMid + " incompatible with " + params.mid + ". One directory can't have directories and files in it same time.", 3); } else message('Error pasting ' + params.mid, 0); }, {mid: mid, pMid: frmo.mid}); } else message('Wrong mid', 0); }, paste: function () { debug.cnsl('Paste button clicked'); // var mid = frmo.clipBrd; var mid = localStorage.getItem('clipBrd'); if (regex.mid.test(mid)) { j.post(['insert', 'paste'], function (data, params) { if (isDefined(data.result)) { if (data.result == 1) { frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.process.list(data.list); message(params.mid = " was added to " + params.pMid, 1); } else if (data.result == 2) message("Can't paste " + params.mid + " to " + params.pMid + " because " + params.pMid + " incompatible with " + params.mid + ". One directory can't have directories and files in it same time.", 3); } else message('Error pasting ' + params.mid, 0); }, {mid: mid, pMid: frmo.mid}); } else message('Wrong mid', 0); } }, orderButton: { init: function (ev) { var el = ev.target; // find button name var name = el.closest('th').getAttribute("data-order"); debug.cnsl(name); title.reset(); form.setPath(); // set form ID form.setId(); // set page title form.setTitle(); if ($(el).closest('th').hasClass('desc')) { $('th.desc, th.asc').removeClass('asc desc'); frmo.init([], name + ' asc'); $(el).addClass('asc'); } else { $('th.desc, th.asc').removeClass('desc asc'); frmo.init([], name + ' desc'); $(el).addClass('desc'); } }, setDefOrder: function (orderQ) { orderQ = orderQ.split(' '); debug.cnsl(orderQ); $('th.desc, th.asc').removeClass('asc desc'); $('th[data-order="' + orderQ[0] + '"]').addClass(isDefined(orderQ[1]) ? orderQ[1].toLowerCase() : 'asc'); } }, upload: function (el) { console.log(el, el.files); upload.process(el.files, this.uploadCallback, {mid: frmo.mid}); }, drag: function (ev) { ev.stopPropagation(); ev.preventDefault(); upload.process(ev.dataTransfer.files, this.uploadCallback, {mid: frmo.mid}); }, uploadCallback: function (params) { params.formId = 126; j.post(['insert', 'upload'], function (data, params) { if (isDefined(data.success)) { // message(params.name + ' has been uploaded.', 1); if (frmo.mid == params.mid) { frmo.list = data.list; frmo.order = data.order; frmo.orderQ = data.orderQ; frmo.process.list(data.list); } } 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[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[151] = { startASyear: 2016, pathWidthKoef: 250, mediaImgWidth: 730, mediaImgHeight: 590, sectionYcount: 11, oneDay: 25 * 60 * 60 * 1000, // Attention 25 hours for other GMT on server oneYear: 365 * 24 * 60 * 60 * 1000, 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) { debug.cnsl(data); if (isDefined(data.error)) message(data.error, 0); if (isDefined(data.details)) { frmo.nowDay = data.ts; frmo.info = data.details; frmo.ma = data.analitycs; local.getSelect(data.rolesList,'roleId','-- Select file role --', false, null, 'roles'); frmo.run.infoPanel(); frmo.run.mediaPanel(); document.getElementById('analitycsPanel').classList.add('hidden'); // add events for checkbox recommends news emails $('#recom, #email, #news').on('change', function (e) { var cn = $(e.target)[0].name; if(ff.chkBoxVal($(e.target)[0])) { frmo.addTo[cn](frmo.info.id); } else { frmo.removeWith[cn](frmo.info.id); } }); } }, params); }, run: { infoPanel: function () { var parentMid, info = frmo.info; if (info.dir == 1) { $('#dirInfo').show(500).find('form')[0].id = 'settingsForm'; } else { $('#fileInfo').show(500).find('form')[0].id = 'settingsForm'; } if(info.ext == 'mp3')$('#audioCropBtn').show(); var formInfo = $('#settingsForm'); for (var name in info){ var val = info[name]; if (val == '0000-00-00 00:00:00') val = null; if (name == 'size' && val != null) val = formatBytes(val, 1); else if ((name == 'createDate' || name == 'updateDate') && val != null) val = parseDate.shortDate(val); else if (name == 'playTime') val = formatTime(val); else if (name == 'active' || name == 'dirContinuousPlay' || name == 'dirZip') { if (name == 'dirZip' && frmo.info.dirType != 0) return; else { if (val == 1) formInfo.find('*[name="' + name + '"]').removeAttr('disabled').attr('checked', 'checked'); else formInfo.find('*[name="' + name + '"]').removeAttr('disabled').removeAttr('checked'); } } else if(name == 'dirType' && frmo.info.childCount == 0) formInfo.find('*[name="' + name + '"]').removeAttr('disabled'); if ((name == 'news' || name == 'recom' || name == 'email') && val) { $('[name="' + name + '"]').attr('checked', 'checked'); } else { formInfo.find('*[name="' + name + '"]').val(val); } } if (isDefined(info.parentMids) && parseInt(info.id) != 10000) { debug.cnsl('info.parentMids == '); debug.cnsl(info.parentMids); for (var i in info.parentMids) { parentMid = info.parentMids[i]['pmid']; var isDir = info.dir == 1; var parentFor = isDir?'Dir':'File'; var p = $(e(null, e('parentFor'+parentFor), 'input', 'defaultPmid')).attr('type', 'radio').attr('data-id', parentMid).attr('name', 'defaultPmid'); if(i == 0) p.attr('checked','checked'); e(parentMid, e('parentFor'+parentFor), 'button', 'btn btn-sm btn-default form-control').innerHTML = '  ' + info.parentMids[i]['name']; $(e(parentMid)).on('click', function (e) { nav.goTo(126, [$(e.target)[0].id]) }); $('.defaultPmid').off().on('click', function (ev) { j.post(['update', 'defaultPmid'], function (data) { if (data.status) message('Default parent changed successfully', 1); else message('Unknown error', 0); }, {mid: frmo.info.id,pmid:ev.target.dataset.id}); }); } formInfo.find('.parent').show(); } ff.validateEditPermissions(e('settingsForm'), info.createUser); // frmo.events.infoSaveButton(); formInfo.fadeIn(500); }, mediaPanel: function () { frmo.loadImg(frmo.info.imgId); $('#mediaForm').find('*[name="dsc"]').val(frmo.info.dsc); // frmo.events.infoSaveButton(); if (frmo.info.dir == 0 && frmo.info.ext == "mp3") { $('#mediaPanel').addClass('audio').find('audio')[0].src = playServer + frmo.info.id + '/audio.mp3'; } if (frmo.info.dir == 0 && frmo.info.ext == "mp4") { var videopanel = $('#videoPanel'); videopanel.removeAttr('style'); videopanel.find('video')[0].src = cpBaseUrl +'getFile/' + frmo.info.id + '/' + toUrl(frmo.info.name.trim('').replace(' ', '_')) + '.' + frmo.info.ext; var placeholder = img.url(parseInt(frmo.info.imgId), frmo.mediaImgWidth, frmo.mediaImgHeight, frmo.info.name); videopanel.find('video')[0].poster = placeholder; // videopanel.find('img')[0].src = placeholder; frmo.events.prepareVideoSnapshot(); } } }, updateImage: function (imgId, successMsg) { var dataForUpdate = { mid: frmo.info.id, imgId: imgId }; debug.cnsl(dataForUpdate); j.post(['update', 'applytomid'], function (data) { debug.cnsl(data); if (data.status) { if(successMsg)message(successMsg, 1); frmo.loadImg(imgId); if (isDefined(data.info) && data.info) message('Old screenshot has been deleted', 2); } else { message('Error apply image to Mid...', 0); } }, dataForUpdate); }, loadImg: function (imgId) { debug.cnsl('img server on pesni.org is disabled'); /*var waitId = wait.on(); $('#midImg').off('load').on('load', function () { wait.off(waitId); }); frmo.info.imgId = imgId; var midImg = img.url(parseInt(imgId), frmo.mediaImgWidth, frmo.mediaImgHeight, frmo.info.name); $('#midImg')[0].src = midImg; $('video')[0].poster = midImg;*/ }, 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; console.clear(); debug.cnsl(idForm); var formData = ff.toObj(idForm); formData['id'] = parseInt(frmo.info.id); debug.cnsl(formData); j.post(['update', 'info'], function (data) { debug.cnsl(data); if (data.status) { message('Saved!', 1); } else message('Not saved', 2); }, 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; frmo.canvas.height = frmo.video.videoHeight; }, false); $(frmo.video).on('click', function () { debug.cnsl(frmo.video.paused); if (frmo.video.paused) frmo.video.play(); else frmo.video.pause(); }); } }, // Takes a snapshot of the video snap: { get: function () { frmo.video.crossOrigin = "Anonymous"; // Define the size of the rectangle that will be filled (basically the entire element) frmo.context.fillRect(0, 0, frmo.video.videoWidth, frmo.video.videoHeight); // Grab the image from the video frmo.context.drawImage(frmo.video, 0, 0, frmo.video.videoWidth, frmo.video.videoHeight); }, save: function () { // upload 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) { var successMsg = 'Image has been uploaded'; frmo.updateImage(data.imgId, successMsg); } else message('Error uploading image.', 0); }, params); } else message('Image must be 300*300px or more. Your image - ' + frmo.canvas.width + '*' + frmo.canvas.height + '', 0); } }, addTo: { news: function (mid) { j.post(['insert', 'ner'], function (data, params) { if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to front page news list.", 1); $('#' + mid + ' .inNews').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in news list."); else message("Error adding " + params.mid + " news.", 0); }, {mid: mid, ner: 'news',formId:126}); }, email: function (mid) { j.post(['insert', 'ner'], function (data, params) { if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to news's letter list.", 1); $('#' + mid + ' .inMails').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in news's letter list."); else message("Error adding " + params.mid + " news's letter.", 0); }, {mid: mid, ner: 'email',formId:126}); }, recom: function (mid) { j.post(['insert', 'ner'], function (data, params) { debug.cnsl(data); if (isDefined(data.result) && data.result == 1) { message(params.mid + " has been added to recommended list.", 1); $('#' + mid + ' .inRecommend').show(); } else if (isDefined(data.result) && data.result == 2) message(params.mid + " already exists in recommended list."); else message("Error adding " + params.mid + " recommended", 0); }, {mid: mid, ner: 'recommend',formId:126}); } }, removeWith: { news: function (mid) { j.post(['delete'], function (data, params) { debug.cnsl(data); message(params.id + " has been deleted with list.", 1); }, {id: mid, formId:101}); }, email: function (mid) { j.post(['delete'], function (data, params) { debug.cnsl(data); message(params.id + " has been deleted with list.", 1); }, {id: mid, formId:104}); }, recom: function (mid) { j.post(['delete'], function (data, params) { debug.cnsl(data); message(params.id + " has been deleted with list.", 1); }, {id: mid, formId:102}); } }, onstorage: function (ev) { if (ev.key == ('midImgId' + frmo.info.id) && ev.newValue != null) { frmo.updateImage(ev.newValue, 'Apply image to Mid - successfully!'); localStorage.removeItem(ev.key); } } }; function fixCheckbox() { debug.cnsl('fixCheckbox()'); var allCheckbox = $('input[type="checkbox"]'); $.each(allCheckbox, function (i, item) { if ($(item)[0].checked) $(item).val(1); else $(item).val(0); }); $('body').on('change', 'input[type="checkbox"]', function (e) { debug.cnsl($(e.target)[0].checked); if ($(e.target)[0].checked) $(e.target).val(1); else $(e.target).val(0); }); }frm[160] = { popup: false, init: function (params) { if (isDefined(params[0])) $('#bId').val(params[0]); frmo.getMediaDirs(); frmo.setEvents(); j.post(['init'], function (data) { local.getSelect(data.rolesList,'roleId','-- Select file role --', false, null, 'roles'); }, {}); }, getMediaDirs: function () { var videoCode = getUrlParameter('v'); j.post(['init'], function (data) { debug.cnsl(data); var dataList = frmo.pmidReady = data.str; var dirName = '', curId; for (var id in dataList) { if(dataList[id].dirType==0){ curId = id; dirName = dataList[id].name; while (dataList[curId].pmid > 10000) { dirName = dataList[dataList[curId].pmid].name + ' / ' + dirName; curId = dataList[curId].pmid; } e(null, e('dirList', null, 'datalist'), 'option').t(dirName).value = id; } } if (videoCode) { $('#bId').val(videoCode); } }, {formId: 126, mid: false, str: 1}); }, setEvents: function () { $('button.save').off().on('click', function () { console.count('button.save click'); var bId, i, formdata = ff.toObj('uploadYoutube'); debug.cnsl(formdata); // if(!frmo.isMidCompatible(formdata['pmid'])){ if (!frmo.pmidReady[formdata['pmid']] || frmo.pmidReady[formdata['pmid']].dirType != 0) { message('Parent Directory -- no correct', 0); $('#uploadYoutube input[name="pmid"]').css({border: '1px solid #f00'}); throw new Error('Parent Directory -- no correct'); } else $('#uploadYoutube input[name="pmid"]').css({border: '1px solid #05cc05'}); var status = true; // if mass bId upload if (ff.chkBoxVal(e('massUpload'))) { debug.cnsl('massUpload'); var bIds = $('#bIds').val().replace(new RegExp(' ', "ig"), '').replace(new RegExp('', "ig"), '').split(','); debug.cnsl(bIds); for (i in bIds) { bId = bIds[i]; formdata['bId'] = bId; j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message(data.message, 1); } else { message(data.message, 3); status = false; } }, formdata); } if (status && !frmo.popup) { // if all added success -- reset form if (ff.chkBoxVal($('#massUpload')[0])) $('#bId,#bIds').toggle(); $('#uploadYoutube')[0].reset(); } } // if single bId upload else { debug.cnsl(formdata); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { if (frmo.popup) { window.close(); } else { message(data.message, 1); if (ff.chkBoxVal($('#massUpload'))) $('#bId,#bIds').toggle(); $('#uploadYoutube')[0].reset(); } } else { message(data.message, 3); status = false; } }, formdata); } }); }, isMidCompatible: function (pmid) { j.post(['getIsMidCompatible'], function (data) { debug.cnsl(data); return data.compatible }, {pmid: pmid, formId: 126}); } }; 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', 'bName', 'pmid', 'createUser', 'createDate'); for (var i in order) { var columnName = order[i]; line[columnName] = !isDefined(line[columnName]) || line[columnName] == null ? 'loading...' : line[columnName]; switch (columnName) { case 'createDate': { var text = isDefined(line[columnName]) ? parseDate.shortDate(line[columnName]) : ''; break; } case 'mid': { var text = ''; if (line['image'] != null) // text = ''; text = ''; text = text + '' + line[columnName] + ''; $('#' + line['id'] + ' .mid').prepend(text); break; } case 'bName': { var text = ''; var vId = line['bId']; var url = 'https://blago.tube/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 'pmid': { var text = ''+line[columnName]+'' break; } default: { var 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; } // Mid not active case '5': { e(null, tr, 'td', 'actions').innerHTML = 'Not active
    '; e(id).className += ' notActive'; 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) { var p = $(ev).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}); }, 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}); }, 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[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(151, 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[165] = { 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; frmo.video.load(); frmo.loadImg(frmo.info.imgId); //path selector frmo.dirDataList(data.str); // build dir list for move mid frmo.cropedList(data.cropedList); } else { message('Wrong id (' + frmo.vId + ')', 0); nav.goTo(105); } }, {id: frmo.vId}); } }, video: { load:function () { var pt = frmo.info['playTime'] != null ? frmo.info['playTime'] * 1000 : 0; for (var i in frmo.info) { if (i == 'playTime' && pt != 0) { frmo.video.playTimeUpdate(pt); } else if (i == 'id') { if(pt==0) $('audio')[0].onloadeddata = frmo.video.playTimeUpdate; $('audio')[0].src = dwnldServer + frmo.info.id + '/audio.mp3'; } else if (i == 'name') document.getElementById('newName').value = frmo.info[i] + " **** Cropped Audio"; else if (i == 'pmid') document.getElementById('pmid').value = frmo.info[i]; } frmo.event(); }, playTimeUpdate: function (pt){ pt = isDefined(pt.type) ? Math.ceil(pt.target.duration*1000) : pt; $('[name="endTime"]').attr('max', pt).attr('step', frmo.cropStep).val(pt); $('[name="startTime"]').attr('max', pt).attr('step', frmo.cropStep); $('.rangeBox .range_max').text(frmo.formatTime(pt)); frmo.durationChange(pt); } }, event: function () { $('input[type="range"]').on('input', function (e) { frmo.range(e.target) }); $('#startCrop').on('click', function () { ff.validation(e('cropInfo'), frmo.startCrop); }); $('#getStartTime').off().on('click', function () { var time = $('#outputAudio')[0].currentTime; $('input[name="startTime"]').val(time * 1000); frmo.range('input[name="startTime"]'); }); $('#getEndTime').off().on('click', function () { var time = $('#outputAudio')[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 audio = e('outputAudio'); var start = $('input[name="startTime"]').val(); var end = $('input[name="endTime"]').val(); $(audio).off().on('timeupdate', function () { if (audio.currentTime > end / 1000) { audio.pause(); $(audio).off(); } }); audio.currentTime = start / 1000; audio.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; }, false); }, loadImg: function (imgId) { var waitId = wait.on(); $('#newImgId').off('load').on('load', function () { wait.off(waitId); }); document.getElementById('newImgId').src = img.url(imgId, 0,0, 'article'); document.getElementById('newImgId').dataset.id = imgId; }, clearImg: function () { if (confirm('Reset image?')) { frmo.loadImg(4000); } }, 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(); $('#outputAudio')[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.video.crossOrigin = "Anonymous"; // Define the size of the rectangle that will be filled (basically the entire element) frmo.context.fillRect(0, 0, frmo.video.videoWidth, frmo.video.videoHeight); // Grab the image from the video frmo.context.drawImage(frmo.video, 0, 0, frmo.video.videoWidth, frmo.video.videoHeight); }, save: function () { // upload 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); } 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); } }, startCrop: function (){ document.getElementById('newName').value = document.getElementById('newName').value.replace(/"/g, '"'); var data = ff.toObj('cropParam'); data['newImgId'] = isDefined(document.getElementById('newImgId').dataset.id) ? document.getElementById('newImgId').dataset.id : ''; data['startTime'] = data['startTime'] / 1000; data['endTime'] = data['endTime'] / 1000; debug.cnsl(data); j.post(['update', 'crop', frmo.vId], function (data) { debug.cnsl(data); if (data.status) { message('Added to queue', 1); nav.goTo(151, frmo.vId); } }, data); }, 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"]'); }); } }, dirDataList: function (dataList) { var dirName = '', curId, dirListId; for (var id in dataList) { if (dataList[id].dirType == 0) { curId = id; dirName = dataList[id].name; while (dataList[curId].pmid > 10000) { dirName = dataList[dataList[curId].pmid].name + ' / ' + dirName; curId = dataList[curId].pmid; } e(null, e('filesParMidList', null, 'datalist'), 'option').t(dirName).value = id; } } }, onstorage: function (ev) { if (ev.key == ('cropImgId' + frmo.info.id) && ev.newValue != null) { frmo.loadImg(ev.newValue); localStorage.removeItem(ev.key); } } };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); }, {}); } /*sv:function () { if(confirm('Are you sure you want to delete this file version?')) j.post(['delete', 'sv', frmo.fileInfo['id']], function (data) { debug.cnsl(data); if(data.status){ message('File version deleted successful', 1); nav.goTo(169); } else message('Error file version didn\'t delete', 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[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 = $('.collection').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.collections); }, {}); }, run: { channelsList: function (channels) { $('#channelsTbody').empty(); var chanelRow; for (let i in channels) { let channel = channels[i]; 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 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 (data.status) { message('Collection info saved!', 1); if (!a) form.init(); } else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('title') + 1) { message('Collection name 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.collectionId, imgId: newImgID}); } }, insert: function (e) { var formData = ff.toObj('new'); debug.cnsl(formData); if (formData.name == '') message("Title 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('title') + 1) { message('Collection name already exist', 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 == ('collectionImgId' + frmo.collectionId) && ev.newValue != null) { frmo.update.img(ev.newValue); localStorage.removeItem(ev.key); } } };frm[220] = { 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; 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 == '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[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[299] = { init:function(){ j.post(['init'], function (data) { debug.cnsl(data); }, {}); } };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; } } };