frm[100] = { init: function () { debug.cnsl('init'); j.post(['init'], function (data) { debug.cnsl(data); frmo.ma = data.ma; frmo.emails = data.emails; frmo.process.emails(); frmo.homeAs = true; // analytics.start(); }); }, process: { emails: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('#mailTable tr').remove().clone(); var mailTable = e('mailTable'); for (var i in frmo.emails) { var em = frmo.emails[i]; var tr = e(null, mailTable, 'tr'); e(null, tr, 'td', 'table-inbox-message text-bold').innerHTML = '
' + em['subject'] + ' сообщение от ' + em['name'] + '
' + '' + em['message'] + ''; e(null, tr, 'td', 'table-inbox-time').innerHTML = parseDate.shortDate(em['date']); } } } }; frm[105] = { searchMinLength: 3, init:function(){ frmo.searchInit(); frmo.buttons(); frmo.findLine = $('#listBody .findLine').html(); $('#listBody').empty(); frmo.search(); }, searchInit: function () { j.post(['init'], function (data) { debug.cnsl(data); frmo.extParams = data['searchParams']['ext']; frmo.searchParams.getSelect(data['searchParams'], frmo.getHrefSearch); }); }, search: function (i) { var sText = $('input[name="sw"]').val(); frmo.searchQ = new Object(); frmo.searchQ = ff.toObj('searchRequest'); 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); // window.href = frmo.getCurSituationsLink(); // location.href = frmo.getCurSituationsLink(); // location.hash = frmo.getCurSituationsLink(); }, frmo.searchQ); } else { message('Minimum ' + frmo.searchMinLength + ' chart!', 3); $('.result').hide(); } }, searchParams:{ getSelect: function (data, callback) { for (var own in data.owners){ /*if (own == sett.user.id)$('select[name="createUser"]').append(''); else */ $('select[name="createUser"]').append(''); } for (var upd in data.updaters){ $('select[name="updateUser"]').append(''); } for (var ex in data.ext){ $('select[name="ext"]').append(''); } for (var ch in data.channels){ $('select[name="chid"]').append(''); } for (var ct in data.categories){ $('select[name="ctid"]').append(''); } for (var statCS in data.statusesOnCS){ $('select[name="csStatus"]').append(''); } for (var cs in data.cServers){ $('select[name="csId"]').append(''); } callback(); } }, dataProcess: function (data) { $('#listBody').empty(); var tbl = e('listBody'); if(data.allFinds>0) $('.allFinds').text('Showing ' + data.showed + ' of ' + data.allFinds + ' found'); else { $('.allFinds').html('Nothing found'); $('.searList').fadeIn(500); e(null, e(null, tbl, 'tr', 'findLine'), 'td') .a('colspan', '8') .a('style', 'text-align: center;') .t('Nothing found, please try another search parameters or update search params and try again'); } var line = frmo.findLine; var el = data['searchRezult']; if (isDefined(data['searchRezult'])) { $('.searList').fadeIn(500); for (var key in data.searchRezult) { var keys = data.searchRezult[key]['id']; var tr = e(keys, tbl, 'tr', 'findLine status' + el[key]['status'] ); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in el[key]) { var td = el[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { var hr = nav.link(213,[keys]); cont = ' '; // cont = ''; } else if (t == 'productName') { // var hr = '/media/detail/' + keys; var hr = nav.link(213,[keys]); // cont = '' + cont + ''; cont = '' + cont + ''; } else if (t == 'active') { cont = cont=='0' ? 'неактивен' : 'включен'; } 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 video?')){ j.post(['delete'], function (data) { if(data.status) { message('Video deleted successfully', 1); $('#'+mid).hide(); } else message('System error!', 0); }, {id: mid}); } }); $('.midImg').off().on('mousedown', function (ev) { debug.cnsl('mousedown'); debug.cnsl(ev.which); if(ev.which==1){ ev.preventDefault(); ev.stopImmediatePropagation(); ev.target.src = ev.target.dataset.src; ev.target.play(); ev.target.controls=true; // $(ev.target).css('width', '120px'); $(ev.target).css('height', 'auto'); $(ev.target).css('min-height', '80px'); } }); } }, tmstmpDate: function(tmst){ var date = new Date(tmst); var m = date.getMonth() + 1; date = (date.getFullYear()+"-"+m+"-"+date.getDate()); //debug.cnsl(date); date = parseDate.shortDate(date); return date; }, buttons:function () { $('#searchMediaBtn').off().on('click', function () { frmo.search(); }); $('input[type="range"]').on( 'input', function(e){ frmo.range(e.target)}); if(!isDefined(perValue)) var perValue = ''; $('input[name="sw"]').off() .on('keypress', function (e) { if (e.which == 13) { e.preventDefault(); e.stopImmediatePropagation(); }}) .on('keyup', function (e) { if (e.which == 13) { e.preventDefault(); e.stopImmediatePropagation(); frmo.search(); } var sText = $('input[name="sw"]').val(); if(perValue == '') perValue = sText; else if(perValue != sText){ $('.result').fadeOut(500); $('.searList').fadeOut(500); perValue = sText; } }); $('#shareSearch').off().on('click', function (e) { e.preventDefault(); e.stopImmediatePropagation(); var ll = frmo.getCurSituationsLink(); copyToClipboard(ll); }); }, getCurSituationsLink:function () { var link = cpBaseUrl+'store/products/search?'; 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++; } } return link; }, getHrefSearch: function () { var shData = new Array(); shData = document.location.href; shData = decodeURI(shData); shData = shData.split('?'); debug.cnsl(shData); if(isDefined(shData[1])){ shData = shData[1].split('&'); for(var i in shData){ var line = new Array(); line = shData[i].split('='); var sel = '[name="' + line[0] + '"]'; if(line[0] == 'ext' && line[1] !='all') frmo.searchParams.getRange(frmo.extParams[line[1]]); if((line[1] == 0 || line[1] == 1) && $(sel)[0].tagName=='INPUT') { if (line[1] == 1) $(sel)[0].checked = 'checked'; else $(sel)[0].checked = ''; } else $(sel).val(line[1]); if (isDefined($('input[type="range"][name="' + line[0] + '"]')[0])){ frmo.range(sel); //debug.cnsl(line[0]); } } frmo.search(); } }, getMediaIcon: function(ext) { var icon = ''; if(ext == null) icon = "icon-folder3"; else if (ext == 'mp3') icon = "icon-music"; else if (ext == 'mp4') icon = "icon-screen3"; else if (ext == 'pdf') icon = "icon-file-pdf"; else icon = "icon-file-empty"; return icon; } }; frm[109] = { init:function(){ if(!isDefined(frmo.newRow))frmo.newRow = $('.iprow').remove().clone(); j.post(['init'], function (data) { if(!isDefined(frmo.dataIps))frmo.dataIps = data.ips; frmo.run.ipsList(data.ips); }, {}); }, run:{ ipsList: function (ips) { $('#ipsTbody').empty(); var ipRow; debug.cnsl(ips); if(isDefined(ips))$.each(ips, function (i, ip) { // debug.cnsl(module); ipRow = frmo.newRow.clone(); ipRow[0].id = parseInt(ip.id); $.each(ip,function (fieldName,val) { var td = $(ipRow).find('.'+fieldName); if(fieldName=='expirationDate' || fieldName=='createDate') { if(val == '0000-00-00')val = 'no expiration'; else val = parseDate.shortDate(val); } td.text(val); }); ipRow.find('td.editable').on('click',function (e) { $(this).off(); frmo.edit.td(e.target); }); ipRow.appendTo('#ipsTbody').show(); }); }, addLine:function () { if($('#new').is('tr')) {message('Click "Add" for previous line', 3); return;} var row = frmo.newRow.clone().show(); debug.cnsl('addLine'); $(row).find('td.ip').append(''); $(row).find('td.date').append(''); $(row).find('td.note').append(''); $(row).find('button:not(.add), .status *').remove(); $(row).find('button.add').show(); $(row)[0].id = 'new'; $(row).css('background-color','#8fbc8f'); $('#ipsTbody').append(row); $("html, body").animate({ scrollTop: $(document).height() }, 1000); } }, update:{ td:function (e) { var id = $(e).parents('tr')[0].id; if($('#'+id+' input[name="ip"]').is()) { var ipVal = $('#' + id + ' input[name="ip"]').val().trim(); debug.cnsl(ipVal); debug.cnsl(regex.ip.test(ipVal)); if (!regex.ip.test(ipVal)) { message('Invalid IP', 0); return; } } 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); form.init(); } }, formData); } }, insert:function (e) { var formData = ff.toObj('new'); if(!regex.ip.test(formData.ip)) { message('Invalid IP', 0); return; } if(formData.expirationDate=='')formData.expirationDate = '0000-00-00'; if(formData.note==''){ message('Note field is required', 0); return; } 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 id = $(e).parents('tr')[0].id; var fieldName = $(e)[0].className; if (fieldName=='') fieldName = $(e).parents('td')[0].className; fieldName = fieldName.replace('editable','').replace('date','').replace('textarea','').trim(); debug.cnsl(fieldName); $(e).empty(); if( $(e).hasClass('ip') ) $(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).hasClass('date') ) $(e).append( '' ); // else if($(e).not('.ip, .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(); } }, {id: $(e).parents('tr')[0].id }); } }; frm[111] = { folder:'', mailCount : 0, page: 0, finish: 0, init:function(params){ // debug.cnsl(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) { // debug.cnsl(data); frmo.run.panel(data); var mailTable = $('#mailTable'); var mailRow = mailTable.find('tr').remove().clone(); if(isDefined(data.mails)) $.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-preview').text(mail.message); mailRow.find('.table-inbox-name div').text(mail.name); if(mail.location != null)mailRow.find('.table-inbox-name .location').text(mail.location); else mailRow.find('.table-inbox-name .location').text('location NULL in DB'); 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'); $('.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.mailCount = 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) ); } frmo.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) { debug.cnsl(e); var id = $(e).parents('tr')[0].id; var val = $(e).parents('tr').hasClass(type) ? 0 : 1; debug.cnsl(id); j.post(['update',type], function (data) { debug.cnsl(data); if(data.status){ message('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}); }, pagerService: function() { 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[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) { // debug.cnsl(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('Click "Add" for previous 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('Сохранено!', 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(); 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 { 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(117); // 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('customerID').value = data.customerID; 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('viberChatId').value = data.viberChatId; 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; } }, 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(), viberChatId: e('viberChatId').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(117, [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', '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: 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("хорошо обдумали?)")) { if (confirm("Точно? это зачистит без возможности восстановления!")) { 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: 1067}); } } } }, 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 = sett.forms[f2]; option.value = f2; if (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); // set validation objects on ff.validation(e('passwordForm'), frmo.update.password); ff.validation(e('profileForm'), frmo.update.profile); }, {}); }, 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); var x = e('homeForm'); empty(x); for (var f2 in sett.forms){ var option = document.createElement("option"); option.text = sett.forms[f2]; option.value = f2; if(sett.user.homeForm==f2) { option.selected = "true"; debug.cnsl(sett.user,f2); } x.add(option); } var showYoutube = document.location.href; showYoutube = decodeURI(showYoutube); showYoutube = showYoutube.split('#'); if(isDefined(showYoutube[1]) && showYoutube[1] == 'viewCode'){ $('.ytUserCode').addClass('focus'); $('.ytUserCode.focus #copyYUC').off().on('click', function (e) { $('.ytUserCode').removeClass('focus'); close(); }); } }, 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; } } }, update: { password: function () { j.post(['updatePassword'], function (data) { if (data.statusQR) { 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 () { sett.user.homeForm = e('homeForm').value; j.post(['updateProfile'], function (data) { if (data.statusQR) { message('Your Profile has been updated', 1); frmo.init(); } else if(data.error.indexOf("email")) message("This email already used", 3); 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.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(); }, {}); } }, test:function (formId) { var formdata = new Array(); var formarray = $('#'+formId).serializeArray(); debug.cnsl(formarray); $.each(formarray, function(i,item){ formdata[item.name] = item.value; }); return formdata; } }; frm[125] = { init:function(){ j.post(['init'], function (data) { frmo.run.adminGrid(data.admins); }, {}); }, run:{ adminGrid: function (admins) { // debug.cnsl(admins); var admindiv = $('.admindiv').remove().clone(); $.each(admins, function (i, admin) { if(admin.su==0) admindiv.find('.isAdmin').hide(); 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!='' && admin.viber!= 'none') admindiv.find('.viber').html('Viber: '+admin.viber); else admindiv.find('.viber').text('None'); // if (admin.viber!='' && admin.viber!= 'none') admindiv.find('.viber').html('Viber: Start chat('+admin.viber+')'); else admindiv.find('.viber').text('None'); if (admin.viberChatId!='' && admin.viberChatId!= 'none') admindiv.find('.viberChatId').html('ViberChatId: Start chat('+admin.skype+')'); else admindiv.find('.skype').text('None'); if (admin.phone!='' && admin.phone!= 'none') admindiv.find('.phone').html('Phone: '+admin.phone); else admindiv.find('.phone').text('None'); admindiv.appendTo('#adminGrid'); admindiv = admindiv.clone(); }) } } }; 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('Сохранено!', 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!', 2); } }, 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('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 += ''; 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) { // debug.cnsl(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); }); /*if(module.active==parseInt(1)) moduleRow.find('.status input').attr('checked','checked'); else moduleRow.find('.status input').removeAttr('checked');*/ // moduleRow.find('.text').empty().html(module.announce).on('click',function (e) { moduleRow.find('td.editable').on('click',function (e) { $(this).off(); frmo.edit.td(e.target); }); // annRow.find('.createUser').text(ann.createUser); // annRow.find('.createDate').text(parseDate.shortDate(ann.createDate)); moduleRow.appendTo('#modulesTbody').show(); }); }, addLine:function () { if($('#new').is('tr')) {message('Click "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'; debug.cnsl(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['id'] = id; debug.cnsl(formData); if (formData['id'] == formData['parentModule']) message('Parent module ID can\'t be same as current id', 3); else j.post(['update','all'], function (data) { if(data.status){ message('Saved!',1); frmo.init(); } }, 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('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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 указав используемый параметр в юрл: /* window.addEventListener('storage', function (e) { if (e.key == ('sliderImgId' + frmo.slideId)) { var id = localStorage.getItem('sliderImgId' + frmo.slideId); if (id > 0) { frmo.update.img(id); localStorage.clear('sliderImgId' + frmo.slideId); } return false; } }); */ 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.imageCatsListSelect('catId', 'searchImageCatId')).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.imageCategory(); $('.replaceImageId 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('.replaceImageId input[type="number"]').val(); var del = ff.chkBoxVal(parBlock.find('.replaceImageId 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('Сохранено!', 1); else message('Error on save!', 0); }, {catId: $(e).val(), status: status, imageId: imgId}); } }, insert: function (e) { var formData = ff.toObj('new'); debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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('Сохранено!', 1); DSC.text(dsc); frmo.edit.dsc(); } else message('Not saved!', 2); }, {dsc: dsc, id: id}); } }); } else message('No Update Permissions', 0); }); }, imageCategory: function () { $('.catsImg td.val span').off().on('click', function (e) { var imgId = $(e.target).parents('.imageBlock')[0].id; $(e.target).parent('td').html(frmo.imageCatsListMulticheckbox(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, 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($('#searchImageCatId').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.
'); } }, imageCatsListSelect: function (name, id) { var select = ''; id = 'id="' + id + '" ' || ' '; select += ''; return select; }, imageCatsListMulticheckbox: 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('getImageId!'); var id = $(e).parents('.imageBlock')[0].id; copyToClipboard(id); debug.cnsl(id); return id; } }; function copyToClipboard(data) { var $temp = $(""); $("body").append($temp); $temp.val(data).select(); document.execCommand("copy"); message('Copied to clipboard!', 1); $temp.remove(); } function saveRatio(id, changedElem) { var width = $('#' + id + ' input[name="width"]').val(); var height = $('#' + id + ' input[name="height"]').val(); if (!isDefined(width) || !isDefined(height)) message('Fields Width & Height are empty!', 0); if (width < 10 || height < 10) message('Fields Width & Height can`t be less then 10 ', 0); if (width > frmo.galleryCopy[id].width || height > frmo.galleryCopy[id].height) { width = frmo.galleryCopy[id].width; height = frmo.galleryCopy[id].height; $('#' + id + ' input[name="width"]').val(width); $('#' + id + ' input[name="height"]').val(height); message('Width & Height can`t be more then original image size - ' + width + '*' + height + '.
' + 'Values were reset to max values!', 0); } if ($('#' + id + ' input[name="ratio"]')[0].checked) { var h = $('#' + id + ' input[name="height"]'); var w = $('#' + id + ' input[name="width"]'); if (changedElem == 'H') { /* Y = h.val(); X = Math.round((W * Y) / H); w.val(X);*/ w.val(ratio.h(id, h.val())); } if (changedElem == 'W') { /*Y = w.val(); X = Math.round((H * Y) / W); h.val(X);*/ h.val(ratio.w(id, w.val())); } } } var ratio = { construct: function (id) { this.H = frmo.galleryCopy[id].height; this.W = frmo.galleryCopy[id].width; }, h: function (id, Y) { ratio.construct(id); return Math.round((this.W * Y) / this.H) }, w: function (id, Y) { ratio.construct(id); return Math.round((this.H * Y) / this.W) } }; function prepareGallery(data) { frmo.gallery = new Array(); frmo.galleryCopy = new Object(); var images = data.images; for (var i in images) { images[i].width = parseInt(images[i].width); images[i].height = parseInt(images[i].height); images[i].size = parseInt(images[i].size); images[i].id = parseInt(images[i].id); frmo.galleryCopy[images[i].id] = images[i]; } frmo.gallery = images; frmo.imageNotUse = data.imageNotUse; frmo.catsImg = data.catsImg; } frm[134] = { searchMinLength: 3, init: function () { frmo.search(); frmo.buttons(); frmo.findLine = $('#listBody .findLine').html(); $('#listBody').empty(); }, search: function (i) { frmo.searchQ = ff.toObj('searchRequest'); j.post(['init', 'start'], function (data) { $('.result').show(); debug.cnsl(data); frmo.dataProcess(data); }, frmo.searchQ); }, dataProcess: function (data) { $('#listBody').empty(); var tbl = e('listBody'); var qty = (data.searchRezultOverMids.length ? data.searchRezultOverMids.length : 0) + (data.searchRezultOverFile.length ? data.searchRezultOverFile.length : 0); if (data.searchRezultOverFile.length > 0 || data.searchRezultOverMids.length > 0) $('.allFinds').text(qty + ' results'); else { $('.allFinds').html('Nothing found'); $('.searList').fadeIn(500); e(null, e(null, tbl, 'tr', 'findLine'), 'td') .a('colspan', '8') .a('style', 'text-align: center;') .t('Nothing found, please try another search parameters or update search params and try again'); } var line = frmo.findLine; var el = data['searchRezultOverMids']; if (isDefined(data['searchRezultOverMids'])) { $('.searList').fadeIn(500); for (var key in data.searchRezultOverMids) { var keys = data.searchRezultOverMids[key]['id']; var tr = e(keys, tbl, 'tr', 'findLine mid status' + el[key]['status']); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in el[key]) { var td = el[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { cont = ''; } else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser; else if (t == 'size' && cont != null) cont = formatBytes(cont); $('#' + keys + ' td.' + t).html(cont); } } e(null, tr, 'span', 'secretDelete').t('X').a('title', 'Delete this MID'); } } var el = data['searchRezultOverFile']; if (isDefined(data['searchRezultOverFile'])) { $('.searList').fadeIn(500); for (var key in data.searchRezultOverFile) { var keys = data.searchRezultOverFile[key]['id']; var tr = e(keys, tbl, 'tr', 'findLine file withoutDB'); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in el[key]) { var td = el[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { var hr = nav.link(213, [keys]); cont = ' '; } else if (t == 'name') { // var hr = '/media/detail/' + keys; var hr = nav.link(213, [keys]); cont = '' + cont + ''; } else if (t == 'status') { cont = cont + '
' + '
'; } else if (t == 'createDate') cont = parseDate.jsTimeStamp(cont * 1000) + '
'; else if (t == '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'); } } $('#source').off().on('change', function (ev) { debug.cnsl(ev.target); var sel = $('#source').val(); var mid = sel.indexOf('m') + 1; var file = sel.indexOf('f') + 1; if (mid && file) $('.findLine').show(); else if (mid) { $('.findLine').hide(); $('.findLine.mid').show(); } else if (file) { $('.findLine').hide(); $('.findLine.file').show(); } }); $('.secretDelete').off().on('click', function (ev) { var mid = $(ev.target).parents('tr.findLine')[0].id; if (confirm('Delete this video?')) { j.post(['delete'], function (data) { if (data.status) { message('Video deleted successfully', 1); $('#' + mid).hide(); } else message('System error!', 0); }, {id: mid}); } }); $('.midImg').off().on('mousedown', function (ev) { // debug.cnsl('mousedown'); // debug.cnsl(ev.which); if (ev.which == 1) { ev.preventDefault(); ev.stopImmediatePropagation(); ev.target.src = ev.target.dataset.src; ev.target.play(); ev.target.controls = true; $(ev.target).css('width', '200px'); $(ev.target).css('height', 'auto'); $(ev.target).css('min-height', '80px'); // $(ev.target).css('position', 'absolute'); } }); }, fileSet: { createMid: function (ev) { // alert(ev.dataset.id+' нужно обсудить каким образом это будет работать'); j.post(['insert', 'createMid'], function (data) { if (data.creaTED) { message('Mid created successfully', 1); window.open(nav.link(213, ev.dataset.id)); $(ev).parents('tr').remove(); } else message('System error!', 0); }, {mid: ev.dataset.id, createDate: ev.dataset.cdt}); }, delete: function (ev) { j.post(['delete', 'file'], function (data) { if (data.status == "Deleted!") { message('File deleted successfully', 1); $(ev).parents('tr').remove(); } else if (!data.error) message('System error!', 0); }, {mid: ev.dataset.id}); } }, range: function (e) { if (isDefined(e)) var rangeGroup = $(e).attr('name'), minBtn = $(e).parent().children('.min'), maxBtn = $(e).parent().children('.max'), range_min = $(e).parent().children('.range_min'), range_max = $(e).parent().children('.range_max'), minVal = parseInt($(minBtn).val()), maxVal = parseInt($(maxBtn).val()), rBox = $(e).parents('.rangeBox'), value, origin = $(e)[0].className; if (origin === 'min' && minVal > maxVal - 5) $(minBtn).val(maxVal - 5); if (origin === 'max' && maxVal - 5 < minVal) $(maxBtn).val(5 + minVal); var minVal = parseInt($(minBtn).val()); var maxVal = parseInt($(maxBtn).val()); var cls = rBox[0].className.split(' '); if (cls.indexOf('pTime') > -1) { minVal = formatTime(minVal); maxVal = formatTime(maxVal); $(range_min).text(minVal); $(range_max).text(maxVal); } else if (cls.indexOf('date') > -1) { $(range_min).text(frmo.tmstmpDate(minVal)); $(range_max).text(frmo.tmstmpDate(maxVal)); } else if (cls.indexOf('size') > -1) { minVal = formatBytes(minVal); maxVal = formatBytes(maxVal); $(range_min).text(minVal); $(range_max).text(maxVal); } } , tmstmpDate: function (tmst) { var date = new Date(tmst); var m = date.getMonth() + 1; date = (date.getFullYear() + "-" + m + "-" + date.getDate()); //debug.cnsl(date); date = parseDate.shortDate(date); return date; } , buttons: function () { $('#searchMediaBtn').off().on('click', function () { frmo.search(); }); $('input[type="range"]').on('input', function (e) { frmo.range(e.target) }); if (!isDefined(perValue)) var perValue = ''; $('input[name="sw"]').off() .on('keypress', function (e) { if (e.which == 13) { e.preventDefault(); e.stopImmediatePropagation(); } }) .on('keyup', function (e) { if (e.which == 13) { e.preventDefault(); e.stopImmediatePropagation(); frmo.search(); } var sText = $('input[name="sw"]').val(); if (perValue == '') perValue = sText; else if (perValue != sText) { $('.result').fadeOut(500); $('.searList').fadeOut(500); perValue = sText; } }); $('#shareSearch').off().on('click', function (e) { e.preventDefault(); e.stopImmediatePropagation(); var link = cpBaseUrl +'media/search?'; var i = 0; for (var field in frmo.searchQ) { if (field != 'formId' && frmo.searchQ[field] != "") { link += i == 0 ? field + '=' + frmo.searchQ[field] : '\&' + field + '=' + frmo.searchQ[field]; i++; } } copyToClipboard(link); }); } , getHrefSearch: function () { var shData = new Array(); shData = document.location.href; shData = decodeURI(shData); shData = shData.split('?'); debug.cnsl(shData); if (isDefined(shData[1])) { shData = shData[1].split('&'); for (var i in shData) { var line = new Array(); line = shData[i].split('='); var sel = '[name="' + line[0] + '"]'; if (line[0] == 'ext' && line[1] != 'all') frmo.searchParams.getRange(frmo.extParams[line[1]]); if ((line[1] == 0 || line[1] == 1) && $(sel)[0].tagName == 'INPUT') { if (line[1] == 1) $(sel)[0].checked = 'checked'; else $(sel)[0].checked = ''; } else $(sel).val(line[1]); if (isDefined($('input[type="range"][name="' + line[0] + '"]')[0])) { frmo.range(sel); //debug.cnsl(line[0]); } } frmo.search(); } } , getMediaIcon: function (ext) { var icon = ''; if (ext == null) icon = "icon-folder3"; else if (ext == 'mp3') icon = "icon-music"; else if (ext == 'mp4') icon = "icon-screen3"; else if (ext == 'pdf') icon = "icon-file-pdf"; else icon = "icon-file-empty"; return icon; } }; frm[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]) ? 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 (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.imageCatsListSelect('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+"imageUploads/" + data.filename; frmo.fDSC.find('*[name="dsc"]').val(data.filename.replace('.jpg', '')); $('.dwnldZone').fadeOut(100); frmo.loadImg(function () { message('Img can be deleted from server', 1); j.post(['delete', 'importImg'], function (data) { debug.cnsl(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(); }, imageCatsListSelect: 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); 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('Сохранено!', 1); frmo.run.catList(data.cats); } else message('Not saved!(', 0); }, formData); } }, insert: function (e) { var formData = ff.toObj('new'); if(formData.comment==''){ message('Comment field is required', 0); return; } debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); nav.goTo(form.id); } else { message('ImgId not found!', 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[148] = { init: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('.slide').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); frmo.run.slidesList(data.slides); }, {}); frmo.run.actions(); }, run: { slidesList: function (slides) { debug.cnsl(slides); $('#slidesTbody').empty(); var slideRow; var showArr = ['active', 'sort', 'title', 'imgId', 'subTitle', 'btnCaption', 'btnUrl', 'slideClass', 'createDate']; for (var i in slides) { var slide = slides[i]; slideRow = frmo.newRow.clone(); slideRow[0].id = 'slide'+slide.id; slideRow[0].dataset.id = slide.id; for (var j in showArr) { var fieldName = showArr[j]; var td = slideRow.find('.' + fieldName); var val = slide[fieldName]; if (fieldName == 'createDate') val = 'Date: '+parseDate.shortDate(val)+'
User: '+slide['createUser'] ; 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); } slideRow.appendTo('#slidesTbody').show(); slideRow.find('td.editable').on('click',function (ev) { $(this).off(); frmo.edit.td(ev.target); }); } }, addLine: function () { $('#createSliderModal form')[0].reset(); $('#createSliderModal').modal('show'); return false; }, actions: function () { window.addEventListener('storage', function (e) { if (e.key == ('sliderImgId' + frmo.slideId)) { var id = localStorage.getItem('sliderImgId' + frmo.slideId); if (id > 0) { frmo.update.img(id); localStorage.clear('sliderImgId' + frmo.slideId); } return false; } }); } }, update: { active: function (ev) { j.post(['update'], function (data) { if (data.status) message('Сохранено!', 1); }, {id: $(ev).parents('tr')[0].dataset.id, active: ff.chkBoxVal(ev)}); }, td: function (ev) { var id = $(ev).parents('tr')[0].id; var newData = ff.toObj(id); newData.id = $(ev).parents('tr')[0].dataset.id; j.post(['update'], function (data) { if (data.status==true) { message('Сохранено!', 1); form.init(); } else message('Something went wrong', 2); }, newData); }, img: function (newImgID) { j.post(['update', 'img'], function (data) { debug.cnsl(data); if (data.statusQR) { message('Сохранено!', 1); frmo.init(); } else message('System error!', 0); }, {id: frmo.slideId, imgId: newImgID}); } }, insert: function () { var formData = ff.toObj('new'); debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); $('#createSliderModal').modal('hide'); frmo.init(); } else { message('Not saved!', 2); $('#new').css('background-color', '#deb887'); } }, formData); }, edit: { td: function (ev) { var text = $(ev).text().trim(); document.querySelector('#'+$(ev).parents('tr')[0].id+ ' .save').style.display = 'block'; document.querySelector('#'+$(ev).parents('tr')[0].id+ ' .editHidd').style.display = 'none'; var fieldName = $(ev)[0].className; if (fieldName=='') fieldName = $(ev).parents('td')[0].className; fieldName = fieldName.replace('editable','').replace('num','').replace('textarea','').replace('selector','').replace('text','').trim(); debug.cnsl(fieldName); $(ev).empty(); if( $(ev).hasClass('num') ) $(ev).append(''); else if( $(ev).hasClass('textarea') ) $(ev).append(''); // else if( $(e).hasClass('selector') ) $(e).append($(frmo.modulListSelect).val(text.match(/d+$/)[0])); else if($(ev).not('.textarea, .selector')) $(ev).not('.textarea').append(''); $(ev).parents('tr').find('button.save').removeAttr('disabled'); } }, del: function (e) { console.log(e); if (confirm('Delete?')) j.post(['delete'], function (data) { if (data.status) { message('Deleted.'); $(e).parents('tr').remove(); } }, {id: $(e).parents('tr')[0].dataset.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('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('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('Сохранено!', 1); frmo.run.catList(data.cats); } else message('Has not been saved!(', 0); }, formData); } }, insert: function (e) { var formData = ff.toObj('new'); debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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[164] = { init: function (path) { frmo.id=parseInt(path) || 4000; // 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) { if (i!='')$('#catId').find('#'+i).attr('checked','checked'); } $('#thisImg')[0].src = img.url(frmo.id,0,0); formInfo.fadeIn(500); frmo.events(); }, articleCatsListBox: function () { var box = ''; box+=''; $('#catId').html(box); frmo.run.infoPanel(); } }, events: function () { $('.goMid').off().on('click', function (e) { var mid = e.target.innerText; switch (e.target.dataset.ext){ case 'mp3': { window.open(nav.link(106, mid)); break; } case 'holiday': { window.open(nav.link(114, 'edit/'+mid)); break; } case 'slide': { window.open(nav.link(148, mid)); break; } case 'manualLock': { window.open(nav.link(136)); break; } default: break; } }); $('.save').off().on('click', function (e) { var data = ff.toObj('settingsForm'); data['id'] = String(frmo.id); data['formId'] = "133"; debug.cnsl(data); j.post(['update', 'all'], function (data) { if (data.status) { message('Saved', 1); } else message('Not saved!(', 0); }, data); }); $('#catId input[type="checkbox"]').on('click',function (e) { debug.cnsl(ff.chkBoxVal(e.target)); var params = { imgId: String(frmo.id), catId: $(e.target)[0].id, formId: "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); }); $('input[name="rImId"]').off().on('keyup', function (t) { var replBut = $('.replaceImageId 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 () { if(frmo.id!=rmid.val()) j.post(['update','replImg'], function (data) { debug.cnsl(data); if (data.statusMedia){ message('Image replaced successfully', 1); e('using').innerHTML = 'This image isn\'t using'; if (data.statusDel){ message('Image ' + frmo.id +' deleted successfully', 1); nav.goTo(133); } } else message('System error'); }, {oldId:frmo.id, newId:rmid.val(), del:(confirm('Are you sure you want to delete image after replace?') ? 1 : 0)}); else message('Can\'t use same image id', 3); }); } else{ replBut.removeClass('textShadow'); replBut.off(); } }); $('.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}); }); }, clearCache:function () { j.post(['update','cache'], function (data) { debug.cnsl(data); message("Success!", 1); }, {imgId:frmo.id}); } }; frm[168] = { vformId: false, init:function(){ j.post(['init'], function (data) { debug.cnsl(data); frmo.forms = data.forms; frmo.CPV = data.CPV; //frmo.sjv = data.scriptJSV; for(var key in sett.forms){ $('.formIds').append(''); } frmo.formsText = "\r\n\r\n**** Active forms versions **** \r\n"; for(var key in frmo.forms){ frmo.formsText = frmo.formsText + key + ': ' + frmo.forms[key] + '; '; } /*$('.jsSubmit .oldVers').text('(cur ver. '+frmo.sjv+')');*/ }, {}); $('.formIds').off().on('change', function () { frmo.vFormId = $('.formIds').val(); $('.formSubmit .selectedId [name="comment"]').prop('disabled', true); $('.formSubmit .selectedId [name="comment"]').removeAttr('disabled').addClass(); if(frmo.vFormId!='all')$('.formSubmit input[name="version"]').val(frmo.forms[frmo.vFormId]); else $('.formSubmit input[name="version"]').val(''); }); //For submit file /*$('.jsSubmit button').off().on('click', function (e) { e.preventDefault(); e.stopImmediatePropagation(); var data = ff.toObj('submitJsVersion'); data['baseVersion'] = frmo.sjv; j.post(['insert', 'script'], function (data) { debug.cnsl(data); if(data.status) message('New version for js file submited', 1); else message(data.error, 0) }, data); });*/ $('.formSubmit button.save').off().on('click', function (e) { e.preventDefault(); e.stopImmediatePropagation(); frmo.comment=''; var data = ff.toObj('submitFormVersion'); data['vFormId'] = frmo.vFormId; if(data['vFormId'] != 'all')frmo.comment = data['comment'] + frmo.formsText + "\r\n Control Panel Version: "+frmo.CPV; else frmo.comment = data['comment'] + "\r\n\r\n Group backup for CP Forms" + frmo.formsText + "\r\n Control Panel Version: "+frmo.CPV; data['comment'] = frmo.comment; debug.cnsl(data); if(isDefined(frmo.vFormId))j.post(['insert', 'form'], function (data) { debug.cnsl(data); if(data.status){ message('New version for '+frmo.vFormId+' form submitted', 1); nav.goTo(169, frmo.vFormId); } // else message(data.error, 0) }, data); else message('You should select form before submitting it, or select all forms', 3); }); } }; frm[169] = { init:function(param){ j.post(['init'], function (data) { debug.cnsl(data); frmo.listFV = data.listFV; frmo.curForm = parseInt(param[0]); //frmo.listSV = data.listSV; for(var key in sett.forms){ $('.formIds').append(''); } for(var key in frmo.listFV){ var order = new Array ('vFormId', 'version', 'baseVersion', 'comment', 'createUser', 'createDate'); var table = e('formsTbody'); var act = frmo.listFV[key]['active']==1?'current ' : ''; var line = e(null, table, 'tr', act + frmo.listFV[key]['vFormId']); //debug.cnsl(frmo.listFV[key]); for(var k in order){ var i = order[k]; var text = frmo.listFV[key][i]; if (i == 'createDate') text = parseDate.shortDate(text); e(null, line, 'td', i).innerHTML = text; } e(null, line, 'td', 'actions').innerHTML=' '; } if(isDefined(sett.forms[frmo.curForm])){ $('.formIds').val(frmo.curForm); $('.vFormsList tbody tr').hide(); if ($('.vFormsList tr.'+frmo.curForm).length==0) $('.nothingMsg').show(); else $('.vFormsList tbody tr.'+frmo.curForm).show(); } $('.formIds').off().on('change', function () { $('.nothingMsg').hide(); $('.vFormsList').removeClass('panel-collapsed'); $('.vFormsList .panel-body').show(); $('.vFormsList [data-action="collapse"]').removeClass('rotate-180'); var vFid = $('.formIds').val(); if(vFid!='all'){ $('.vFormsList tbody tr').hide(); if ($('.vFormsList tr.'+vFid).length==0) $('.nothingMsg').show(); else $('.vFormsList tbody tr.'+vFid).show(); } else $('.vFormsList tbody tr').show(); }); }, {}); } }; frm[170] = { init:function(params){ j.post(['init', params[0], params[1]], function (data) { // debug.cnsl(data); if(/*data.scriptData == null && */data.formData == null) nav.goTo(169); frmo.formInfo = data.formData; //frmo.fileInfo = data.scriptData; if(params[0]=='fv'){ $('.formVersion').show(); for (var i in frmo.formInfo){ //debug.cnsl(i); $('.formVersion [name='+i+']').val(frmo.formInfo[i]); if(i=='vFormId') $('.formVersion [name="form"]').val(nav.ref.idToTitle[frmo.formInfo['vFormId']].join(' / ')); else if(i=='baseVersionId'){ var base = frmo.formInfo['versions'][frmo.formInfo['baseVersionId']]; if (isDefined(base)) base = base['version']; else base = 'no'; $('.formVersion [name="baseVersion"]').val(base); } else if(i=='version'){ for (var k in frmo.formInfo['versions']){ var base = 'no'; if (isDefined(frmo.formInfo['versions'][frmo.formInfo['versions'][k]['baseVersionId']])) base = frmo.formInfo['versions'][frmo.formInfo['versions'][k]['baseVersionId']]['version']; //debug.cnsl(frmo.formInfo); debug.cnsl(k); $('.formVersion select[name="version"]').append(''); } $('.formVersion [name="version"]').val(frmo.formInfo['id']); } } } /*else if(params[0]=='sv'){ $('.fileVersion').show(); for (var i in frmo.fileInfo){ $('.fileVersion [name='+i+']').val(frmo.fileInfo[i]); if(i=='version'){ for (var k in frmo.fileInfo['versions']) $('.fileVersion select[name="version"]').append(''); $('.fileVersion [name="version"]').val(frmo.fileInfo['id']); } } }*/ }, {}); frmo.events(); }, del:{ fv:function () { if(confirm('Delete this version of the form?')) j.post(['delete', 'fv', frmo.formInfo['id']], function (data) { debug.cnsl(data); if(data.status){ message('Form version deleted successfully', 1); nav.goTo(169, frmo.formInfo['vFormId']); } else message("Error deleting form version.", 0); }, {}); } /*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 () { var exInp = $('[name="executable"]')[0]; if(exInp.disabled)exInp.disabled=false; else exInp.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); form.init(); } }, 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('Сохранено!', 1); form.init(); } }, {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('Сохранено!', 1); form.init(); } }, ff.toObj('cron')); }, restart:function (ev) { var id = $(ev).parents('tr')[0].id; if(confirm('Restart this taskDef?')) j.post(['update', 'working'], function (data) { debug.cnsl(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'); } /*$('.secretRestart').off().on('click', function (ev) { var id = $(ev.target).parents('tr')[0].id; if(confirm('Restart this taskDef?'))j.post(['update', 'working'], function (data) { debug.cnsl(data); if(data.status) { message('Restarted successfully', 1); $('#'+id).removeClass('working'); } else message('System error', 0); }, {id: id, working: 0}); });*/ } }, 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); if(frmo.validator)frmo.validator.destroy(); 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(); if(frmo.validator)frmo.validator.destroy(); } }, 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(); } /*j.post(['init'], function (data) { debug.cnsl(data); frmo.listCount = data.Count; frmo.list = data.list; frmo.run(data.cronHistory); if (!frmo.tdSelector){ for (var t in data.tds){ e(null,e('tdSelector'),'option') .t(data.tds[t]) .a('value',t); } frmo.tdSelector = document.getElementById('tdSelector').innerHTML;} else e('tdSelector').t(frmo.tdSelector); }, {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(); } }); $('#statusSelect').off().on('change', function (ev) { frmo.page = 0; frmo.search(); }); $('#tdSelector').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 (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('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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){ for(var k in data.sett){ var main = e('settList'); var property = data.sett[k]; if (property['type'] == 'hr') { e(null, main, 'h4', 'col-xs-12 col-md-12').t(property['name']); var block = e(null, main, 'hr', 'col-xs-12 col-md-12 separator'); } else if (property['type'] == 'textarea') { var block = e('prop' + property['id'], 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['name']).t(property['value']); if (property['disabled'] == 1) e(property['id']).disabled = true; } else { var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3'); e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']); e(property['name'], block, 'input', 'form-control').a('name', property['name']).a('type', property['type'] || 'text').a('value', property['value']); if (property['name'] == 'cronCurrentStatus' && property['value'] != '0'){ e('secretRestart', block, 'span').a('title','Reset cron').t(''); } if (property['type'] == 'checkbox' && property['value'] != '0') $(e(property['name']))[0].checked = true; if (property['disabled'] == 1) $(e(property['name']))[0].disabled = true; } } } }, {}); $('.save').off().on('click', function (ev) { ev.preventDefault(); ev.stopImmediatePropagation(); var sett = ff.toObj('cPSettings'); debug.cnsl(sett); j.post(['update'], function (data) { if(data.statusQR){ message('Settings saved successfully', 1); } else { message("Error!") } }, sett); if(document.getElementById('new')) { var newSett = ff.toObj('new'); j.post(['insert'], function (data) { if (data.status) { form.init(); } }, newSett); } else{ $('#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('main'); var block = e(null, e('new', main, 'div', 'form-group'), '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'); $("html, body").animate({scrollTop: $(document).height()}, 1000); } }; 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+': '+data.list[a]['formName']; else if(b=='createDate')cont = parseDate.shortDate(data.list[a][b]); e(null, line, 'td').t(cont); } e(null, line, 'td').t('') } }, {}); }, createRel:function () { if(!isDefined($('#new')[0])) { var line = e('new', e('libRefTbody'), 'tr'); e(null, line, 'td').t(local.getSelect(sett.forms, 'vFormId', '-- Select form id --')); e(null, line, 'td').t(local.getSelect(frmo.libsList, 'libId', '-- Select library id --')); e(null, line, 'td'); e(null, line, 'td'); e(null, line, 'td', 'actions').t(''); } else message('Please create previous relation', 3); }, del:function (t) { var relId = $(t).parents('tr')[0].id; debug.cnsl(relId); if (confirm('Delete this relation?')) j.post(['delete'], function (data) { if (data.status){ message('Relation deleted successfully', 1); $('#'+relId).hide(); } else message('System error', 0); debug.cnsl(data); }, {id: relId}); }, ins:function (t) { var newRel = ff.toObj('new'); debug.cnsl(newRel); j.post(['insert'], function (data) { if (data.status){ message('Relation created successfully', 1); frmo.init(); } else message(data.error, 0); debug.cnsl(data); }, newRel); } }; frm[210] = { init: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('.chanel').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); for (var id in data.usersList) { e(null, e('usersList', e('channelsTable'), 'datalist'), 'option').t(data.usersList[id]).value = id; } frmo.run.channelsList(data.channels); }, {}); }, run: { channelsList: function (channels) { $('#channelsTbody').empty(); var chanelRow; $.each(channels, function (i, channel) { chanelRow = frmo.newRow.clone(); chanelRow[0].id = parseInt(channel.id); for (var fieldName in channel) { var val = channel[fieldName]; var td = $(chanelRow).find('.' + fieldName); if (fieldName == 'createUser') val = val + '
' + parseDate.shortDate(channel['createDate']); else if (fieldName == 'updateUser') val = val + '
' + parseDate.shortDate(channel['updateDate']); else if (fieldName == 'imgId') { val = "" + ""; } if (fieldName == 'active') { if (val == 1) td.find('input[name="active"]').attr('checked', 'checked'); else td.find('input[name="active"]').removeAttr('checked', 'checked'); } else if (fieldName == 'isDefault') { if (val == 1) td.find('input[name="isDefault"]').attr('checked', 'checked'); else td.find('input[name="isDefault"]').removeAttr('checked', 'checked'); } else td.html(val); } chanelRow.find('td.editable').on('click', function (e) { $(this).off(); frmo.edit.td(e.target); }); chanelRow.appendTo('#channelsTbody').show(); }); window.addEventListener('storage', function (e) { if (e.key == ('channelIdImgId' + frmo.channelId)) { var id = localStorage.getItem('channelIdImgId' + frmo.channelId); if (id > 0) { frmo.update.img(id); localStorage.clear('channelIdImgId' + frmo.channelId); } return false; } }); }, addLine: function () { if ($('#new').is('tr')) { message('Click "Add" for previous line', 3); return; } var row = frmo.newRow.clone().show(); $(row).find('td.editable.text').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim(); // if (fieldName!='name') $(v).append(''); /*else $(v).append('' + '');*/ }); $(row).find('td.editable.textarea').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('textarea', '').trim(); $(v).append(''); }); $(row).find('button:not(.add), .status *').remove(); $(row).find('button.add').show(); $(row)[0].id = 'new'; $(row).css('background-color', '#8fbc8f'); $('#channelsTbody').append(row); $(row).find('td.owner input').attr('list', 'usersList'); e(null, $(row).find('td.owner')[0], 'span'); $("html, body").animate({scrollTop: $(document).height()}, 1000); } }, update: { /* active:function (e) { j.post(['update','active'], function (data) { if(data.status) message('Saved!',1); form.init(); }, { id:$(e).parents('tr')[0].id, active:$(e)[0].checked }); },*/ td: function (e, a) { a = a || false; var id = $(e).parents('tr')[0].id; var formData = ff.toObj(id); if (!isDefined(formData['id'])) formData['id'] = id; debug.cnsl(formData); j.post(['update', 'all'], function (data) { if (isDefined(data.matched)) { if (data.changed == 1 && data.errno == 0) message('Channel\'s new url saved!', 1); else if (data.errno == 1062) message('This channel url has been already used', 3); else if (data.errno != 0) message('System error', 3); else if (data.changed == 0) message('Channel url can\'t be changed because it\'s not empty!', 0); } if (data.status) { message('Channel info saved!', 1); if (!a) form.init(); } else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('name') + 1) { message('Channel name already exist', 3); } else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('default') + 1) { message('User can have only one default channel', 3); } else if (data.error.indexOf('Duplicate entry') + 1 && data.error.indexOf('cName') + 1) { message('Channel url already exist', 3); } else message('Not saved!(', 0); }, formData); }, img: function (newImgID) { j.post(['update', 'img'], function (data) { debug.cnsl(data); if (data.statusQR) { message('Сохранено!', 1); frmo.init(); } else message('System error!', 0); }, {id: frmo.channelId, imgId: newImgID}); } }, insert: function (e) { // var id = $(e).parents('tr')[0].id; var formData = ff.toObj('new'); // if (!isDefined(formData['id'])) formData['id'] = id; debug.cnsl(formData); if (formData.cName == '' || formData.name == '') message("Name and cName can't be empty", 0); else j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message('Сохранено!', 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!', 2); $('#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.status) { 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}); } }); } }; frm[213] = { starsCount: 10, init: function (path) { var productId = path[0]; frmo.productId = productId ? productId : 'new'; if (productId) { j.post(['init'], function (data) { frmo.details = data.details; frmo.categories = data.categories; frmo.run.imagePanel(); frmo.run.infoPanel(); }, {productId: productId}); } else { frmo.run.imagePanel(); $('.editProduct').hide(); debug.cnsl("new Product"); $('#new-label').show(); $('.issetProd').hide(); $('.save').text("Сохранить новый товар"); frmo.run.imagePanel(); j.post(['init'], function (data) { debug.cnsl(data); var catList = ''; for (var key in data.categories) { catList += ''; } document.getElementById('ctid').innerHTML = catList; }); } $("#form :is(input,textarea)").on("change", function () { $("#navbar").on("click",function(){alert("Все несохранённое будет потеряно, сначала нужно сохранить!"); return false;}); debug.cnsl("set PREVENT menu actions!"); }); }, run: { infoPanel: function () { var catList = ''; for (var key in frmo.categories) { catList += ''; } document.getElementById('ctid').innerHTML = catList; var details = frmo.details; var formDetails = $('#detailsForm'); formDetails[0].name = 'detailsForm'; $.each(details, function (name, val) { if (val == '0000-00-00 00:00:00') val = null; if ((name == 'createDate' || name == 'updateDate') && val != null) val = parseDate.shortDate(val); if (name == 'playTime') val = formatTime(val); if (name == 'active' || name == 'available') { formDetails.find("#" + name)[0].checked = val == 1; } formDetails.find('*[name="' + name + '"]').val(val); }); }, imagePanel: function () { frmo.loadImg(frmo.productId != 'new' ? frmo.details.imgId : ''); window.addEventListener('storage', function (e) { if (e.key == ('midImgId' + frmo.productId)) { var id = localStorage.getItem('midImgId' + frmo.productId); if (id > 0) { frmo.updateImage(id); localStorage.clear('midImgId' + frmo.productId); } return false; } }); }, keywordPanel: function () { var ckR = frmo.curKeyWordsRef; for (var id in ckR) { e('kw' + id, e('existingKeywords'), 'span', 'oneKeyword').t(ckR[id] + ' ').a('data-id', id); } var pkW = frmo.popularKeyWords; for (var id in pkW) { e(null, e('popularKeywords'), 'a', 'addPopKwrd').t(pkW[id] + ' ').a('data-id', id).a('title', 'Click for add'); } } }, updateImage: function (imgId) { debug.cnsl('updateImage'); var dataForUpdate = { mid: frmo.productId, imgId: imgId }; debug.cnsl(dataForUpdate); if (frmo.productId != 'new') j.post(['update', 'applytomid'], function (data) { debug.cnsl(data); if (data.status) { message('Applied image to Mid successfully!', 1); frmo.loadImg(imgId); //if (isDefined(data.info) && data.info) message('Old screenshot has been deleted', 2); } else { message('Error applying image to Mid...', 0); } }, dataForUpdate); else { frmo.loadImg(imgId); document.getElementById('imgId').value = parseInt(imgId); } }, loadImg: function (imgId) { debug.cnsl('loadImg'); $('#mainImage')[0].src = img.url(parseInt(imgId), frmo.mediaImgWidth, frmo.mediaImgHeight); }, clearImg: function () { if (confirm('Reset image?')) { localStorage.setItem('midImgId' + frmo.details.id, 4000); frmo.updateImage(4000); } }, saveDetails: function (e) { var formData = ff.toObj("detailsForm"); formData['id'] = frmo.productId; debug.cnsl(formData); if (frmo.productId != 'new') { j.post(['update', 'info'], function (data) { debug.cnsl(data); if (data.status) { $("#navbar").off("click"); message('Сохранено!', 1); form.init([frmo.productId]); } else message('Not saved', 2); }, formData); } else j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { $("#navbar").off("click"); message('Сохранено!', 1); nav.goTo(213, [data.id]); } else message('Not saved', 2); }, formData); } , delProduct: function () { if (confirm('Delete this MID?')) j.post(['delete', 'mid'], function (data) { if (data.status) { message('Товар успешно удалён!', 1); nav.goTo(105); } }, {id: frmo.productId}); }, update: { active: function (e) { if (frmo.productId != 'new') { var val = e.checked ? 1 : 0; j.post(['update', 'active'], function (data) { if (data.status) { message('Сохранено!', 1); } else message('Has not been saved!(', 0); }, {active: val, id: frmo.productId}); } }, available: function (e) { if (frmo.productId != 'new') { var val = e.checked ? 1 : 0; j.post(['update', 'available'], function (data) { if (data.status) { message('Сохранено!', 1); } else message('Has not been saved!(', 0); }, {available: val, id: frmo.productId}); } } } }; 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('Сохранено!', 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('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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); message(data.result, 1); }, 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; 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; } } }; frm[315] = { init:function(){ j.post(['init'], function (data) { if(data.sett){ for(var k in data.sett){ var main = e('settList'); var property = data.sett[k]; if (property['type'] == 'hr') { e(null, main, 'h4', 'col-xs-12 col-md-12').t(property['name']); var block = e(null, main, 'hr', 'col-xs-12 col-md-12 separator'); } else if (property['type'] == 'textarea') { var block = e('prop' + property['id'], 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['name']).t(property['value']); if (property['disabled'] == 1) e(property['id']).disabled = true; } else { var block = e('prop' + k, main, 'div', 'col-xs-6 col-md-3'); e(null, e(null, block, 'label').t(property['name']), 'p').t(property['dsc']); e(property['name'], block, 'input', 'form-control').a('name', property['name']).a('type', property['type'] || 'text').a('value', property['value']); if (property['name'] == 'cronCurrentStatus' && property['value'] != '0'){ e('secretRestart', block, 'span').a('title','Reset cron').t(''); } if (property['type'] == 'checkbox' && property['value'] != '0') $(e(property['name']))[0].checked = true; if (property['disabled'] == 1) $(e(property['name']))[0].disabled = true; } } } }, {}); $('.save').off().on('click', function (ev) { ev.preventDefault(); ev.stopImmediatePropagation(); var sett = ff.toObj('clientSettings'); debug.cnsl(sett); j.post(['update'], function (data) { if(data.statusQR){ message('Settings saved successfully', 1); } else { message("Error!") } }, sett); if(document.getElementById('new')) { var newSett = ff.toObj('new'); j.post(['insert'], function (data) { if (data.status) { form.init(); } }, newSett); } else{ $('#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('main'); var block = e(null, e('new', main, 'div', 'form-group'), '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'); } }; frm[320] = { init: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('.filter').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); frmo.run.statusesList(data.statuses); }, {}); }, run: { statusesList: 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 == 'stockChange') val = ''; if (fieldName == 'createDate') val = parseDate.shortDate(val); td.html(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('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('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('Сохранено!', 1); frmo.run.statusesList(data.statuses); } else message('Has not been saved!(', 0); }, formData); } }, insert: function (e) { var formData = ff.toObj('new'); debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#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[321] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); var dataToShow = data.searchRezult; var line,ctid; for (var key in dataToShow) { var fields = new Array('productName', 'countOfStock','note'); var table = e('listBody'); line = e(null, table, 'tr'); if (ctid != dataToShow[key]['ctid']) { line.style = "border-top: 2px #000 solid;"; } ctid = dataToShow[key]['ctid']; for (var k in fields) { var i = fields[k]; var text = dataToShow[key][i]; var bgC = "inherit"; if (i == 'countOfStock' && parseInt(text)<0 ) text = ""+text+""; if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[dataToShow[key]["statusId"]]["bgColor"]; if (dataToShow[key]['workerName'] != null) text = text + " - " + dataToShow[key]['workerName'] + ""; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } /* if (document.querySelector("select.form-control.workersIds").value != "all" && dataToShow[key]['statusId'] == 4) { e(null, line, 'td', 'actions').innerHTML = // ' ' + ''+ ''; } else if (document.querySelector("select.form-control.workersIds").value != "all" && dataToShow[key]['statusId'] == 5) { e(null, line, 'td', 'actions').innerHTML = ''; }*/ } }, {}); } }; frm[325] = { orderId: 'new', searchMinLength: 3, onclcStatus: false, init: function (path) { let orderId = path[0] || ""; let customerId = path[1] || ""; /********************************************************************** START **************/ // noinspection CssInvalidPseudoSelector if (orderId === '' || orderId === 'new') { orderId = ''; $('.editOrder').hide(); $("#statusId")[0].disabled = true; document.getElementById('shippingAddressId').setAttribute('disabled', "true"); document.getElementById('shippingMethodId').setAttribute('disabled', "true"); $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; $("#orderForm *:is(input:not(#customerId),select:not(#shippingMethodId,#shippingAddressId),textarea) ").hide(); } else { frmo.orderId = orderId; document.getElementById('orderInfo').classList.add('panel-collapsed'); $('.newOrder').hide(); } /******************************************************* END *******************/ j.post(['init'], function (data) { debug.cnsl('initdata'); debug.cnsl(data); frmo.data = data; frmo.prodContentIds = data.prodContentIds || []; frmo.balance = data.customerInfo; if (isDefined(data.customerInfo)) { if (frmo.balance.perelimit === "da") { $(".heading-elements button").remove(); // $("div.limit").html('Этот оптовый не может cделать этот заказ из-за перелимита: ' + frmo.balance.znachenie + ''); message('Этот оптовый не может cделать этот заказ из-за перелимита: ' + frmo.balance.znachenie + ' грн.',"e","ВНИМАНИЕ!",false); document.getElementById('orderInfo').classList.remove('panel-collapsed'); console.error("PERELIMIT"); // return; } else { // $("div.limit").html('Разрешённая сумма дозаказа: ' + (parseInt(frmo.balance.znachenie)-parseInt(data.orderDetails.totalPrice)) + ''); $("div.limit").html('Разрешённая сумма заказа: ' + parseInt(frmo.balance.znachenie) + ''); } } //вывод категорий var catBlock = e('catsList'), cur; empty(catBlock); var formSel = document.getElementById('ctIds'); formSel.innerHTML = ""; for (var ct in data.categories) { cur = data.categories[ct]; var ctBox = e('ct' + ct, catBlock, 'div', 'col-md-1 singleCt'); e(null, ctBox, 'input', 'hidden').a('type', 'checkbox').a('name', 'ct' + ct); e(null, ctBox, 'input', 'hidden').a('type', 'text').a('value', ct); e(null, ctBox, 'img', 'ctImg').s(img.url(cur.imgId, 150, 150)); e(null, ctBox, 'span', 'ctName').t(cur.name); formSel[formSel.options.length] = new Option(ct, ct); } //статусы var statuses = document.getElementById('statusId'); for (var ct in data.orderStatuses) { statuses[statuses.options.length] = new Option(data.orderStatuses[ct].name, data.orderStatuses[ct].id); } //Адреса доставка if (isDefined(data.orderDetails)) { var shippingAddress = document.getElementById('shippingAddressId'); let orderSA = data.orderDetails.shippingAddressId || ""; if (isDefined(data.shippingAddress) && data.shippingAddress.length > 0) { for (var ct in data.shippingAddress) { let sel, l = data.shippingAddress[ct]; if (orderSA != "") sel = orderSA; else if (l.defaultAddress == 1) sel = l.defaultAddress; shippingAddress[shippingAddress.options.length] = new Option(l.address, l.id, false, (l.id == sel)); // shippingAddress[1] = new Option(l.address, l.id, false,(l.id == sel)); } // shippingAddress[shippingAddress.options.length] = new Option("+ ДОБАВИТЬ", null, true) // .onclick = // function (){ nav.goTo(355,[frmo.customerId]);} ; } else { $('#shippingAddressId')[0].outerHTML = ""; } } //Методы доставка var shippings = document.getElementById('shippingMethodId'); for (var ct in data.shippingMethods) { shippings[shippings.options.length] = new Option(data.shippingMethods[ct].name, data.shippingMethods[ct].id); } //клиенты var optList = ''; // frmo.customers = panelData.customersList; for (var ct in panelData.customersList) { optList += ''; } document.getElementById('customersList').innerHTML = optList; if (data.orderDetails) { //order details var formInfo = $('#orderForm'); for (var d in data.orderDetails) { var val = data.orderDetails[d]; if ((d == 'createDate' || d == 'updateDate') && val != null) val = parseDate.shortDate(val); formInfo.find('*[name="' + d + '"]').val(val); } frmo.customerId = data.orderDetails.customerId; $('.cName')[0].innerHTML = "    " + frmo.customerId + "-" + panelData.customersList[frmo.customerId].name + "    "/*+" <== to Viber "*/; $('a.viberLink')[0].href = "viber://chat?number=+" + panelData.customersList[frmo.customerId].tel; $('a.viberLink').show(); frmo.totalPrice = data.orderDetails.totalPrice; frmo.checkLimit(); //order content if (data.orderContent) { $('.orderEmpty').hide(); $('#orderTable').show(); frmo.updateTotalPrice(data.orderDetails.totalPrice); frmo.displayResult(data.orderContent, 'cartBody'); } } else if (customerId != "") { frmo.customerId = customerId; $("#customerId").val(frmo.customerId); frmo.prepareFormData({value: frmo.customerId}); } frmo.buttons(); if (data.wishlistContent) { $('#wishlist,.viewWishlist').show(); // message("Список желаний не пустой, обратите внимание!"); $(".wishlistEmpty").hide(); $("#wishlistTable").show(); $("#compile").addClass('btn-warning'); for (let s in data.wishlistContent) { let cols = ["productName", "realnoOfStore", "waitCount", "dostupnoForThisCustomer", "v_korziny"]; let ld = data.wishlistContent[s]; let line = e(ld.id, e('wishlistBody'), 'tr'); for (let i in cols) { let col = cols[i]; let td = e(null, line, 'td', col); td.innerHTML = ld[col]; } let td = e(null, line, 'td', 'actions'); td.innerHTML = ""; } } /* $(".editOrder").on("click", function (ev) { console.log(ev); let w = $(ev.target).parents("tr")[0].id; let oldVal = ev.target.value; frmo.oldValues[w][ev.target.className] = oldVal; });*/ }, {orderId: orderId}); frmo.findLine = $('#listBody .findLine').html(); $('#listBody').empty(); frmo.contentLine = $('#cartBody .cartLine').html(); $('#cartBody').empty(); // frmo.wishlistLine = $('#wishlist #wishlistBody').html(); $('#wishlistBody').empty(); }, wishlist: { /*updateProducts: function (recordId, count) { j.post(['update', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (!data.status) message('Что-то пошло не так, попробуйте позже', 0); else frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (data.orderContent) frmo.displayResult(data.orderContent, 'cartBody'); }, {orderId: frmo.orderId, recordId: recordId, count: -count}); },*/ addProduct: function (ev) { var line = ev.parentNode.parentNode; line.disable = true; var prId = line.id; var prCount = line.children.namedItem('qty').children[0].value; j.post(['insert', 'toWishlist'], function (data) { if (data.status) { message("Внесено в список ожидания"); // $('.orderEmpty').hide(); // $('#orderTable').show(); // frmo.displayResult(data.orderContent, 'cartBody'); form.init([frmo.orderId]); } else message("Ошибка при добавления в лист ожидания", 3); }, {customerId: frmo.customerId, productId: prId, waitCount: prCount}); }, compile: function () { j.post(['update', 'wishlistToCart'], function (data) { if (data.status) { message("Всё прошло хорошо!", "s", "Успех!"); form.init([frmo.orderId]); } else message("Результат нужно проверить дополнительно", 3); }, {customerId: frmo.customerId, orderId: frmo.orderId}); }, delProduct: function (id) { debug.cnsl(id); j.post(['delete', 'fromWishlist'], function (data) { if (data.status) { message("Удалено успешно!", "s"); form.init([frmo.orderId]); } else message("Почему-то не получилось удалить из списка ожидания", "w", "Внимание!"); }, {wishlistId: id}); } }, goToPanel: function (id) { var panel = $("#" + id); $("html, body").animate({scrollTop: (panel.offset().top - parseInt($('.navbar-fixed-top').css('height')))}, 1000); panel.removeClass('panel-colapsed'); panel.find('.panel-body').show(); panel.find('.rotate-180').removeClass('rotate-180'); panel.addClass('anker'); }, order: { create: function () { var crData = ff.toObj('orderForm'); if (crData.customerId == '') message('Выберите id клиента', 3); else { j.post(['insert', 'order'], function (data) { if (data.orderId) { if (!isDefined(data.message)) message('Заказ создан успешно!', 1); nav.goTo(325, data.orderId); } else message('При создании заказа возникла ошибка. Свяжитесь с администратором.', 0); }, crData); } }, updateInfo: function () { var orData = ff.toObj('orderForm'); if (orData.customerId == '') message('Выберите id клиента', 3); else { orData.orderId = frmo.orderId; j.post(['update', 'order'], function (data) { if (data.status) { message('Заказ успешно обновлен!', 1); nav.goTo(325, frmo.orderId); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, orData); } }, aprooved: function () { j.post(['update', 'aproovedOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно подтверждён!', 1); nav.goTo(328); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 2, orderId: frmo.orderId}); }, temp: function () { j.post(['update', 'tempOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно сохранён как черновик!', 1); nav.goTo(328); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 1, orderId: frmo.orderId}); }, toPack: function () { if (frmo.data.orderContent.length == 0) { alert("Заказ ПУСТОЙ!", 3); return false; } else if (confirm("Этот заказ уже полностью готовый к упаковке?")) { j.post(['update', 'toPack'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' передан на упаковку!', 1); if (data.statusProcedure) { message("Списание с баланса за заказ произошло успешно!", 1); nav.goTo(328); panelDataUpdate(); } else message("Ошибка, средства не списаны! Сообщите админу!", 3); } else message('При передаче заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 4, orderId: frmo.orderId, customerId: frmo.customerId, totalPrice: frmo.totalPrice}); } }, del: function () { if (confirm('Вы действительно хотите удалить заказ?')) if (confirm('ВСЕ данные из этого заказа, и накладная в том числе будет удалена без возможности восстановления! Точно желаете продолжить?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); message('Внимание! если в заказе были товары, то они были возвращенны на склад обратно', 1); nav.goTo(328); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: frmo.orderId}); }, updateProducts: function (recordId, count) { j.post(['update', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (!data.status) message('Что-то пошло не так, попробуйте позже', 0); else frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (data.orderContent) frmo.displayResult(data.orderContent, 'cartBody'); }, {orderId: frmo.orderId, recordId: recordId, count: count, customerId: frmo.customerId}); }, addProduct: function (ev) { var line = ev.parentNode.parentNode; line.disable = true; var prId = line.id; var prCount = line.children.namedItem('qty').children[0].value; j.post(['insert', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { $('.orderEmpty').hide(); $('#orderTable').show(); frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (isDefined(data.countOfStock)) { debug.cnsl(data); frmo.checkAsInCart(prId); } } else message("Ошибка при добавлении в корзину", 3); }, {orderId: frmo.orderId, customerId: frmo.customerId, productId: prId, count: prCount}); }, delProduct: function (ev) { var prId = ev.parentNode.parentNode.id; j.post(['delete', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.search(); } frmo.totalPrice = data.totalPrice; frmo.checkLimit(); }, {orderId: frmo.orderId, recordId: prId}); } }, updateTotalPrice: function (price) { document.getElementById('orderTotalPrice').innerHTML = price || 0; }, search: function (i) { var sText = $('input[name="sw"]').val(); frmo.searchQ = {}; frmo.searchQ = ff.toObj('searchRequest'); debug.cnsl(frmo.searchQ); if (sText.length == 0 || sText.length >= frmo.searchMinLength) { j.post(['init', 'start'], function (data) { $('.result').show(); frmo.displayResult(data.searchRezult, 'listBody'); }, frmo.searchQ); } else { message('Minimum ' + frmo.searchMinLength + ' chart!', 3); $('.result').hide(); } }, displayResult: function (data, tableId) { debug.cnsl(data); $('#' + tableId).empty(); var tbl = e(tableId); if (!data) { $('.searList').fadeIn(500); e(null, e(null, tbl, 'tr', 'findLine'), 'td') .a('colspan', '8') .a('style', 'text-align: center;') .t('Нет товаров для отображения'); } var line = tableId == 'listBody' ? frmo.findLine : frmo.contentLine; if (isDefined(data)) { // $('.searList').fadeIn(500); for (var key in data) { var keys = data[key]['id']; // var tr = e(keys, tbl, 'tr', ''+(tableId == 'listBody' ? 'col-md-3 findLine' : 'cartLine')); var tr = e(keys, tbl, 'tr', '' + (tableId == 'listBody' ? 'findLine' : 'cartLine')); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in data[key]) { var td = data[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { var hr = nav.link(213, [keys]); cont = ' '; // cont = ' '; } else if (t == 'productName') { // var hr = '/media/detail/' + keys; var hr = nav.link(213, [keys]); cont = '' + cont + ''; } else if (t == 'countOfStock') { $('#' + keys + ' td.countOfOrder input').attr('max', cont) .attr('placeholder', "max " + cont); if (cont > 0) $('#' + keys + ' button.addToCart').removeAttr('disabled'); // if (cont != null) $('#' + keys + ' button.addToCart').removeAttr('disabled'); else $('#' + keys + ' button.addToWishlist').show(); cont = '' + cont + ''; } else if (t == 'active') { cont = cont == '0' ? 'неактивен' : 'включен'; } else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser; else if (t == 'count') cont = ''; $('#' + keys + ' td.' + t).html(cont); } } // проверка на существование товара в корзине if (isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.checkAsInCart(keys); } else if (!isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.prodContentIds = []; frmo.checkAsInCart(keys); } } $('input.qty').off().on('change', function (ev) { }).on('change', function (ev) { var line = ev.target.parentNode.parentNode; var p = $(line).children('.price').text(); $(line).children('.total').text(ev.target.value * p); if (line.classList.contains('cartLine')) { frmo.order.updateProducts(line.id, ev.target.value); } }); } }, tmstmpDate: function (tmst) { var date = new Date(tmst); var m = date.getMonth() + 1; date = (date.getFullYear() + "-" + m + "-" + date.getDate()); //debug.cnsl(date); date = parseDate.shortDate(date); return date; }, buttons: function () { // $(".singleCt").off().on('click', function (ev) { // if(window.getEventListeners($("#catsList div")[0]).hasOwnProperty("click")) { // debug.cnsl($("#catsList div")[0].getEventListeners()); // } else { if (!frmo.onclcStatus) { $("#catsList div").on('click', frmo.clc.catsList); } // } 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; } }); $('.scrollBtn').off().on('click', function (e) { var panel = $(e.target.value.toString()); $("html, body").animate({scrollTop: (panel.offset().top - parseInt($('.navbar-fixed-top').css('height')))}, 1000); panel.removeClass('panel-colapsed'); panel.find('.panel-body').show(); panel.find('.rotate-180').removeClass('rotate-180'); }); }, clc: { catsList: function (ev) { /**********************Выключение предыдущей выбранной категории**************************************/ var selected = document.querySelector('#catsList input[type="checkbox"]:checked'); if (selected) { selected.checked = false; selected.parentNode.classList.remove('selected'); } /*****************************************************************************************************/ ev.currentTarget.children.namedItem(ev.currentTarget.id).checked = !ev.currentTarget.children.namedItem(ev.currentTarget.id).checked; ev.currentTarget.classList.toggle('selected'); var inpVals = document.querySelectorAll('#catsList input[type="checkbox"]:checked + input'), vals = []; for (var k = 0; k < inpVals.length; k++) { vals[vals.length] = inpVals[k].value } $('form select#ctIds').val(vals); frmo.search(); } }, checkAsInCart: function (prId) { $("#" + prId + " button ")[0].outerHTML = "Уже в корзине!"; // $("#"+prId+" .countOfStock")[0].innerHTML = data.countOfStock; $("#" + prId + " .countOfStock")[0].innerHTML = ""; $("#" + prId + " td.countOfOrder")[0].innerHTML = ""; $("#" + prId + " td.total")[0].innerHTML = ""; }, prepareFormData: function (el) { if (el.value == "") form.init([]); clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[el.value]) && isDefined(panelData.customersList[el.value].defaultShippingMethodId)) { // document.getElementById('shippingMethodId').removeAttribute('disabled'); // document.getElementById('shippingMethodId').value = frmo.customers[el.value].defaultShippingMethodId; frmo.customerId = el.value; frmo.customerData = panelData.customersList[el.value]; // debug.cnsl(frmo.customerData.addr); if (typeof frmo.customerData.addr == "string") frmo.customerData.addr = JSON.parse(frmo.customerData.addr.replace(/[\r\n\t ]+/g, ' ')); let customer = frmo.customerData; // frmo.addr = JSON.parse(frmo.customerData.addr); // if (isDefined(panelData.customersList[el.value].shippingAddressId)) { if (customer.addr != null) { let shippingAddress = document.getElementById('shippingAddressId'); shippingAddress.innerHTML = ''; for (var ct in customer.addr) { let l = customer.addr[ct]; // if (orderSA != "") sel = orderSA; // else if (l.defaultAddress == 1) sel = l.defaultAddress; // shippingAddress[shippingAddress.options.length] = new Option(l.address, l.id, false, (l.id == sel)); let Op = new Option(l.address, l.id, false, (l.default)); if (l.default) Op.style = "font-weight:bold;"; shippingAddress[shippingAddress.options.length] = Op; } document.getElementById('shippingAddressId').removeAttribute('disabled'); document.getElementById('shippingMethodId').removeAttribute('disabled'); document.getElementById('shippingMethodId').value = customer.addr[customer.defaultShippingAddressId].sMId; // $(".create.newOrder").focus(); // debug.cnsl("dddddd"); } else { /*debug.cnsl("nonononon"); $('#shippingAddressId')[0].outerHTML = ""; document.getElementById('shippingMethodId').setAttribute('disabled',true);*/ // message("Для этого клиента нужно создать адрес!",3); if (confirm("Для этого клиента нужно создать адрес!")) { nav.goTo(355, [customer.id]); } } } }, 1200 ) ; } , checkLimit: function () { if (parseInt(frmo.totalPrice) > parseInt(frmo.balance.znachenie)) { message("Сумма товаров в корзине превышает допустимое значение для этого клиента!", 3); } } , eventOnchangeSAid: function (val) { if (val == "add") { nav.goTo(355, [frmo.customerId]); } else { $("#shippingMethodId").val(frmo.customerData.addr[val].sMId); } } }; frm[328] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.statuses = data.statuses; frmo.orderStatusId = ""; frmo.customerId = ""; for (var key in data.customers) { $('#customerIds').append(''); } for (var key in data.statuses) { // == "Удалён" ? "Посмотреть корзину":data.statuses[key]['name'] var name = data.statuses[key]['name']; $('.orderStatusId').append(''); } frmo.viewOrderList(); if (data.TEMPorders.length > 0){ let msg=""; let ids = []; let to = data.TEMPorders; for (let n in to){ msg = msg + " " + to[n].name + ","; ids.push(to[n].id); } if(confirm("Увага, спрацювала система зачистки чорновиків! \n ************************************ \n "+ msg + "\n******************************* \n Це прострочені чорновики, їх зачистити?")){ frmo.deleteTEMPorders(ids); } else alert ("Чорновики не зачищено, зробіть порядок, і оновіть сторінку для оновлення запиту щодо чорновиків. Дякую.") } /* 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(); }*/ // $('.customerIds').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(); // }); }, {orderStatusId: "forWork"}); } , loadOrder: function (ev) { $('#formsTbody,.nothingMsg').empty(); let fieldsData = {}; let value = ""; let orderStatusId = "forWork"; if (ev.value != "all") { value = ev.value; } if (ev.name == "orderStatusId") { orderStatusId = value; } if (ev.name == "customerId") { frmo.customerId = value; orderStatusId = (value != "") ? "" : "forWork"; } fieldsData.orderStatusId = orderStatusId; fieldsData.customerId = frmo.customerId; j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }, fieldsData); } , viewOrderList: function () { for (var key in frmo.orders) { var fields = ['id', 'status', 'totalPrice', 'customer']; var table = e('formsTbody'); var line = e(frmo.orders[key]['id'], table, 'tr', "line " + frmo.orders[key]['id']); if (frmo.orders[key]['statusId'] == 11) { // line.css("background-color:#bae2c7;") line.css("background-color:#e2baba;") } if (frmo.orders[key]['statusId'] == 12) { line.css("background-color:rgb(153 205 246);") } let bgC = ""; for (var k in fields) { var i = fields[k]; var text = frmo.orders[key][i]; debug.cnsl(frmo.orders[key]); if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[frmo.orders[key]["statusId"]]["bgColor"]; // if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; if (frmo.orders[key]['ttn'] != null) text = "" + text + " - " + frmo.orders[key]['ttn'] + ""; else if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; } if (i == 'id') { text = '' + text + ''; text = text + " от " + frmo.orders[key]['cd']; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } e(null, line, 'td', 'actions').innerHTML = frmo.getActionOrderButtons(frmo.orders[key]); } $('.line :is(i,button):not(.removeOrder)').on("click", function (ev) { debug.cnsl(ev.target); let id = $(ev.target).parents('tr')[0].id; let bgC = ""; j.post(['get', 'orderUpdatedInfo'], function (data) { let trInfo = data.orderUpdatedInfo; if (trInfo.id) { let trs = $("#" + id)[0].cells; for (let i in trs) { let tr = trs[i]; let cn = tr.className; if (isDefined(trInfo[cn])) { let text = trInfo[cn]; if (cn == 'status') { bgC = frmo.statuses[trInfo["statusId"]]["bgColor"]; if (trInfo['workerName'] != null) text = "" + text + " - " + trInfo['workerName'] + ""; } if (cn == 'id') { text = '' + text + ''; text = text + " от " + frmo.orders[key]['cd']; } $(tr)[0].css("background-color:" + bgC).innerHTML = text; } else if (cn == "actions") { $(tr)[0].innerHTML = frmo.getActionOrderButtons(trInfo); } } } }, {id: id}); }); } , getActionOrderButtons: function (order) { let inH = ''; switch (parseInt(order["statusId"])) { case 1: { inH = '' + ' '; break; } case 2: { inH = '' + ' '; break; } case 4: { // передан на упаковку inH = '' + ''; break; } case 5: { // упаковка в процессе inH = '' + ''; break; } case 6: { // упакован if (order['shippingMethodId']==1) {// => на загрузку inH = '' + ''; } else if (order['shippingMethodId']==6) {// => на самовывоз inH = '' + ''; }else {// => на усмотрение inH = 'подготовить к отправке вручную' + ' '; } break; } case 8: { // готов к отправке inH = '' + ''; break; } case 10: { // готов к самовывозу inH = '' + ''; break; } } if (parseInt(order["totalPrice"]) > 0) inH += '' + ''; else inH += ''; return inH; } , setToFinish: function (orderId) { if (confirm("Вы точно желаете сделать заказ " + orderId + " завершённым?")) { j.post(['update', 'setToFinish'], function (data) { if (data.status) { message("Успешно перемещён в \"Завершённые\"!", 1); $(".line." + orderId)[0].remove(); // frmo.init(); } }, {orderId: orderId}); } } , deleteOrder: function (orderId) { if (confirm('Вы действительно хотите удалить заказ ' + orderId + '?')) if (confirm('ВСЕ данные из этого заказа(' + orderId + '), и накладная в том числе будет удалена без возможности восстановления! Точно желаете продолжить?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); message('Внимание! если в заказе были товары, то они были возвращенны на склад обратно', 1); $("#" + orderId + ".line").remove(); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: orderId}); } , deleteTEMPorders: function (orderIds) { if (confirm(' \n *************************** \n ' + orderIds + ' \n *************************************** \n Додатковий захист! ви точно бажаєте безповоротно зачистити чорновики??')) j.post(['delete', 'TEMPorders'], function (data) { if (data.affected_rows > 0) { message('Чорновики зачищено успішно! \n Очищено '+ data.affected_rows+' чорновиків', 1); } else message('При зачищенні сталася невідома помилка', 0); }, {orderIds: orderIds}); } , withdraw: function (orderId) { if (confirm("Вы точно желаете отозвать заказ " + orderId + "?")) { alert("Для продолжения, разорвите накладную, по которой идёт упаковка, и нажмите 'OK'") if (confirm("Вы уже уничтожили распечатанную накладную?")) { // message("Эта функция ещё в разработке"); // return false; j.post(['update', 'withdraw'], function (data) { if (data.status && parseInt(data.checkValue) === 1111) { message("Заказ успешно отозван!"); } }, {orderId: orderId}); } } } , gotovNaOtdachy: function (orderId) { if (confirm("Это включит готовность к Выдаче! Всё верно?")) { j.post(['update', 'naOtdachy'], function (data) { if (data.status) { message("Заказ успешно помечен!"); } }, {orderId: orderId}); } } , gotovNaOtpravky: function (orderId) { if (confirm("Это включит готовность к Загрузке! Всё верно?")) { j.post(['update', 'naOtpravky'], function (data) { if (data.status) { message("Заказ успешно помечен!"); } }, {orderId: orderId}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; frmo.loadOrder(t); } }, 600); } }; frm[331] = { init: function (path) { j.post(['init'], function (data) { debug.cnsl(data); frmo.customers = data.customers; //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //transTypes var transTypesList = ''; for (var tt in data.transTypes) { transTypesList += ''; } document.getElementById('transTypeId').innerHTML = transTypesList; //transTypes var paymentMethodsList = ''; for (var pm in data.paymentMethods) { paymentMethodsList += ''; } document.getElementById('paymentMethodId').innerHTML = paymentMethodsList; /************************* немного автоматизации */ if (isDefined(panelData.customersList[path])) { frmo.customerId = path; $("#customerId").val(frmo.customerId); frmo.prepareFormData({value: frmo.customerId}); } $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; }); }, getOrdersList: function () { if (isDefined(frmo.customerId)) { // если клиент выбран var transTypeId = document.getElementById("transTypeId").value; if (transTypeId == 3) { // если метод оплаты -- за заказ j.post(['getOrderList'], function (data) { debug.cnsl(data); if (isDefined(data.orderList)) { frmo.orderList = data.orderList; //orderList var orderList = ''; for (var oi in data.orderList) { orderList += ''; } document.getElementById('orderId').innerHTML = orderList; document.getElementById('orderId').removeAttribute('disabled'); frmo.ammountPrepare(document.getElementById('orderId')); document.getElementById('amount').readOnly = true; } else { message("Все отправленные заказы уже оплачены!", 1); document.getElementById("transTypeId").value = 2; document.getElementById('orderId').disabled = true; document.getElementById('orderId').innerHTML = ""; document.getElementById('amount').removeAttribute('readonly'); } }, {customerId: frmo.customerId}); } else { document.getElementById('orderId').disabled = true; document.getElementById('orderId').innerHTML = ""; document.getElementById('amount').removeAttribute('readonly'); } } else message("Сначала выберите клиента, и тип транзакции для оплаты заказа"); }, prepareFormData: function (el) { if (el.value != "") { frmo.customerId = el.value; document.getElementById('transTypeId').removeAttribute('disabled'); document.getElementById('paymentMethodId').removeAttribute('disabled'); document.getElementById('amount').removeAttribute('readonly'); document.getElementById('orderId').innerHTML = ""; document.getElementById('orderId').disabled = true; document.getElementById('transTypeId').value = frmo.customers[frmo.customerId]['defaultTransTypeId']; frmo.getOrdersList(); document.getElementById('paymentMethodId').value = frmo.customers[frmo.customerId]['defaultPaymentMethodId']; } }, ammountPrepare: function (el) { debug.cnsl("ammount"); frmo.ammount = frmo.orderList[el.value]['totalPrice']; document.getElementById('amount').value = frmo.ammount; }, pushTransaction: function () { var formData = ff.toObj('transactionForm'); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Регистрация успешна!"); form.init(); // frmo.getOrdersList(); // e('transactionForm').reset(); } else { message("Ошибка при записи...", 3) } }, formData); } , loadFinanceInfo: function (el) { var vvv = el.value; if (isDefined(panelData.customersList[vvv])) { frmo.customerId = vvv; $('#orderInfo .panel-title')[0].innerHTML = "Детали платежа " + panelData.customersList[vvv].name + ""; frmo.prepareFormData(el); } else if (vvv == "") { nav.goTo(331); } } , oninputCustomerId: function (t) { let tv = t.value; $("#transactionForm")[0].reset(); $("#orderId").empty(); t.value = tv; if(t.value===""){ clearTimeout(frmo.ttt); frmo.customerId = ""; } else { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; frmo.loadFinanceInfo(t); } }, 600); } } }; frm[332] = { init: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('.line').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); frmo.run.customersList(data.customers); //способы доставки var optList = ''; for (var id in data.shippingMethods) { optList += ''; } document.getElementById('shippingMethodsList').innerHTML = optList; }, {}); /* поиск по таблице методом бутстрапа*/ // $(document).ready(function () { // $("#searchOnPage").on("keyup", frmo.sop); // }); /* конец поиска по таблице */ }, sop:function (el) { /* поиск по таблице методом бутстрапа*/ var value = $(el).val().toLowerCase(); $("#filtersTable :not(thead) tr").filter(function () { $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1); }); }, run: { customersList: function (data) { $('#tbody').empty(); var row; for (var id in data) { row = frmo.newRow.clone(); row[0].id = parseInt(id); for (var key in data[id]) { var val = data[id][key]; var td = $(row).find('.' + key); if (key == 'active') val = ''; // if (key == 'name') val = ''+val+'' + // '' + // ''; if (key == 'accessCode') break; if (key == 'authCustomer' && val == 0) break; else if (key == 'authCustomer') { td.html('' + '' + '' + '' + ''); row[0].style = "border-bottom: 2px #00bf0f solid;"; break; } // if (key == 'allowHistory' && val == 0) $(row).find('.addAsHistory').remove(); // else $(row).find('.viewHistory')[0].dataset.customerId = parseInt(id); $(row).find('.addAddress')[0].dataset.customerId = parseInt(id); $(row).find('.addOrder')[0].dataset.customerId = parseInt(id); $(row).find('.authCreate')[0].dataset.customerId = parseInt(id); // td.html((val!=null ? val : "")+td.html()); td.html(td.html() + (val != null ? val : "")); } row.find('td.editable').on('click', function (e) { $(this).off(); frmo.edit.td(e.target); }); row.appendTo('#tbody').show(); } }, addLine: function () { if ($('#new').is('tr')) { message('Click "Add" for previous line', 3); return; } var row = frmo.newRow.clone().show(); $(row).find('td.editable.text').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim(); $(v).append(''); }); /*$(row).find('td.balance').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim(); $(v).append(''); });*/ $(row).find('td.id').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim(); $(v).append(''); }); $(row).find('td.defaultShippingMethodId').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'); $('#tbody').prepend(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('Сохранено!', 1); frmo.run.customersList(data.customers); } else message('Has not been saved!(', 0); }, formData); } }, insert: function () { var formData = ff.toObj('new'); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); panelDataUpdate(); frmo.init(); } else { message('Not saved!', 2); $('#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', '').replace('datalist', '').trim(); debug.cnsl(fieldName); $(e).empty(); if ($(e).hasClass('text')) $(e).append(''); if ($(e).hasClass('textarea')) $(e).append(''); if ($(e).hasClass('defaultShippingMethodId')) { $(e).append(''); $('input[name="' + fieldName + '"]').focus(); $('input[name="' + fieldName + '"]').click(); } $(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}); } , createCustomerAccount: function (custId) { // message("Функция в разработке","w"); if (confirm("Вы подтверждаете создание доступа " + "в магазин пользователю " + panelData.customersList[custId].name + "?")) { j.post(['createAccount'],async function (data) { if (data.status && data.loginData) { await message(data.loginData, "s", "Данные клиента!", false); // $('.ui-pnotify')[0].style = "top:" + cursorY + "px; left:" + cursorX + "px; width: 20%;"; await frmo.run.customersList(data.customers); await frmo.sop("#searchOnPage"); } else message("Неуспешно, сообщите админу", "w"); }, panelData.customersList[custId]); } } , getAuthData: function (custId) { // message("Функция в разработке","w"); j.post(['getAuthData'], function (data) { if (data.loginData) { message(data.loginData, "s", "Данные клиента " + panelData.customersList[custId].name + "!"); // $('.ui-pnotify')[0].style = "top:" + cursorY + "px;left:" + cursorX + "px; width: 20%;"; } else message("Неуспешно, сообщите админу", "w"); }, {id: custId}); } , getAuthLink: function (custId) { // message("Функция в разработке", "w"); if (prompt("Это действие удалит старую ссылку, и сделает новую. Продолжить?")) { j.post(['getAuthLink'], function (data) { if (data.loginLink) { let txt = "Внимание! это секретно! никому не передавайте эту ссылку! " + cpBaseUrl + "?ll=" + data.loginLink + ""; message(txt, "w", "Ссылка для входа клиента (" + panelData.customersList[custId].name + ") БЕЗ пароля !"); $('.ui-pnotify')[0].style = "top:" + cursorY + "px;left:" + cursorX + "px; width: 20%;"; } else message("Неуспешно, сообщите админу", "w"); }, {id: custId}); } } }; jQuery(function ($) { cursorX = -1; cursorY = -1; $(window).mousemove(function (event) { cursorX = event.clientX; cursorY = event.clientY; // debug.cnsl(cursorX,cursorY); // message("test","w"); // $('.ui-pnotify')[0].style = "top:"+event.clientY+"px;left:"+event.clientX+"px; width: max-content;"; // ELSEWHERE, your code that needs to know the mouse position without an event // if (event.clientX < 10 || event.clientY < 10) { // $(window).off("mousemove"); // } }); }); frm[334] = { displayOrdering: ['priceRoznica', 'productName', 'count', 'price','total'], init: function (path) { j.post(['init'], function (data) { debug.cnsl(data); for (var d in data.customer) { var par = document.querySelector('#printBody .order-' + d); if (par != null) par.innerHTML = data.customer[d]; } for (var d in data.orderDetails) { var par = document.querySelector('#printBody .order-' + d); tdCont = data.orderDetails[d]; if (d == 'totalPrice') tdCont = ""+tdCont+' грн.'; // debug.cnsl(tdCont); if (par != null && tdCont != null) par.innerHTML = tdCont; } if(isDefined(data.orderDetails) && data.orderDetails.workerName!=null && data.orderDetails.statusId>=5) document.getElementById('printBtn').classList.remove('hidden'); var list = e("orderContent"); for (var line in data.orderContent) { var tr = e(null, list, "tr"); for (var i in frmo.displayOrdering) { var key = frmo.displayOrdering[i]; var tdCont = data.orderContent[line][key]; // if (['price', 'total'].includes(key)) tdCont += ' грн.'; // if (['productName'].includes(key)) tdCont += ' грн.'; ? если сюда придём, сообщить зачем было написана строчка e(null, tr, "td", key).innerHTML = tdCont; } } document.title = "Заказ №" + data.orderDetails.id; document.getElementById("dolg").innerText = panelData.customersList[data.customer.id].balance+" грн."; // document.getElementById("custName").innerText = panelData.customersList[data.customer.id].name; if (!isDefined(path[1]) || path[1] != 'view') { window.onafterprint = function () { history.back(); window.onafterprint = null; } window.print(); } if(isDefined(data.wishlistContent) && data.wishlistContent.length>0 && data.orderDetails.statusId<10){ // debug.cnsl(data.wishlistContent) frmo.displayWishlist(data.wishlistContent); $(".wishList").show(); } }, {orderId: path[0]}); var p = document.getElementById('orderInfo'); p.removeEventListener('click', init, false); p.className = p.className + ' resizable'; var resizer = document.createElement('div'); resizer.className = 'resizer'; p.appendChild(resizer); resizer.addEventListener('mousedown', initDrag, false); function initDrag(e) { startX = e.clientX; startY = e.clientY; startWidth = parseInt(document.defaultView.getComputedStyle(p).width, 10); startHeight = parseInt(document.defaultView.getComputedStyle(p).height, 10); document.documentElement.addEventListener('mousemove', doDrag, false); document.documentElement.addEventListener('mouseup', stopDrag, false); } function doDrag(e) { p.style.width = (startWidth + e.clientX - startX) + 'px'; p.style.height = (startHeight + e.clientY - startY) + 'px'; } function stopDrag(e) { document.documentElement.removeEventListener('mousemove', doDrag, false); document.documentElement.removeEventListener('mouseup', stopDrag, false); } }, displayWishlist:function (wishlist) { var listForDisplay = ["productName","count"]; var list = e("wishlistContent"); for (var line in wishlist) { var tr = e(null, list, "tr"); for (var i in listForDisplay) { var key = listForDisplay[i]; var tdCont = wishlist[line][key]; e(null, tr, "td", key).innerHTML = tdCont; } } } }; frm[335] = { orderList: ['id', 'transType', 'amount', 'customer', 'note', 'dateOfOperation'], init: function (path) { if (isDefined(panelData.customersList[path])) { frmo.customerId = path; $("#customerId").val(frmo.customerId); frmo.filterTrans(); } j.post(['init'], function (data) { debug.cnsl(data); //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //транзакции var translist = ''; for (var ct in data.transType) { translist += ''; } document.getElementById('transType').innerHTML += translist; if (!isDefined(panelData.customersList[path])) frmo.display(data.history); $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; $("#customerId")[0].focus(); }, {}); }, display: function (data) { var body = e('transBody'); body.innerHTML = ''; var totalCost = 0; for (var t in data) { var line = e(t, body, 'tr'); totalCost += parseFloat(data[t]['amount']); for (var i in frmo.orderList) { var f = frmo.orderList[i]; var cont = data[t][f]; if (f == 'transType') { var znak = ""; switch (data[t]['transTypeId']) { case '0': { znak = 'icon-droplet'; break; } case '1': { znak = 'icon-arrow-left7 text-danger'; break; } default: { znak = 'icon-arrow-right7 text-success'; break; } } cont = '
' + cont + (data[t]['transTypeId'] == 1 || data[t]['transTypeId'] == 3 ? ' #' + data[t]['orderId'] : '') + '
' + (data[t]['paymentMethod'] ? '(' + data[t]['paymentMethod'] + ')' : '') + ''; } else if (f == 'amount') cont = '' + cont + '' e(null, line, 'td', f).innerHTML = cont; } // if (data[t]['transTypeId'] != 1 || (data[t]['transTypeId'] == 1 && data[t]['orderId'] == null)) if (data[t]['orderId'] == null) e(null, line, 'td').t(''); else e(null, line, 'td'); } if (document.getElementById('customerId').value != '') { document.getElementById('totalAmount').innerHTML = " ************* Общий баланс клиента: " + totalCost + ""; document.getElementById('totalAmount').classList.remove('hidden'); } else document.getElementById('totalAmount').classList.add('hidden'); }, filterTrans: function () { var fd = ff.toObj('searchRequest'); j.post(['filter'], function (data) { frmo.display(data.history); }, fd) }, delTrans: function (ev) { if (confirm('Вы действительно хотите удалить транзакцию?')) { j.post(['delete'], function (data) { if (data.status) { message('Транзакция успешно удалена', 1); frmo.init(); } else message('Ошибка: транзакция не может быть удалена', 0); }, {transId: ev}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; $('#orderInfo .panel-title').prepend(panelData.customersList[t.value].name); frmo.filterTrans(); } }, 300); } }; frm[338] = { init: function () { if (!isDefined(frmo.newRow)) frmo.newRow = $('.line').remove().clone(); j.post(['init'], function (data) { debug.cnsl(data); frmo.run.workersList(data.workers); }, {}); }, run: { workersList: function (data) { $('#tbody').empty(); var row; for (var id in data) { row = frmo.newRow.clone(); row[0].id = parseInt(id); for (var key in data[id]) { var val = data[id][key]; var td = $(row).find('.' + key); if (key == 'active') val = ''; td.html(val); } row.find('td.editable').on('click', function (e) { $(this).off(); frmo.edit.td(e.target); }); row.appendTo('#tbody').show(); } }, addLine: function () { if ($('#new').is('tr')) { message('Click "Add" for previous line', 3); return; } var row = frmo.newRow.clone().show(); $(row).find('td.editable.text').each(function (i, v) { var fieldName = $(v)[0].className.replace('editable', '').replace('text', '').trim(); $(v).append(''); }); $(row).find('td.editable.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'); $('#tbody').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('Сохранено!', 1); frmo.run.workersList(data.workers); } else message('Has not been saved!(', 0); }, formData); } }, insert: function (e) { var formData = ff.toObj('new'); debug.cnsl(formData); j.post(['insert', 'new'], function (data) { if (data.status) { message('Сохранено!', 1); frmo.init(); } else { message('Not saved!', 2); $('#new').css('background-color', '#deb887'); } }, formData); }, edit: { td: function (e) { var text = $(e).text().trim(); var fieldName = $(e)[0].className; if (fieldName == '') fieldName = $(e).parents('td')[0].className; fieldName = fieldName.replace('editable', '').replace('text', '').replace('textarea', '').replace('datalist', '').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[341] = { newRow: '', init: function () { j.post(['init'], function (data) { frmo.run.infoList(data.info); }, {}); }, run: { infoList: function (info) { frmo.newRow = $('.ann').remove().clone(); var annRow; $.each(info, function (i, ann) { // debug.cnsl(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.text+"
").on('click', function (e) { annRow.find('.text').empty().html(ann.text).on('click', function (e) { $(this).off(); frmo.edit.text(e.target); }); annRow.appendTo('#anncTbody').show(); }); }, addLine: function () { if ($('#new').is('tr')) { message('Click "Add" for previous 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('Сохранено!', 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('Сохранено!', 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('Сохранено!', 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[342] = { init: function (param) { panelDataUpdate(); frmo.seatsAmount = []; frmo.customerId = frmo.customerId || ""; frmo.workerId = parseInt(param[0]) || ""; j.post(['init'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.workers = data.workers; frmo.statuses = data.orderStatuses; for (var key in data.customers) { $('#customerIds').append(''); } for (var key in data.workers) { var name = data.workers[key]['name']; // $('.widb').append(''); // $('.widb').append(""); $('.widb').append(""); } // frmo.workerId = undefined; /* for (var key in data.workers) { var name = data.workers[key]['name']; $('.workersIds').append(''); } */ frmo.viewOrderList(); 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(); } $('.customerId').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(); }); }, { customerId: frmo.customerId, workerId: frmo.workerId }); } , loadOrder: function (ev) { debug.cnsl(ev); $('#formsTbody,.nothingMsg').empty(); // if (ev.value != "all") { /*if (ev.name == "workerId") { frmo.workerId = ev.value; // $('.wid' + frmo.workerId)[0].style = "background-color:green;"; } if (ev.name == "customerId") { frmo.customerId = ev.value; }*/ // } // else { j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }, {customerId: frmo.customerId, workerId: frmo.workerId}); // } } , viewOrderList: function () { for (var key in frmo.orders) { // var fields = new Array('id', 'customer', 'status', 'created', 'totalPrice', 'dsc', 'note'); var fields = ['id', 'status', 'customer', 'note']; var table = e('formsTbody'); var line = e(frmo.orders[key]['id'], table, 'tr', "line " + frmo.orders[key]['id']); for (var k in fields) { var i = fields[k]; var text = frmo.orders[key][i]; var bgC = "inherit"; // if (i == 'seatsAmount') text = ""; if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[frmo.orders[key]["statusId"]]["bgColor"]; if (frmo.orders[key]['workerName'] != null) text = text + " - " + frmo.orders[key]['workerName'] + ""; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } var actions = e(null, line, 'td', 'actions'); actions.innerHTML = ''; /* if (document.querySelector("select.form-control.workersIds").value != "all" && frmo.orders[key]['statusId'] == 4) { actions.innerHTML = // ' ' + '' + ''; } else if (document.querySelector("select.form-control.workersIds").value != "all" && frmo.orders[key]['statusId'] == 5) { actions.innerHTML = ''; } */ if (isDefined(frmo.workerId) && frmo.workerId != "") { // $('.wid*').removeAttribute('style'); // $('.wid' + frmo.workerId)[0].style = "background-color:green;"; $('b.wname')[0].innerText = frmo.workers[frmo.workerId].name; if (frmo.orders[key]['statusId'] == 4) { actions.innerHTML += ''; } else if (frmo.orders[key]['statusId'] == 5) { actions.innerHTML += '
' + // "Количество упакованных коробок:"; ""; } } else $('b.wname')[0].innerText = ""; } } , printAndPack: function (orderId) { j.post(['update', 'printAndPack'], function (data) { if (data.status) { nav.goTo(334, orderId); } }, {orderId: orderId, workerId: frmo.workerId}); } , packIsDone: function (orderId) { j.post(['update', 'packIsDone'], function (data) { if (data.status) { message("Успешно!", 1); $("#" + orderId).remove(); } }, {orderId: orderId, workerId: frmo.workerId, seatsAmount: frmo.seatsAmount[orderId]}); } , setSeatsAmount: function (oId, el) { frmo.seatsAmount[oId] = el.value; } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; $('b.wname')[0].innerText = ""; frmo.loadOrder(t); } }, 600); } }; frm[344] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); frmo.products = data.products; //products var optList = ''; for (var prodId in data.products) { optList += ''; } document.getElementById('productsList').innerHTML = optList; frmo.display(data.transactions); }); }, display: function (transactions) { var body = e('transBody'); body.innerHTML = ''; for (var tId in transactions) { var line = e(tId, body, 'tr'); var rowData = transactions[tId]; for (var fieldName in transactions[tId]) { var cont = rowData[fieldName]; /* if (fieldName == 'transTypeId') { var znak = ""; switch (cont) { case '8': { znak = 'icon-database'; break; } case '6': { znak = 'icon-forward text-success'; break; } /!*default: { // icon-reply text-danger icon-reply-all znak = 'icon-arrow-right7 text-success'; break; }*!/ } cont = '
' + cont + (data[t]['transTypeId'] == 1 || data[t]['transTypeId'] == 3 ? ' #' + data[t]['orderId'] : '') + '
' + (data[t]['paymentMethod'] ? '(' + data[t]['paymentMethod'] + ')' : '') + ''; } else */ if (fieldName == 'count') cont = '' + cont + '' e(null, line, 'td', fieldName).innerHTML = cont; } e(null, line, 'td').t(''); } }, pushTransaction: function () { if(frmo.validatorProdukta()) { var formData = ff.toObj('transactionForm'); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Товар успешно внесён на склад!"); frmo.init(); e("count").setAttribute("disabled", true); e('transactionForm').reset(); e("productId").focus(); } else { message("Ошибка при записи...", 3) } }, formData); } } , pressReview(el) { if (el.onkeyup.arguments[0].key == "Enter") { frmo.pushTransaction(); } } , validatorProdukta() { if (isNaN(parseInt(e('productId').value))) { message("В поле Продукт должен быть номер продукта!
" + "Для этого введите номер(штрихкод), или выберите с выпадающего списка.", 3); return false; } else { e("count").removeAttribute("disabled"); e("count").focus(); return true; } } , delTrans: function (ev){ if(confirm('Вы действительно хотите удалить транзакцию?')){ j.post(['delete'], function (data) { if(data.status) { message('Транзакция успешно удалена',1); frmo.init(); } else message('Ошибка: транзакция не может быть удалена',0); }, {prodTransId: ev}); } } }; frm[347] = { // API -- 391f396644edf05d72edf3b73dab2959 init: function () { $("input:not(#formid),select").addClass("form-control"); j.post(['init'], function () { np.r('getPayerType', function (resp) { frmo.dataToSelect('PayerType', resp.data, "Sender"); }); np.r('getPaymentMethod', function (resp) { frmo.dataToSelect('PaymentMethod', resp.data, "Cash"); }); np.r('getCargoType', function (resp) { frmo.dataToSelect('CargoType', resp.data, "Parcel"); }); np.r('getServiceType', function (resp) { frmo.dataToSelect('ServiceType', resp.data, "WarehouseWarehouse"); }); // document.getElementById('DateTime').valueAsDate = parseDate.npDate(false,"/"); document.getElementById('DateTime').value = parseDate.dateInputField(); }); }, dataToSelect: function (selectElementId, data, selectAsDef) { $('#' + selectElementId).empty(); if (!isDefined(selectAsDef)) $('#' + selectElementId).append(''); for (var key in data) { var Ref = data[key]['Ref']; var name = data[key]['Description']; var ruName = isDefined(data[key]['DescriptionRu']) ? " (рос. " + data[key]['DescriptionRu'] + ")" : ""; $('#' + selectElementId).append(''); } }, cityToSelect: function (selectElementId, data) { $('#' + selectElementId).empty(); for (var key in data) { var AreaDescription = data[key]['AreaDescription']; var Ref = data[key]['Ref']; // var name = data[key]['SettlementTypeDescription']+" "+data[key]['Description'].split(" ")[0]; var name = data[key]['Description']; var extName = data[key]['SettlementTypeDescription'] + " " + name; var ruName = isDefined(data[key]['DescriptionRu']) ? " (рос. " + data[key]['DescriptionRu'] + ")" : ""; // $('#' + selectElementId).append(''); $('#' + selectElementId).append(''); } }, autoCityComplete: function (el,Ref = false) { let cityName = el.value.trim(); let idField = el.id; let elemIdForPushRes = el.list.id; console.log(cityName); if (cityName.length >= 3) { npParams.getCities.methodProperties.FindByString = cityName; np.r('getCities', function (resp) { if (resp.success) { let rd = resp.data; if (cityName !== rd[0].Description) { frmo.cityToSelect(elemIdForPushRes, resp.data); } if (rd.length === 1) { if (cityName !== rd[0].Description) {// вывод в лист результатов frmo.cityToSelect(elemIdForPushRes, resp.data); } else { if(Ref){// только для отправителя console.log("SET REF!"); $("#" + elemIdForPushRes)[0].innerHTML = ""; $("[name='" + idField + "']")[0].value = rd[0].Ref; } } } else if (rd.length > 1 && elemIdForPushRes) { // вывод в лист результатов frmo.cityToSelect(elemIdForPushRes, resp.data); } } else debug.cnsl(resp); }); } }, whToSelect: function (selectElementId, data) { console.log(data); $('#' + selectElementId).empty(); for (let key in data) { let Number = data[key]['Number']; let name = data[key]['Description']; $('#' + selectElementId).append(''); } }, autoWhComplete: function (el,Ref = false) { console.log('autoWhComplete'); let cityName = $("#" + el.dataset.cityName).val().trim(); let idField = el.id; let elemIdForPushRes = el.list.id; console.log(cityName); npParams.getWarehouses.methodProperties.CityName = cityName; // npParams.getWarehouses.methodProperties.TypeOfWarehouse = $("[name='TypeOfWarehouseRef']").val(); npParams.getWarehouses.methodProperties.Number = 1; np.r('getWarehouses', function (resp) { if (resp.success) { let rd = resp.data; // $("[name='" + idField + "']")[0].value = ""; if(Ref){// только для отправителя console.log("SET REF!"); $("#" + elemIdForPushRes)[0].innerHTML = ""; $("[name='" + idField + "']")[0].value = rd[0].Ref; } else if (elemIdForPushRes) { frmo.whToSelect(elemIdForPushRes, resp.data); } } else debug.cnsl(resp); }); }, createTTN: function (flag = true) { let formData = ff.toObj("npSID"); console.log('createTTN'); console.log(formData); let fa = {}; new FormData(document.forms.npSID).forEach(function (val, key) { if (!isDefined(fa[key])) fa[key] = val; else fa[key] += "," + val; }); fa.DateTime = parseDate.npDate(fa.DateTime); npParams.saveInternetDocument.methodProperties = fa; console.log(npParams.saveInternetDocument); np.r('saveInternetDocument', function (resp) { if (resp.success) { message("TTN CREATED!!!", "s", "URRA!"); console.log(resp); } else { message("TTN create error","e","View console as DEV"); debug.cnsl(resp); } }); } }; frm[348] = { init:function(){ j.post(['init'], function (data) { debug.cnsl(data); }, {}); } }; frm[351] = { init: function (path) { if (path != "") frmo.customerId = path; else { history.back(); alert("Клиент не выбран!"); return false; } j.post(['init'], function (data) { document.getElementById('clientName').innerHTML = data.customerInfo.name; frmo.display(data.history); }, {customerId: path}); }, pushTransaction: function () { if (document.getElementById('dateOfOperation').value == "") { message("Внесите дату накладной!", 3); return false; } var formData = ff.toObj('historyForm'); formData['customerId'] = frmo.customerId; j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Регистрация успешна!"); document.getElementById('historyForm').reset(); frmo.display(data.history); } else { message("Ошибка при записи...", 3) } }, formData); }, display: function (data) { var body = e('transBody'); body.innerHTML = ''; for (var t in data) { var line = e(t, body, 'tr'); var dataForLine = data[t]; var fieldForShow = ['id', 'transType', 'amount', 'customer', 'note', 'dateOfOperation']; for (var fi in fieldForShow) { var fieldName = fieldForShow[fi]; var cont = dataForLine[fieldName]; if (fieldName == 'transType') { var znak = ""; switch (dataForLine['transTypeId']) { case '0': { znak = 'icon-droplet'; break; } case '1': { znak = 'icon-arrow-left7 text-danger'; break; } default: { znak = 'icon-arrow-right7 text-success'; break; } } cont = '
' + cont + (dataForLine['transTypeId'] == 1 || dataForLine['transTypeId'] == 3 ? ' #' + dataForLine['orderId'] : '') + '
' + '' + (dataForLine['paymentMethod'] ? '(' + dataForLine['paymentMethod'] + ')' : '') + ''; } else if (fieldName == 'amount') cont = '' + cont + '' e(null, line, 'td', fieldName).innerHTML = cont; } } }, pressReview(el) { if (el.onkeyup.arguments[0].key == "Enter") { frmo.pushTransaction(); } } }; frm[352] = { init: function (param) { j.post(['init'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.workers = data.workers; frmo.statuses = data.orderStatuses; frmo.curForm = parseInt(param[0]); //frmo.listSV = data.listSV; for (var key in data.customers) { $('.customerIds').append(''); } for (var key in data.workers) { var name = data.workers[key]['name']; $('.workersIds').append(''); } frmo.viewOrderList(); 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(); } $('.customerIds').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(); }); }, {}); } , viewOrderList: function () { for (var key in frmo.orders) { // var fields = new Array('id', 'customer', 'status', 'created', 'totalPrice', 'dsc', 'note'); var fields = new Array('id', 'status', 'customer', 'smName', 'ttn'); var table = e('formsTbody'); var act = frmo.orders[key]['active'] == 1 ? 'current ' : ''; var line = e(null, table, 'tr', act + frmo.orders[key]['vFormId']); //debug.cnsl(frmo.orders[key]); for (var k in fields) { var i = fields[k]; var text = frmo.orders[key][i]; var bgC = "inherit"; if (i == 'ttn' && text != null) text = 'Отследить: ' + text + ''; if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[frmo.orders[key]["statusId"]]["bgColor"]; if (frmo.orders[key]['workerName'] != null && frmo.orders[key]['statusId'] < 7) text = text + " - " + frmo.orders[key]['workerName'] + ""; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } if (frmo.orders[key]["shippingMethodId"] == 1 && frmo.orders[key]["ttn"] == null) { e(null, line, 'td', 'actions').innerHTML = "" + ""; } if (frmo.orders[key]["shippingMethodId"] == 1 && frmo.orders[key]["ttn"] != null) { e(null, line, 'td', 'actions').innerHTML = "" + "Печать стикера 100*100" + ((frmo.orders[key]['statusId'] > 7) ? "(уже распечатан)" : "") + ""; e(null, line, 'td', 'actions').innerHTML = "" + "Пропустить печать" + ""; } else if (frmo.orders[key]["shippingMethodId"] != 1) { e(null, line, 'td', 'actions').innerHTML = "Эту отравку нужно создавать вручную!"; } } } , printTtnStiker: function (oId) { j.post(["update", "printTtnStiker"], function (data) { debug.cnsl(data); form.init(); }, {orderId: oId}); } /* , loadOrder: function (ev) { $('#formsTbody,.nothingMsg').empty(); if (ev.value != "all") { if (ev.name == "workerId") { j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }, {workerId: ev.value}) } if (ev.name == "customerIds") { $("#goToCustomer")[0].dataset.customerId = ev.value; j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }, {customerId: ev.value}) } } else { j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }) } } , printAndPack: function (orderId) { var workerId = document.querySelector("select.form-control.workersIds").value; j.post(['update', 'printAndPack'], function (data) { if (data.status) { nav.goTo(334, orderId); } }, {orderId: orderId, workerId: workerId}); } , packIsDone: function (orderId) { var workerId = document.querySelector("select.form-control.workersIds").value; j.post(['update', 'packIsDone'], function (data) { if (data.status) { // nav.goTo(334, orderId); message("Успешно!",1); } }, {orderId: orderId, workerId: workerId}); }*/ }; frm[353] = { init: function () { j.post(['init'], function (data) { frmo.customers = data.customers; //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //клиенты var statusList = ''; for (var st in data.orderStatuses) { statusList += ''; } document.getElementById('statusId').innerHTML = statusList; }); document.getElementById('customerId').focus(); }, getOrdersList: function () { if (isDefined(frmo.customerId)) { // если клиент выбран j.post(['getOrderList'], function (data) { if (isDefined(data.orderList)) { frmo.orderList = data.orderList; //orderList var orderList = ''; for (var oi in data.orderList) { orderList += ''; } document.getElementById('orderId').innerHTML = orderList; document.getElementById('orderId').removeAttribute('disabled'); frmo.ammountPrepare(document.getElementById('orderId')); document.getElementById('amount').readOnly = true; } else { message("Заказов для возврата нет!", 3); document.getElementById('orderId').disabled = true; document.getElementById('orderId').innerHTML = ""; document.getElementById('amount').removeAttribute('readonly'); } }, {customerId: frmo.customerId}); } else message("Сначала выберите клиента"); }, prepareFormData: function (el) { if (el.value != "") { frmo.customerId = el.value; document.getElementById('amount').removeAttribute('readonly'); document.getElementById('orderId').innerHTML = ""; document.getElementById('orderId').disabled = true; frmo.getOrdersList(); } }, ammountPrepare: function (el) { debug.cnsl("ammount"); frmo.ammount = frmo.orderList[el.value]['totalPrice']; document.getElementById('amount').value = frmo.ammount; }, pushTransaction: function () { var formData = ff.toObj('transactionForm'); j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Регистрация успешна!"); frmo.getOrdersList(); } else { message("Ошибка при записи...", 3) } }, formData); } }; frm[355] = { init: function (customerId) { if (customerId != "") frmo.customerId = customerId; else { history.back(); alert("Клиент не выбран!"); return false; } $("[name='customerId']")[0].value = frmo.customerId; $("#custName").text(panelData.customersList[frmo.customerId].name); j.post(['init'], function (data) { // var methodsList = ''; var methodsList = document.getElementById('shippingMethodId'); for (var key in data.methods) { // methodsList += ''; // methodsList[methodsList.length] = new Option(data.methods[key]['name'],key,false,(panelData.customersList[frmo.customerId].defaultShippingMethodId==key) ); methodsList[methodsList.length] = new Option(data.methods[key]['name'], key, (key == "3")); } // document.getElementById('shippingMethodId').innerHTML = methodsList; frmo.display(data.addresses); }, {customerId: frmo.customerId}); }, display: function (addresses) { var body = e('addressesBody'); body.innerHTML = ''; for (var tId in addresses) { var line = e(tId, body, 'tr'); var rowData = addresses[tId]; for (var fieldName in addresses[tId]) { var cont = rowData[fieldName]; if (fieldName == 'count') cont = '' + cont + '' e(null, line, 'td', fieldName).innerHTML = cont; } e(null, line, 'td').t(''); } }, pushTransaction: function () { let address = $("#address").val(); address = address.replace(/[^А-Яа-яёЁЇїІіЄєҐґ0-9a-zA-Z.,№-]+/g, ' ').replace(/[\n\r\s\t]+/g, ' '); let fData = ff.toObj("addressForm"); if (fData.address !== "" || (fData.RecipientCityName !== "" && fData.RecipientAddressName !== "")) { j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Адрес успешно внесён!"); panelDataUpdate(function () { nav.goTo(325, ["new", frmo.customerId]); }); } else { message("Ошибка при записи...", 3) } }, fData); } else message("Адрес не должен быть пустой!", 3); return false; } , delTrans: function (ev) { if (confirm('Вы действительно хотите удалить адрес?')) { j.post(['delete'], function (data) { if (data.status) { message('Адрес успешно удален', 1); frmo.init(frmo.customerId); } else message('Ошибка: адрес не может быть удален', 0); }, { saId: ev, customerId: frmo.customerId }); } } , changeSM: function (el) { console.log(el.value); if (el.value == 1) { // Если Новая почта на отделение $("#NP").show(); $("#other").hide(); } else { $("#other").show(); $("#NP").hide(); } } , cityToSelect: function (selectElementId, data) { $('#' + selectElementId).empty(); for (var key in data) { var AreaDescription = data[key]['AreaDescription']; var Ref = data[key]['Ref']; // var name = data[key]['SettlementTypeDescription']+" "+data[key]['Description'].split(" ")[0]; var name = data[key]['Description']; var extName = data[key]['SettlementTypeDescription'] + " " + name; var ruName = isDefined(data[key]['DescriptionRu']) ? " (рос. " + data[key]['DescriptionRu'] + ")" : ""; // $('#' + selectElementId).append(''); $('#' + selectElementId).append(''); } }, autoCityComplete: function (el) { let cityName = el.value.trim(); let idField = el.id; let elemIdForPushRes = el.list.id; console.log(cityName); if (cityName.length >= 3) { npParams.getCities.methodProperties.FindByString = cityName; np.r('getCities', function (resp) { if (resp.success) { let rd = resp.data; if (cityName !== rd[0].Description) { frmo.cityToSelect(elemIdForPushRes, resp.data); } if (rd.length > 1 && elemIdForPushRes) { // вывод в лист результатов frmo.cityToSelect(elemIdForPushRes, resp.data); } } else debug.cnsl(resp); }); } }, whToSelect: function (selectElementId, data) { console.log(data); $('#' + selectElementId).empty(); for (let key in data) { let Number = data[key]['Number']; let name = data[key]['Description']; $('#' + selectElementId).append(''); } }, autoWhComplete: function (el, Ref = false) { console.log('autoWhComplete'); let cityName = $("#" + el.dataset.cityName).val().trim(); let elemIdForPushRes = el.list.id; console.log(cityName); npParams.getWarehouses.methodProperties.CityName = cityName; np.r('getWarehouses', function (resp) { if (resp.success) { let rd = resp.data; if (elemIdForPushRes) { frmo.whToSelect(elemIdForPushRes, rd); } } else debug.cnsl(resp); }); } }; frm[356] = { orderId: 'new', searchMinLength: 3, init: function (path) { var orderId = path[0] || ""; var customerId = path[1] || ""; /********************************************************************** START **************/ if (orderId == '' || orderId == 'new') { $('.editOrder').hide(); $("#statusId")[0].disabled = true; $("#shippingMethodId")[0].disabled = true; $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; if (customerId != "") $("#customerId")[0].value = customerId; $("#orderForm *:is(input:not(#customerId),select:not(#shippingMethodId),textarea) ").hide(); } else { frmo.orderId = orderId; document.getElementById('orderInfo').classList.add('panel-collapsed'); $('.newOrder').hide(); } /******************************************************* END *******************/ j.post(['init'], function (data) { debug.cnsl('initdata'); debug.cnsl(data); frmo.prodContentIds = data.prodContentIds || []; frmo.balance = data.customerInfo; if (isDefined(data.customerInfo)) { if (frmo.balance.perelimit == "da") { $(".heading-elements button").remove(); $("div.limit").html('Этот оптовый не может cделать этот заказ из-за перелимита: ' + frmo.balance.znachenie + ''); document.getElementById('orderInfo').classList.remove('panel-collapsed'); return; } else { // $("div.limit").html('Разрешённая сумма дозаказа: ' + (parseInt(frmo.balance.znachenie)-parseInt(data.orderDetails.totalPrice)) + ''); $("div.limit").html('Разрешённая сумма заказа: ' + parseInt(frmo.balance.znachenie) + ''); } } //вывод категорий var catBlock = e('catsList'), cur; var formSel = document.getElementById('ctIds'); for (var ct in data.categories) { cur = data.categories[ct]; var ctBox = e('ct' + ct, catBlock, 'div', 'col-md-1 singleCt'); e(null, ctBox, 'input', 'hidden').a('type', 'checkbox').a('name', 'ct' + ct); e(null, ctBox, 'input', 'hidden').a('type', 'text').a('value', ct); e(null, ctBox, 'img', 'ctImg').s(img.url(cur.imgId, 150, 150)); e(null, ctBox, 'span', 'ctName').t(cur.name); formSel[formSel.options.length] = new Option(ct, ct); } //статусы var statuses = document.getElementById('statusId'); for (var ct in data.orderStatuses) { statuses[statuses.options.length] = new Option(data.orderStatuses[ct].name, data.orderStatuses[ct].id); } //Доставка var shippings = document.getElementById('shippingMethodId'); for (var ct in data.shippingMethods) { shippings[shippings.options.length] = new Option(data.shippingMethods[ct].name, data.shippingMethods[ct].id); } //клиенты var optList = ''; frmo.customers = data.customers; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; if (data.orderDetails) { //order details var formInfo = $('#orderForm'); for (var d in data.orderDetails) { var val = data.orderDetails[d]; if ((d == 'createDate' || d == 'updateDate') && val != null) val = parseDate.shortDate(val); formInfo.find('*[name="' + d + '"]').val(val); } frmo.customerId = data.orderDetails.customerId; frmo.totalPrice = data.orderDetails.totalPrice; frmo.checkLimit(); //order content if (data.orderContent) { $('.orderEmpty').hide(); $('#orderTable').show(); frmo.updateTotalPrice(data.orderDetails.totalPrice); frmo.displayResult(data.orderContent, 'cartBody'); } } frmo.buttons(); }, {orderId: orderId,}); frmo.findLine = $('#listBody .findLine').html(); $('#listBody').empty(); frmo.contentLine = $('#cartBody .cartLine').html(); $('#cartBody').empty(); }, wishlist: { /*updateProducts: function (recordId, count) { j.post(['update', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (!data.status) message('Что-то пошло не так, попробуйте позже', 0); else frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (data.orderContent) frmo.displayResult(data.orderContent, 'cartBody'); }, {orderId: frmo.orderId, recordId: recordId, count: -count}); },*/ addProduct: function (ev) { var line = ev.parentNode.parentNode; line.disable = true; var prId = line.id; var prCount = line.children.namedItem('qty').children[0].value; j.post(['insert', 'toWishlist'], function (data) { if (data.status) { message("Внесено в список ожидания"); $('.orderEmpty').hide(); $('#orderTable').show(); frmo.displayResult(data.orderContent, 'cartBody'); } else message("Ошибка при добавления в лист ожидания", 3); }, {customerId: frmo.customerId, productId: prId, waitCount: prCount}); }/*, delProduct: function (ev) { var prId = ev.parentNode.parentNode.id; j.post(['delete', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.search(); } frmo.totalPrice = data.totalPrice; frmo.checkLimit(); }, {orderId: frmo.orderId, recordId: prId}); }*/ }, order: { create: function () { var crData = ff.toObj('orderForm'); if (crData.customerId == '') message('Выберите id клиента', 3); else { j.post(['insert', 'order'], function (data) { if (data.orderId) { message('Заказ создан успешно!', 1); nav.goTo(325, data.orderId); } else message('При создании заказа возникла ошибка. Свяжитесь с администратором.', 0); }, crData); } }, updateInfo: function () { var orData = ff.toObj('orderForm'); if (orData.customerId == '') message('Выберите id клиента', 3); else { orData.orderId = frmo.orderId; j.post(['update', 'order'], function (data) { if (data.status) { message('Заказ успешно обновлен!', 1); nav.goTo(325, frmo.orderId); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, orData); } }, aprooved: function () { j.post(['update', 'aproovedOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно подтверждён!', 1); nav.goTo(328); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 2, orderId: frmo.orderId}); }, temp: function () { j.post(['update', 'tempOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно сохранён как черновик!', 1); nav.goTo(328); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 1, orderId: frmo.orderId}); }, toPack: function () { j.post(['update', 'toPack'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' передан на упаковку!', 1); if (data.statusProcedure) { message("Списание с баланса за заказ произошло успешно!", 1); nav.goTo(328); panelDataUpdate(); } else message("Ошибка, средства не списаны! Сообщите админу!", 3); } else message('При передаче заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 4, orderId: frmo.orderId, customerId: frmo.customerId, totalPrice: frmo.totalPrice}); }, del: function () { if (confirm('Вы действительно хотите удалить заказ?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); nav.goTo(328); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: frmo.orderId}); }, updateProducts: function (recordId, count) { j.post(['update', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (!data.status) message('Что-то пошло не так, попробуйте позже', 0); else frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (data.orderContent) frmo.displayResult(data.orderContent, 'cartBody'); }, {orderId: frmo.orderId, recordId: recordId, count: count}); }, addProduct: function (ev) { var line = ev.parentNode.parentNode; line.disable = true; var prId = line.id; var prCount = line.children.namedItem('qty').children[0].value; j.post(['insert', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { $('.orderEmpty').hide(); $('#orderTable').show(); frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (isDefined(data.countOfStock)) { debug.cnsl(data); frmo.checkAsInCart(prId); } } else message("Ошибка при добавлении в корзину", 3); }, {orderId: frmo.orderId, customerId: frmo.customerId, productId: prId, count: prCount}); }, delProduct: function (ev) { var prId = ev.parentNode.parentNode.id; j.post(['delete', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.search(); } frmo.totalPrice = data.totalPrice; frmo.checkLimit(); }, {orderId: frmo.orderId, recordId: prId}); } }, updateTotalPrice: function (price) { document.getElementById('orderTotalPrice').innerHTML = price || 0; }, search: function (i) { var sText = $('input[name="sw"]').val(); frmo.searchQ = new Object(); frmo.searchQ = ff.toObj('searchRequest'); debug.cnsl(frmo.searchQ); if (sText.length == 0 || sText.length >= frmo.searchMinLength) { j.post(['init', 'start'], function (data) { $('.result').show(); frmo.displayResult(data.searchRezult, 'listBody'); }, frmo.searchQ); } else { message('Minimum ' + frmo.searchMinLength + ' chart!', 3); $('.result').hide(); } }, displayResult: function (data, tableId) { $('#' + tableId).empty(); var tbl = e(tableId); if (!data) { $('.searList').fadeIn(500); e(null, e(null, tbl, 'tr', 'findLine'), 'td') .a('colspan', '8') .a('style', 'text-align: center;') .t('Нет товаров для отображения'); } var line = tableId == 'listBody' ? frmo.findLine : frmo.contentLine; if (isDefined(data)) { $('.searList').fadeIn(500); for (var key in data) { var keys = data[key]['id']; var tr = e(keys, tbl, 'tr', ''+(tableId == 'listBody' ? 'col-md-3 findLine' : 'cartLine')); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in data[key]) { var td = data[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { var hr = nav.link(213, [keys]); cont = ' '; } else if (t == 'productName') { // var hr = '/media/detail/' + keys; var hr = nav.link(213, [keys]); cont = '' + cont + ''; } else if (t == 'countOfStock') { $('#' + keys + ' td.countOfOrder input').attr('max', cont) .attr('placeholder', "max " + cont); if (cont > 0) $('#' + keys + ' button.addToCart').removeAttr('disabled'); // if (cont != null) $('#' + keys + ' button.addToCart').removeAttr('disabled'); else $('#' + keys + ' button.addToWishlist').show(); cont = '' + cont + ''; } else if (t == 'active') { cont = cont == '0' ? 'неактивен' : 'включен'; } else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser; else if (t == 'count') cont = ''; $('#' + keys + ' td.' + t).html(cont); } } // проверка на существование товара в корзине if (isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.checkAsInCart(keys); } else if (!isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.prodContentIds = []; frmo.checkAsInCart(keys); } } $('input.qty').off().on('change', function (ev) { }).on('change', function (ev) { var line = ev.target.parentNode.parentNode; var p = $(line).children('.price').text(); $(line).children('.total').text(ev.target.value * p); if (line.classList.contains('cartLine')) { frmo.order.updateProducts(line.id, ev.target.value); } }); } }, tmstmpDate: function (tmst) { var date = new Date(tmst); var m = date.getMonth() + 1; date = (date.getFullYear() + "-" + m + "-" + date.getDate()); //debug.cnsl(date); date = parseDate.shortDate(date); return date; }, buttons: function () { $(".singleCt").off().on('click', function (ev) { /**********************Выключение предыдущей выбранной категории**************************************/ var selected = document.querySelector('#catsList input[type="checkbox"]:checked'); if(selected) { selected.checked = false; selected.parentNode.classList.remove('selected'); } /*****************************************************************************************************/ ev.currentTarget.children.namedItem(ev.currentTarget.id).checked = !ev.currentTarget.children.namedItem(ev.currentTarget.id).checked; ev.currentTarget.classList.toggle('selected'); var inpVals = document.querySelectorAll('#catsList input[type="checkbox"]:checked + input'), vals = []; for (var k = 0; k < inpVals.length; k++) { vals[vals.length] = inpVals[k].value } $('form select#ctIds').val(vals); frmo.search(); }); 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; } }); $('.scrollBtn').off().on('click', function (e) { var panel = $(e.target.value.toString()); $("html, body").animate({scrollTop: (panel.offset().top - parseInt($('.navbar-fixed-top').css('height')))}, 1000); panel.removeClass('panel-colapsed'); panel.find('.panel-body').show(); panel.find('.rotate-180').removeClass('rotate-180'); }); }, checkAsInCart: function (prId) { $("#" + prId + " button ")[0].outerHTML = "Уже в корзине!"; // $("#"+prId+" .countOfStock")[0].innerHTML = data.countOfStock; $("#" + prId + " .countOfStock")[0].innerHTML = ""; $("#" + prId + " td.countOfOrder")[0].innerHTML = ""; $("#" + prId + " td.total")[0].innerHTML = ""; }, prepareFormData: function (el) { if (isDefined(frmo.customers[el.value].defaultShippingMethodId)) { document.getElementById('shippingMethodId').removeAttribute('disabled'); document.getElementById('shippingMethodId').value = frmo.customers[el.value].defaultShippingMethodId; } } , checkLimit: function () { if (parseInt(frmo.totalPrice) > parseInt(frmo.balance.znachenie)) { message("Сумма товаров в корзине превышает допустимое значение для этого клиента!", 3); } } }; frm[357] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); var dataToShow = data.searchRezult; var line, ctid; for (var key in dataToShow) { var fields = new Array('productName', 'price', 'priceRoznica'); var table = e('listBody'); line = e(null, table, 'tr'); if (ctid != dataToShow[key]['ctid']) { line.style = "border-top: 2px #000 solid;"; } ctid = dataToShow[key]['ctid']; for (var k in fields) { var i = fields[k]; var text = dataToShow[key][i]; var bgC = "inherit"; if (i == 'price' || i == 'priceRoznica') text = "" + parseInt(text) + ""; // if (i == 'countOfStock' && parseInt(text) < 0) text = "" + text + ""; // if (i == 'createDate') text = parseDate.shortDate(text); /*if (i == 'status') { bgC = frmo.statuses[dataToShow[key]["statusId"]]["bgColor"]; if (dataToShow[key]['workerName'] != null) text = text + " - " + dataToShow[key]['workerName'] + ""; }*/ e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } } }, {}); } }; frm[358] = { init:function(){ j.post(['init'], function (data) { debug.cnsl(data); }, {}); } }; frm[359] = { orderId: 'new', searchMinLength: 3, init: function (path) { orderId = path[0] || ""; customerId = sett.user.customerID; j.post(['check'], function (data) { // console.log(data); if(isDefined(data.customerHistory)){ $('.page-container')[0].style = "font-size: 15px;"; $('.page-container')[0].innerHTML = "

Шановний клієнте, у вас є неоплочені замовлення, граничний термін(6 місяців) оплати для яких уже вичерпано.

" + "

Для продовження роботи в системі, вам необхідно оплатити всі ці замовлення. (список заборгованих подається нижче)

"; e('historyList',e('f359'),'table'); e(null,e('historyList'),'tr').t(`ДатаСума`); while (item = data.customerHistory.shift()) { e(null, e('historyList'), 'tr').t("" + item.createDate + "" + item.totalPrice + ""); } e(null,e('f359'),'b').t("
Надіємося на розуміння!"); } else { frmo.initGood(); } },{custId:customerId}); }, initGood: function () { $(".orderId").text(orderId); /********************************************************************** START **************/ // noinspection CssInvalidPseudoSelector if (orderId === '' || orderId === 'new') { orderId = ''; $('.editOrder').hide(); // $("#statusId")[0].disabled = true; // document.getElementById('shippingAddressId').setAttribute('disabled', "true"); document.getElementById('shippingMethodId').setAttribute('disabled', "true"); // this.prepareFormData(); // $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; // $("#orderForm *:is(input:not(#customerId),select:not(#shippingMethodId,#shippingAddressId),textarea) ").hide(); } else { frmo.orderId = orderId; $('.create_update').show(); $('.newOrder').hide(); } /******************************************************* END *******************/ j.post(['init'], function (data) { frmo.data = data; frmo.prodContentIds = data.prodContentIds || []; frmo.balance = data.customerInfo; if (isDefined(data.customerInfo)) { if(isDefined(frmo.balance.perelimit) && frmo.balance.perelimit === "da") { $('.page-container')[0].style = "font-size: 25px;"; $('.page-container')[0].innerHTML = "

Шановний клієнте, у вас ПЕРЕЛІМІТ " + frmo.balance.znachenie + "грн.

" + "

Для продовження роботи в системі, вам необхідно бути в межах ліміту

"; return; } /* if (frmo.balance.perelimit === "da") { $(".heading-elements button").remove(); $("div.limit").html('Вы не можете cделать этот заказ из-за перелимита: ' + frmo.balance.znachenie + ''); document.getElementById('orderInfo').classList.remove('panel-collapsed'); return; } */ else { $("div.limit").html('Дозволена сума замовлення до: ' + parseInt(frmo.balance.znachenie) + 'грн.'); } } //Адреса доставка if (isDefined(data.orderDetails)) { $(".created").text(data.orderDetails.created); $(".updated").text(data.orderDetails.updated); // var shippingAddress = document.getElementById('shippingAddressId'); orderSA = data.orderDetails.shippingAddressId || ""; orderSM = data.orderDetails.shippingMethodId || ""; /*if (isDefined(data.shippingAddress) && data.shippingAddress.length > 0) { for (var ct in data.shippingAddress) { let sel, l = data.shippingAddress[ct]; if (orderSA != "") sel = orderSA; else if (l.default == 1) sel = l.id; shippingAddress[shippingAddress.options.length] = new Option(l.address, l.id, false, (l.id == sel)); // shippingAddress[1] = new Option(l.address, l.id, false,(l.id == sel)); } // shippingAddress[shippingAddress.options.length] = new Option("+ ДОБАВИТЬ", null, true) // .onclick = // function (){ nav.goTo(355,[frmo.customerId]);} ; } else*/ if (!isDefined(data.shippingAddress)) { $('#shippingAddressId')[0].outerHTML = ""; } } //Методы доставка var shippings = document.getElementById('shippingMethodId'); for (var ct in data.shippingMethods) { let sel, l = data.shippingMethods[ct]; if (typeof orderSM != "undefined" && orderSM != "") sel = orderSM; else if (l.defaultAddress == 1) sel = panelData.customersList[customerId].defaultShippingMethodId; shippings[shippings.options.length] = new Option(l.name, l.id, false, (l.id == sel)); } if (customerId != "") { // frmo.customerId = customerId; // $("#customerId").val(frmo.customerId); frmo.prepareFormData({value: customerId}); } // frmo.buttons(); /* if (data.wishlistContent) { message("Список желаний не пустой, обратите внимание!"); $(".wishlistEmpty").hide(); $("#wishlistTable").show(); $("#compile").addClass('btn-warning'); for (let s in data.wishlistContent) { let cols = ["productName", "realnoOfStore", "waitCount", "dostupnoForThisCustomer", "v_korziny"]; let ld = data.wishlistContent[s]; let line = e(ld.id, e('wishlistBody'), 'tr'); for (let i in cols) { let col = cols[i]; let td = e(null, line, 'td', col); td.innerHTML = ld[col]; } } }*/ /* $(".editOrder").on("click", function (ev) { console.log(ev); let w = $(ev.target).parents("tr")[0].id; let oldVal = ev.target.value; frmo.oldValues[w][ev.target.className] = oldVal; });*/ }, {orderId: orderId, customerId: sett.user.customerID}); frmo.findLine = $('#listBody .findLine').html(); $('#listBody').empty(); frmo.contentLine = $('#cartBody .cartLine').html(); $('#cartBody').empty(); }, order: { create: function () { var crData = ff.toObj('orderForm'); crData.customerId = sett.user.customerID; j.post(['insert', 'order'], function (data) { if (data.orderId) { message('Теперь нужно выбрать товары!', 1, "Отлично!"); nav.goTo(362, data.orderId); } else if (data.status == 'callToLily') nav.goTo(360); else message('При создании заказа возникла ошибка. Свяжитесь с администратором.', 0); }, crData); }, updateInfo: function () { var orData = ff.toObj('orderForm'); orData.customerId = sett.user.customerID; orData.orderId = frmo.orderId; j.post(['update', 'order'], function (data) { if (data.status) { message('Заказ успешно обновлен!', 1); nav.goTo(361, frmo.orderId); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, orData); }, aprooved: function () { j.post(['update', 'aproovedOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно подтверждён!', "s", "Финиш!"); nav.goTo(360); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 2, orderId: frmo.orderId}); }, temp: function () { j.post(['update', 'tempOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно сохранён как черновик!', 1); nav.goTo(328); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 1, orderId: frmo.orderId}); }, toPack: function () { if (frmo.data.orderContent.length == 0) { alert("Заказ ПУСТОЙ!", 3); return false; } else if (confirm("Этот заказ уже полностью готовый к упаковке?")) { j.post(['update', 'toPack'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' передан на упаковку!', 1); if (data.statusProcedure) { message("Списание с баланса за заказ произошло успешно!", 1); nav.goTo(328); panelDataUpdate(); } else message("Ошибка, средства не списаны! Сообщите админу!", 3); } else message('При передаче заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 4, orderId: frmo.orderId, customerId: frmo.customerId, totalPrice: frmo.totalPrice}); } }, del: function () { if (confirm('Вы действительно хотите удалить заказ?')) if (confirm('ВСЕ данные из этого заказа, и накладная в том числе будет удалена без возможности восстановления! Точно желаете продолжить?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); message('Внимание! если в заказе были товары, то они были возвращенны на склад обратно', 1); nav.goTo(328); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: frmo.orderId}); } /* , updateProducts: function (recordId, count) { j.post(['update', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (!data.status) message('Что-то пошло не так, попробуйте позже', 0); else frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (data.orderContent) frmo.displayResult(data.orderContent, 'cartBody'); }, {orderId: frmo.orderId, recordId: recordId, count: count,customerId: frmo.customerId}); }, addProduct: function (ev) { var line = ev.parentNode.parentNode; line.disable = true; var prId = line.id; var prCount = line.children.namedItem('qty').children[0].value; j.post(['insert', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { $('.orderEmpty').hide(); $('#orderTable').show(); frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.totalPrice = data.totalPrice; frmo.checkLimit(); if (isDefined(data.countOfStock)) { debug.cnsl(data); frmo.checkAsInCart(prId); } } else message("Ошибка при добавлении в корзину", 3); }, {orderId: frmo.orderId, customerId: frmo.customerId, productId: prId, count: prCount}); }, delProduct: function (ev) { var prId = ev.parentNode.parentNode.id; j.post(['delete', 'cart'], function (data) { if (isDefined(data.prodContentIds)) frmo.prodContentIds = data.prodContentIds; if (data.status) { frmo.displayResult(data.orderContent, 'cartBody'); frmo.updateTotalPrice(data.totalPrice); frmo.search(); } frmo.totalPrice = data.totalPrice; frmo.checkLimit(); }, {orderId: frmo.orderId, recordId: prId}); }*/ }, /* updateTotalPrice: function (price) { document.getElementById('orderTotalPrice').innerHTML = price || 0; },*/ /*search: function (i) { var sText = $('input[name="sw"]').val(); frmo.searchQ = {}; frmo.searchQ = ff.toObj('searchRequest'); debug.cnsl(frmo.searchQ); if (sText.length == 0 || sText.length >= frmo.searchMinLength) { j.post(['init', 'start'], function (data) { $('.result').show(); frmo.displayResult(data.searchRezult, 'listBody'); }, frmo.searchQ); } else { message('Minimum ' + frmo.searchMinLength + ' chart!', 3); $('.result').hide(); } }, displayResult: function (data, tableId) { $('#' + tableId).empty(); var tbl = e(tableId); if (!data) { $('.searList').fadeIn(500); e(null, e(null, tbl, 'tr', 'findLine'), 'td') .a('colspan', '8') .a('style', 'text-align: center;') .t('Нет товаров для отображения'); } var line = tableId == 'listBody' ? frmo.findLine : frmo.contentLine; if (isDefined(data)) { $('.searList').fadeIn(500); for (var key in data) { var keys = data[key]['id']; // var tr = e(keys, tbl, 'tr', ''+(tableId == 'listBody' ? 'col-md-3 findLine' : 'cartLine')); var tr = e(keys, tbl, 'tr', '' + (tableId == 'listBody' ? 'findLine' : 'cartLine')); $(tr).html(line); e(keys, tbl, 'tr'); for (var t in data[key]) { var td = data[key]; if ($('td.' + t)) { var cont = td[t]; if (t == 'imgId') { var hr = nav.link(213, [keys]); cont = ' '; // cont = ' '; } else if (t == 'productName') { // var hr = '/media/detail/' + keys; var hr = nav.link(213, [keys]); cont = '' + cont + ''; } else if (t == 'countOfStock') { $('#' + keys + ' td.countOfOrder input').attr('max', cont) .attr('placeholder', "max " + cont); if (cont > 0) $('#' + keys + ' button.addToCart').removeAttr('disabled'); // if (cont != null) $('#' + keys + ' button.addToCart').removeAttr('disabled'); else $('#' + keys + ' button.addToWishlist').show(); cont = '' + cont + ''; } else if (t == 'active') { cont = cont == '0' ? 'неактивен' : 'включен'; } else if (t == 'createDate') cont = parseDate.shortDate(cont) + '
' + td.createUser; else if (t == 'count') cont = ''; $('#' + keys + ' td.' + t).html(cont); } } // проверка на существование товара в корзине if (isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.checkAsInCart(keys); } else if (!isDefined(frmo.prodContentIds) && frmo.prodContentIds.indexOf(keys) != -1 && tableId == "listBody") { frmo.prodContentIds = []; frmo.checkAsInCart(keys); } } $('input.qty').off().on('change', function (ev) { }).on('change', function (ev) { var line = ev.target.parentNode.parentNode; var p = $(line).children('.price').text(); $(line).children('.total').text(ev.target.value * p); if (line.classList.contains('cartLine')) { frmo.order.updateProducts(line.id, ev.target.value); } }); } },*/ /*tmstmpDate: function (tmst) { var date = new Date(tmst); var m = date.getMonth() + 1; date = (date.getFullYear() + "-" + m + "-" + date.getDate()); //debug.cnsl(date); date = parseDate.shortDate(date); return date; },*/ /*buttons: function () { $(".singleCt").off().on('click', function (ev) { /!**********************Выключение предыдущей выбранной категории**************************************!/ var selected = document.querySelector('#catsList input[type="checkbox"]:checked'); if (selected) { selected.checked = false; selected.parentNode.classList.remove('selected'); } /!*****************************************************************************************************!/ ev.currentTarget.children.namedItem(ev.currentTarget.id).checked = !ev.currentTarget.children.namedItem(ev.currentTarget.id).checked; ev.currentTarget.classList.toggle('selected'); var inpVals = document.querySelectorAll('#catsList input[type="checkbox"]:checked + input'), vals = []; for (var k = 0; k < inpVals.length; k++) { vals[vals.length] = inpVals[k].value } $('form select#ctIds').val(vals); frmo.search(); }); 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; } }); $('.scrollBtn').off().on('click', function (e) { var panel = $(e.target.value.toString()); $("html, body").animate({scrollTop: (panel.offset().top - parseInt($('.navbar-fixed-top').css('height')))}, 1000); panel.removeClass('panel-colapsed'); panel.find('.panel-body').show(); panel.find('.rotate-180').removeClass('rotate-180'); }); },*/ /*checkAsInCart: function (prId) { $("#" + prId + " button ")[0].outerHTML = "Уже в корзине!"; // $("#"+prId+" .countOfStock")[0].innerHTML = data.countOfStock; $("#" + prId + " .countOfStock")[0].innerHTML = ""; $("#" + prId + " td.countOfOrder")[0].innerHTML = ""; $("#" + prId + " td.total")[0].innerHTML = ""; },*/ prepareFormData: function () { // if (el.value == "") form.init([]); // clearTimeout(frmo.ttt); // frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[sett.user.customerID]) && isDefined(panelData.customersList[sett.user.customerID].defaultShippingMethodId)) { // document.getElementById('shippingMethodId').removeAttribute('disabled'); // document.getElementById('shippingMethodId').value = frmo.customers[el.value].defaultShippingMethodId; frmo.customerId = sett.user.customerID; frmo.customerData = panelData.customersList[sett.user.customerID]; // debug.cnsl(frmo.customerData.addr); if (typeof frmo.customerData.addr == "string") frmo.customerData.addr = JSON.parse(frmo.customerData.addr); let customer = frmo.customerData; // frmo.addr = JSON.parse(frmo.customerData.addr); // if (isDefined(panelData.customersList[el.value].shippingAddressId)) { if (customer.addr != null) { let shippingAddress = document.getElementById('shippingAddressId'); shippingAddress.innerHTML = ''; for (var ct in customer.addr) { let sel, l = customer.addr[ct]; if (typeof orderSA != "undefined" && orderSA != "") sel = orderSA; else if (l.default == 1) sel = l.id; // shippingAddress[shippingAddress.options.length] = new Option(l.address, l.id, false, (l.id == sel)); let Op = new Option(l.address, l.id, false, (l.id == sel)); if (l.default) Op.style = "font-weight:bold;"; shippingAddress[shippingAddress.options.length] = Op; } document.getElementById('shippingAddressId').removeAttribute('disabled'); document.getElementById('shippingMethodId').removeAttribute('disabled'); document.getElementById('shippingMethodId').value = customer.addr[customer.defaultShippingAddressId].sMId; // $(".create.newOrder").focus(); // debug.cnsl("dddddd"); } else if (customer.addr === null) { if (confirm("Вам нужно создать адрес!")) { nav.goTo(363, [customer.id]); } } } // }, 1200 ) ; } , eventOnchangeSAid: function (val) { if (val == "add") { nav.goTo(363); } else { $("#shippingMethodId").val(frmo.customerData.addr[val].sMId); } } } ; frm[360] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.statuses = data.statuses; frmo.orderStatusId = ""; frmo.customerId = ""; for (var key in data.statuses) { // == "Удалён" ? "Посмотреть корзину":data.statuses[key]['name'] var name = data.statuses[key]['name']; $('.orderStatusId').append(''); } frmo.viewOrderList(); }, {orderStatusId: "all"}); } , loadOrder: function (ev) { $('#formsTbody,.nothingMsg').empty(); let fieldsData = {}; let value = ""; let orderStatusId = "forWork"; if (ev.value != "all") { value = ev.value; } if (ev.name == "orderStatusId") { orderStatusId = value; } if (ev.name == "customerId") { frmo.customerId = value; orderStatusId = (value != "") ? "" : "forWork"; } fieldsData.orderStatusId = orderStatusId; fieldsData.customerId = frmo.customerId; j.post(['init', 'loadOrders'], function (data) { frmo.orders = data.orders; frmo.viewOrderList(); }, fieldsData); } , viewOrderList: function () { for (var key in frmo.orders) { var fields = ['id', 'status', 'totalPrice', 'customer']; var table = e('formsTbody'); var line = e(frmo.orders[key]['id'], table, 'tr', "line " + frmo.orders[key]['id']); if (frmo.orders[key]['statusId'] == 11) { line.css("background-color:#e2baba;") } if (frmo.orders[key]['statusId'] == 12) { line.css("background-color:rgb(153 205 246);") } let bgC = ""; for (var k in fields) { var i = fields[k]; var text = frmo.orders[key][i]; if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[frmo.orders[key]["statusId"]]["bgColor"]; // if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; } if (i == 'id') { text = '' + text + ' от ' + frmo.orders[key]['cd']; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } e(null, line, 'td', 'actions').innerHTML = frmo.getActionOrderButtons(frmo.orders[key]); } $('.line :is(i,button):not(.removeOrder)').on("click", function (ev) { debug.cnsl(ev.target); let id = $(ev.target).parents('tr')[0].id; let bgC = ""; j.post(['get', 'orderUpdatedInfo'], function (data) { let trInfo = data.orderUpdatedInfo; if (trInfo.id) { let trs = $("#" + id)[0].cells; for (let i in trs) { let tr = trs[i]; let cn = tr.className; if (isDefined(trInfo[cn])) { let text = trInfo[cn]; if (cn == 'status') { bgC = frmo.statuses[trInfo["statusId"]]["bgColor"]; if (trInfo['workerName'] != null) text = "" + text + " - " + trInfo['workerName'] + ""; } if (cn == 'id') { // text = '' + text; text = '' + text + ' от ' + trInfo['cd']; } $(tr)[0].css("background-color:" + bgC).innerHTML = text; } else if (cn == "actions") { $(tr)[0].innerHTML = frmo.getActionOrderButtons(trInfo); } } } }, {id: id}); }); } , getActionOrderButtons: function (order) { let inH = ''; switch (parseInt(order["statusId"])) { case 1: { inH = '' + ' '; break; } /*case 2: { inH = '' + ' '; break; }*/ /* case 4: { // передан на упаковку inH = '' + ''; break; } case 5: { // упаковка в процессе inH = '' + ''; break; }*/ /*case 6: { // упакован inH = '' + ''; break; }*/ } if (parseInt(order["totalPrice"]) > 0) inH += '' + ''; else inH += ''; return inH; } , setToFinish: function (orderId) { if (confirm("Вы точно желаете сделать заказ " + orderId + " завершённым?")) { j.post(['update', 'setToFinish'], function (data) { if (data.status) { message("Успешно перемещён в \"Завершённые\"!", 1); $(".line." + orderId)[0].remove(); // frmo.init(); } }, {orderId: orderId}); } } , deleteOrder: function (orderId) { if (confirm('Вы действительно хотите удалить заказ?')) if (confirm('ВСЕ данные из этого заказа, и накладная в том числе будет удалена без возможности восстановления! Точно желаете продолжить?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); message('Внимание! если в заказе были товары, то они были возвращенны на склад обратно', 1); $("#" + orderId + ".line").remove(); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: orderId}); } , withdraw: function (orderId) { if (confirm("Вы точно желаете отозвать заказ " + orderId + "?")) { alert("Для продолжения, разорвите накладную, по которой идёт упаковка, и нажмите 'OK'") if (confirm("Вы уже уничтожили распечатанную накладную?")) { // message("Эта функция ещё в разработке"); // return false; j.post(['update', 'withdraw'], function (data) { if (data.status && parseInt(data.checkValue) === 1111) { message("Заказ успешно отозван!"); } }, {orderId: orderId}); } } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; frmo.loadOrder(t); } }, 600); } , goToNewOrder: function () { if (frmo.orders === "") { // на случай ПОЛНОГО отсутствия заказов в истории клиента nav.goTo(359); } else { // если заказы уже были в истории let os = frmo.orders.map(function (elem) { if (elem.statusId == 1) return parseInt(elem.id); }); console.log(os); if (os.length > 0 && typeof os[0] != "undefined") { message("У вас есть незавершённый заказ в черновиках, поэтому перейдём к его редактированию", "w", "Информация!"); nav.goTo(361, [os[0]]); } else { nav.goTo(359); } } } }; frm[361] = { displayOrdering: ['priceRoznica', 'productName', 'count', 'price', 'total'], init: function (path) { j.post(['init'], function (data) { debug.cnsl(data); for (var d in data.customer) { var par = document.querySelector('#printBody .order-' + d); if (par != null) par.innerHTML = data.customer[d]; } for (var d in data.orderDetails) { var par = document.querySelector('#printBody .order-' + d); tdCont = data.orderDetails[d]; if (d == 'totalPrice') tdCont = "" + tdCont + ' грн.'; // debug.cnsl(tdCont); if (par != null && tdCont != null) par.innerHTML = tdCont; } frmo.orderId = data.orderDetails.id if (isDefined(data.orderDetails) && data.orderDetails.workerName != null && data.orderDetails.statusId >= 5) document.getElementById('printBtn').classList.remove('hidden'); var list = e("orderContent"); for (var line in data.orderContent) { var tr = e(null, list, "tr"); for (var i in frmo.displayOrdering) { var key = frmo.displayOrdering[i]; var tdCont = data.orderContent[line][key]; // if (['price', 'total'].includes(key)) tdCont += ' грн.'; // if (['productName'].includes(key)) tdCont += ' грн.'; ? если сюда придём, сообщить зачем было написана строчка e(null, tr, "td", key).innerHTML = tdCont; } } document.title = "Заказ №" + data.orderDetails.id; document.getElementById("dolg").innerText = panelData.customersList[data.customer.id].balance + " грн."; // document.getElementById("custName").innerText = panelData.customersList[data.customer.id].name; if (isDefined(data.wishlistContent) && data.wishlistContent.length > 0) { // debug.cnsl(data.wishlistContent) frmo.displayWishlist(data.wishlistContent); $("#wishList").show(); } }, {orderId: path[0]}); var p = document.getElementById('orderInfo'); p.removeEventListener('click', init, false); p.className = p.className + ' resizable'; var resizer = document.createElement('div'); resizer.className = 'resizer'; p.appendChild(resizer); resizer.addEventListener('mousedown', initDrag, false); function initDrag(e) { startX = e.clientX; startY = e.clientY; startWidth = parseInt(document.defaultView.getComputedStyle(p).width, 10); startHeight = parseInt(document.defaultView.getComputedStyle(p).height, 10); document.documentElement.addEventListener('mousemove', doDrag, false); document.documentElement.addEventListener('mouseup', stopDrag, false); } function doDrag(e) { p.style.width = (startWidth + e.clientX - startX) + 'px'; p.style.height = (startHeight + e.clientY - startY) + 'px'; } function stopDrag(e) { document.documentElement.removeEventListener('mousemove', doDrag, false); document.documentElement.removeEventListener('mouseup', stopDrag, false); } }, displayWishlist: function (wishlist) { var listForDisplay = ["productName", "count"]; var list = e("wishlistContent"); for (var line in wishlist) { var tr = e(null, list, "tr"); for (var i in listForDisplay) { var key = listForDisplay[i]; var tdCont = wishlist[line][key]; e(null, tr, "td", key).innerHTML = tdCont; } } } , approveOrder: function () { j.post(['update', 'approveOrder'], function (data) { if (data.status) { if (isDefined(data.errorMsg)) { message(data.errorMsg, "e", "Внимание!"); return false; } else { message('Заказ №' + frmo.orderId + ' успешно подтверждён!', "s", "Финиш!"); nav.goTo(360); } } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: frmo.orderId}); } , temp: function () { j.post(['update', 'tempOrder'], function (data) { if (data.status) { message('Заказ №' + frmo.orderId + ' успешно сохранён как черновик!', 1); nav.goTo(360); } else message('При обновлении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {statusId: 1, orderId: frmo.orderId}); } }; frm[362] = { displayOrdering: ['productName', 'count', 'price', 'total'], init: function (path) { frmo.orderId = path[0]; j.post(['init'], function (data) { debug.cnsl(data); frmo.orderContent = data.orderContent; let list = e("orderContent"); for (let line in data.orderContent) { let tr = e(data.orderContent[line]["id"], list, "tr"); tr.dataset.lineId = line; let historyId = data.orderContent[line]['historyId']; for (let i in frmo.displayOrdering) { let key = frmo.displayOrdering[i]; let tdCont = data.orderContent[line][key]; if (key === "count") { // tdCont = ''; tdCont = isNaN(parseInt(tdCont)) ? 0 : tdCont; if (isNaN(parseInt(historyId))) { tr.css("color:#000!important;"); } else { tr.classList += "addedInOrder"; tr.dataset.historyId = historyId; } if (data.orderContent[line].available == 1) { tdCont = '-' + '' + tdCont + '' + '+'; if (data.orderContent[line].aCount == 0) { tdCont += ' только предзаказ'; } } else tdCont = "Не доступно"; } e(null, tr, "td", key).innerHTML = tdCont; } } document.title = "Заказ №" + frmo.orderId; $(".order-totalPrice")[0].innerHTML = data.orderDetails.totalPrice; if (data.orderDetails.calcBlock == "da") { // $(".limitInfo")[0].innerHTML = "Перелимит! (" + data.orderDetails.totalPrice + ")"; $(".limitInfo")[0].innerHTML = "Перелимит! (" + data.orderDetails.perelimValue + ")"; $(".toOrderPage")[0].disabled = true; } else { $(".limitInfo")[0].innerHTML = ""; $(".toOrderPage").removeAttr("disabled"); } /* EVENTS!!!! */ $("#orderInfo").on("focusout", function (ev) { // console.log("focusout"); if (ev.target.innerText === "") ev.target.innerText = 0; }); $("#orderInfo").on("keypress", function (ev) { if (ev.keyCode === 13) return false; if (isNaN(parseInt(ev.key))) return false; }); /* $("#orderInfo").on("click", function (ev) { console.log("click"); console.log(ev); if (ev.target.className === "countValue" && parseInt(ev.target.innerText) === 0) ev.target.innerText = ""; let tr = $(ev.target).parents("tr"); let productId = tr[0].id; let hi = tr[0].dataset.historyId; });*/ $("#orderInfo").on("keyup click", function (ev) { // console.log("keyup"); if (ev.target.innerText === "") ev.target.innerText = 0; if (["plus", "minus", "countValue", "cwi"].indexOf(ev.target.className) < 0) return; // // checkLimit: function () { // if (parseInt(frmo.totalPrice) > parseInt(frmo.balance.znachenie)) { // message("Сумма товаров в корзине превышает допустимое значение для этого клиента!", 3); // } // } console.count("EVENT FIXER!!! --- " + ev.type); if (ev.type === "click") { if (ev.target.className === "countValue" && parseInt(ev.target.innerText) === 0) ev.target.innerText = ""; } // if (ev.type === "click" && ["plus", "minus"].indexOf(ev.target.className) >= 0) { console.log("clearTimeout!!!" + frmo.ttt); clearTimeout(frmo.ttt); // } let tr = $(ev.target).parents("tr"); let productId = tr[0].id; let hi = tr[0].dataset.historyId; let li = tr[0].dataset.lineId; let countValue = parseInt($("tr#" + productId + " .countValue")[0].innerText); if (isNaN(parseInt(countValue))) { countValue = 0; if (ev.type === "focusout") $("tr#" + productId + " .countValue")[0].innerText = countValue; } if (isNaN(parseInt(hi)) && countValue === 0 && !$(ev.target).hasClass("cwi")) { if (ev.type !== "click") return; } // плюс/минус!!!! --- редактирование самого значения будет отдельно if ($(ev.target).hasClass("minus") || $(ev.target).hasClass("plus")) { let eventType = $(ev.target)[0].className; countValue = (eventType == "plus") ? countValue + 1 : countValue - 1; if (countValue < 0) return; if (countValue === 0) { j.post(["delete"], function (data) { console.log(data); if (data.status) { frmo.updateLine(productId, data.lineInfo, { calcBlock: data.calcBlock, totalPrice: data.totalPrice }); } }, {historyId: hi, orderId: frmo.orderId, productId: productId}) } else { if (tr.hasClass('addedInOrder')) { debug.cnsl("Редактируем текущее количество товара в заказе"); frmo.editCartItem(li, hi, productId, countValue, 0); } else { debug.cnsl("Добавляем новый товар в заказ"); frmo.addedCartItem(productId, countValue, 0); } } } // редактирование значения if ($(ev.target).hasClass("countValue")) { if (ev.type === "keyup" || ev.type === "focusout") { if (countValue === 0) { j.post(["delete"], function (data) { console.log(data); if (data.status) { frmo.updateLine(productId, data.lineInfo, { calcBlock: data.calcBlock, totalPrice: data.totalPrice }); } }, {historyId: hi, orderId: frmo.orderId, productId: productId}) } else { if (tr.hasClass('addedInOrder')) { debug.cnsl("Редактируем текущее количество товара в заказе"); frmo.editCartItem(li, hi, productId, countValue, 1); } else { debug.cnsl("Добавляем новый товар в заказ"); frmo.addedCartItem(productId, countValue, 1200); } } } } // отмена брони if ($(ev.target).hasClass("cwi") && ev.type === "click") { frmo.cancelWishItem(hi, productId); } }); }, {orderId: path[0]}); }, updateLine: function (productId, data, oData) { if (typeof data !== "object") { debug.cnsl("data ???"); console.log(data); return; } let l = $("tr#" + productId)[0]; l.innerHTML = ""; if (isDefined(oData)) { if (isDefined(oData.totalPrice)) { $(".order-totalPrice")[0].innerHTML = oData.totalPrice; } if (isDefined(oData.calcBlock)) { // $(".limitInfo")[0].innerHTML = "Перелимит! (" + oData.totalPrice + ")"; $(".limitInfo")[0].innerHTML = "Перелимит! (" + oData.perelimValue + ")"; $(".toOrderPage")[0].disabled = true; } else { $(".limitInfo")[0].innerHTML = ""; $(".toOrderPage").removeAttr("disabled"); } } for (let i in frmo.displayOrdering) { let key = frmo.displayOrdering[i]; // let tdCont = data[0][key]; let tdCont = data[key]; if (key === "count") { tdCont = isNaN(parseInt(tdCont)) ? 0 : tdCont; if (isNaN(parseInt(data["total"])) && tdCont == 0) { l.css("color:#000!important;"); $(l).removeClass("addedInOrder"); } else { if (!$(l).hasClass('addedInOrder')) l.classList += "addedInOrder"; l.dataset.historyId = data.historyId; } if (data.available == 1) { tdCont = '-' + '' + tdCont + '' + '+'; if (data.aCount == 0) { tdCont += ' только предзаказ'; } } else tdCont = "Не доступно"; } e(null, l, "td", key).innerHTML = tdCont; } } , editCartItem: function (li, hi, productId, countValue, setTO) { if (setTO === 0) { frmo.editCartRequest(li, hi, productId, countValue); return false; } console.error("SET TIMEOUT FOR --- editCartItem"); frmo.ttt = setTimeout(function () { frmo.editCartRequest(li, hi, productId, countValue); }, 1000); console.error("SETED " + frmo.ttt + " --- editCartItem"); }, editCartRequest: function (li, hi, productId, countValue) { $("tr#" + productId + " .countValue")[0].innerText = countValue; j.post(['update'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo, {calcBlock: data.calcBlock, totalPrice: data.totalPrice}); } else message("Ошибка при редактировании заказа, обратитесь к администрации", "e"); }, { historyId: hi, productId: productId, customerId: sett.user.customerID, count: countValue, orderId: frmo.orderId }); } , addedCartItem: function (productId, countValue, valTO = 0) { console.error("SET TIMEOUT FOR --- addedCartItem"); frmo.ttt = setTimeout(function () { let price = $("tr#" + productId + " .price")[0].innerText; j.post(['insert'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo, {calcBlock: data.calcBlock, totalPrice: data.totalPrice}); } else message("Ошибка при добавлении в заказ", 3); }, { productId: productId, customerId: sett.user.customerID, count: countValue, orderId: frmo.orderId, price: price }); }, valTO); console.error("SETED " + frmo.ttt + " --- addedCartItem"); } , cancelWishItem: function (hi, productId) { j.post(['cwi'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo); } else message("Ошибка при редактировании заказа, обратитесь к администрации", "e"); }, { historyId: hi, productId: productId , orderId: frmo.orderId }); } }; frm[363] = { init: function () { frmo.customerId = sett.user.customerID; j.post(['init'], function (data) { // var methodsList = ''; var methodsList = document.getElementById('shippingMethodId'); methodsList.innerHTML = ""; for (var key in data.methods) { // methodsList += ''; // methodsList[methodsList.length] = new Option(data.methods[key]['name'],key,false,(panelData.customersList[frmo.customerId].defaultShippingMethodId==key) ); methodsList[methodsList.length] = new Option(data.methods[key]['name'], key, (key == "3")); } // document.getElementById('shippingMethodId').innerHTML = methodsList; frmo.display(data.addresses); }, {customerId: frmo.customerId}); }, display: function (addresses) { var body = e('addressesBody'); body.innerHTML = ''; for (var tId in addresses) { var line = e(tId, body, 'tr'); var rowData = addresses[tId]; for (var fieldName in addresses[tId]) { if (fieldName === "defaultAddress") break; var cont = rowData[fieldName]; if (fieldName == 'count') cont = '' + cont + '' e(null, line, 'td', fieldName).innerHTML = cont; } e(null, line, 'td').t('' + (parseInt(rowData["defaultAddress"]) !== 1 ? '' : "") ); } }, pushTransaction: function () { let address = $("#address").val(); address = address.replace(/[^А-Яа-яёЁЇїІіЄєҐґ0-9a-zA-Z.,№-]+/g, ' ').replace(/[\n\r\s\t]+/g, ' '); $("#address").val(address); if (address !== "") { j.post(['insert'], function (data) { debug.cnsl(data); if (data.status) { message("Перейдите в историю заказов, и там сможете выбрать заказ для дальнейшего оформления!", "s", "Успешно!"); panelDataUpdate(function () { frmo.init(frmo.customerId); }); frmo.init(frmo.customerId); } else { message("Ошибка при записи...", 3) } }, { address: address, customerId: frmo.customerId, shippingMethodId: $("#shippingMethodId").val() }); } else message("Адрес не должен быть пустой!", 3); return false; } , delTrans: function (ev) { if (confirm('Вы действительно хотите удалить транзакцию?')) { j.post(['delete'], function (data) { if (data.status) { message('Адрес успешно удален', 1); frmo.init(frmo.customerId); } else message('Ошибка: адрес не может быть удален', 0); }, { prodTransId: ev, customerId: frmo.customerId }); } } , setAsDefAddress: function (ev) { if (confirm('Вы действительно желаете сделать этот адрес основным?')) { j.post(['update'], function (data) { if (data.status) { message('Успешно!', 1); frmo.init(); } else message('Неизвестная ошибка', 0); }, { prodTransId: ev }); } } }; frm[364] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); var dataToShow = data.searchRezult; var line, ctid; for (var key in dataToShow) { var fields = new Array('productName', 'priceRoznica'); var table = e('listBody'); line = e(null, table, 'tr'); if (ctid != dataToShow[key]['ctid']) { line.style = "border-top: 2px #000 solid;"; } ctid = dataToShow[key]['ctid']; for (var k in fields) { var i = fields[k]; var text = dataToShow[key][i]; var bgC = "inherit"; if (i == 'price' || i == 'priceRoznica') text = "" + parseInt(text) + ""; // if (i == 'countOfStock' && parseInt(text) < 0) text = "" + text + ""; // if (i == 'createDate') text = parseDate.shortDate(text); /*if (i == 'status') { bgC = frmo.statuses[dataToShow[key]["statusId"]]["bgColor"]; if (dataToShow[key]['workerName'] != null) text = text + " - " + dataToShow[key]['workerName'] + ""; }*/ e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } } // текущая дата let date = new Date(); $(".hhh")[0].innerHTML += date.getDate() +"/"+ date.getUTCMonth() +"/"+ date.getFullYear(); $(".contactInfo")[0].innerHTML += "+"+panelData.customersList[sett.user.customerID].tel; }, {}); } }; frm[366] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); var dataToShow = data.searchRezult; var line,ctid; for (var key in dataToShow) { var fields = new Array('productName', 'countOfStock','note'); var table = e('listBody'); line = e(null, table, 'tr'); if (ctid != dataToShow[key]['ctid']) { line.style = "border-top: 2px #000 solid;"; } ctid = dataToShow[key]['ctid']; for (var k in fields) { var i = fields[k]; var text = dataToShow[key][i]; var bgC = "inherit"; if (i == 'countOfStock' && parseInt(text)<0 ) text = ""+text+""; if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[dataToShow[key]["statusId"]]["bgColor"]; if (dataToShow[key]['workerName'] != null) text = text + " - " + dataToShow[key]['workerName'] + ""; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } } }, {}); } }; frm[368] = { /* сделать так чтоб можно было сделать возврат полностью заказа, а также его части */ displayOrdering: ['productName', 'count', 'price', 'total'], init: function (path) { if (isDefined(path[0])) { frmo.refId = path[0]; } //клиенты var optList = ''; for (var ct in panelData.customersList) { optList += ''; } document.getElementById('customersList').innerHTML = optList; $("#oNum").on("click", function () { $("#oid").show(); $("#orderContent").empty(); }); $("#hand").on("click", function () { $("#oid").hide(); }); }, updateLine: function (productId, data, oData) { if (typeof data !== "object") { debug.cnsl("data ???"); console.log(data); return; } let l = $("tr#" + productId)[0]; l.innerHTML = ""; if (isDefined(oData)) { if (isDefined(oData.totalPrice)) { $(".order-totalPrice")[0].innerHTML = oData.totalPrice; $("[name='totalPrice']").val(oData.totalPrice); } if (isDefined(oData.calcBlock)) { $(".limitInfo")[0].innerHTML = "Перелимит! (" + oData.totalPrice + ")"; $(".toOrderPage")[0].disabled = true; } else { $(".limitInfo")[0].innerHTML = ""; $(".toOrderPage").removeAttr("disabled"); } } for (let i in frmo.displayOrdering) { let key = frmo.displayOrdering[i]; // let tdCont = data[0][key]; let tdCont = data[key]; if (key === "count") { tdCont = isNaN(parseInt(tdCont)) ? 0 : tdCont; if (isNaN(parseInt(data["total"])) && tdCont == 0) { l.css("color:#000!important;"); $(l).removeClass("addedInOrder"); } else { if (!$(l).hasClass('addedInOrder')) l.classList += "addedInOrder"; l.dataset.historyId = data.historyId; } if (data.available == 1) { tdCont = '-' + '' + tdCont + '' + '+'; if (data.aCount == 0) { tdCont += ' только предзаказ'; } } else tdCont = "Не доступно"; } e(null, l, "td", key).innerHTML = tdCont; } } , editCartItem: function (li, hi, productId, countValue, setTO) { }, editCartRequest: function (li, hi, productId, countValue) { $("tr#" + productId + " .countValue")[0].innerText = countValue; j.post(['update'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo, {calcBlock: data.calcBlock, totalPrice: data.totalPrice}); } else message("Ошибка при редактировании заказа, обратитесь к администрации", "e"); }, { historyId: hi, productId: productId, customerId: sett.user.customerID, count: countValue, orderId: frmo.orderId }); } , addedCartItem: function (productId, countValue) { console.error("SET TIMEOUT FOR --- addedCartItem"); frmo.ttt = setTimeout(function () { let price = $("tr#" + productId + " .price")[0].innerText; j.post(['insert'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo, {calcBlock: data.calcBlock, totalPrice: data.totalPrice}); } else message("Ошибка при добавлении в заказ", 3); }, { productId: productId, customerId: sett.user.customerID, count: countValue, orderId: frmo.orderId, price: price }); }, 1600); console.error("SETED " + frmo.ttt + " --- addedCartItem"); } , cancelWishItem: function (hi, productId) { j.post(['cwi'], function (data) { if (data.status) { frmo.updateLine(productId, data.lineInfo); } else message("Ошибка при редактировании заказа, обратитесь к администрации", "e"); }, { historyId: hi, productId: productId , orderId: frmo.orderId }); } , getOrderList: function (el) { debug.cnsl(el); j.post(["getOrders"], function (data) { // заказы var optList = ''; for (var ct in data.orders) { optList += ''; // optList += ''; } document.getElementById('ordersList').innerHTML = optList; }, {customerId: el.value}); $("#orderId")[0].removeAttribute("disabled") } , getOrderContent: function (el) { debug.cnsl(el); let orderId = ""; if (isDefined(el)) { orderId = el.value; } $("#orderContent").empty(); j.post(["getOrderContent"], function (data) { debug.cnsl(data); frmo.orderContent = data.orderContent; let list = e("orderContent"); for (let line in data.orderContent) { let tr = e(data.orderContent[line]["id"], list, "tr"); tr.dataset.lineId = line; let historyId = data.orderContent[line]['historyId']; for (let i in frmo.displayOrdering) { let key = frmo.displayOrdering[i]; let tdCont = data.orderContent[line][key]; if (key === "count") { // tdCont = ''; tdCont = isNaN(parseInt(tdCont)) ? 0 : tdCont; if (isNaN(parseInt(historyId))) { tr.css("color:#000!important;"); } else { tr.classList += "addedInOrder"; tr.dataset.historyId = historyId; } // if (data.orderContent[line].available == 1) { tdCont = // '-' + '' + tdCont + '' // +'+'; // if (data.orderContent[line].aCount == 0) { // tdCont += ' только предзаказ'; // } // } else tdCont = "Не доступно"; } e(null, tr, "td", key).innerHTML = tdCont; } } frmo.editRefundList(); frmo.calc(); }, {orderId: orderId}); } , editRefundList: function () { $("#orderInfo").on("click focusout", function (ev) { if (["countValue"].indexOf(ev.target.className) < 0) return; let tr = $(ev.target).parents("tr"); let productId = tr[0].id; let countValue = parseInt($("tr#" + productId + " .countValue")[0].innerText); if (isNaN(parseInt(countValue))) { countValue = 0; if (ev.type === "focusout") $("tr#" + productId + " .countValue")[0].innerText = countValue; } // редактирование значения if ($(ev.target).hasClass("countValue")) { if (ev.type === "click") { if (countValue === 0) { $("tr#" + productId + " .countValue")[0].innerText = ""; } } if (ev.type === "keyup" || ev.type === "focusout") { if (countValue === 0) { // очистить строчку tr.removeClass("addedInOrder"); $(tr).children(".total").text(""); } else { if (tr.hasClass('addedInOrder')) { debug.cnsl("пересчитать"); } else { debug.cnsl("Пометить строчку, и посчитать"); tr.addClass("addedInOrder"); } } frmo.calc(tr); } } }); } , calc: function (tr) { if (isDefined(tr)) { let countValue = $(tr).children(".count")[0].innerText; let price = $(tr).children(".price")[0].innerText; if ((countValue * price) > 0) $(tr).children(".total").text(countValue * price); else $(tr).children(".total").text(""); } let ta = $(".total").map(function (i, el) { if (el.innerText != "") return parseInt(el.innerText); }); let vsego = Object.values(ta).reduce(function (a, b) { if (!isNaN(parseInt(b))) return (a + b); else return a; }); $(".order-totalPrice").text(vsego); $("[name='totalPrice']").val(vsego); } , init2: function () { form.init(); } , pushToDB: function () { frmo.scanPage().then((result) => { if (result) { message("Данные готовы, передаём на обработку, ожидайте", "s"); j.post(["refund"], function (data) { if (isDefined(data.rMess)){ message(data.rMess,"s"); frmo.init(); } console.log(data); }, JSON.parse(frmo.rd)); } else{ message("Данные НЕ готовы", "e"); } }); } , scanPage: ()=> { return new Promise(async function (resolve, reject) { let pl = {}; $("tr").map(function (i, el) { if ($(el).hasClass("addedInOrder")) { let id = el.id; let count = $(el).children(".count").text(); let price = $(el).children(".price").text(); pl[id] = {count: count, productId: id, price: price}; } }); if (Object.keys(pl).length === 0) { message("Нужно выбрать хотя-бы что-то."); resolve(false); } let fa = {}; new FormData(document.forms.main).forEach(function (val, key) { if (!isDefined(fa[key])) fa[key] = val; else fa[key] += "," + val; }); ["customerId", "sklad", "finance"].forEach(function (name) { if (!fa.hasOwnProperty(name) || fa[name] === "") { // message("не все обязательные поля заполненны!", "w", "Внимание!"); $("[name='" + name + "']").parents("div")[0].style = "border: 1px solid #f00;" resolve(false); } else { $("[name='" + name + "']").parents("div")[0].style = ""; } }); console.log(pl) frmo.rd = JSON.stringify({fa: fa, pl: pl}); resolve(true); }); } }; frm[369] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); let dataToShow = data.searchRezult; let line, sku = "", stan, ls; let pn, cos, span; let table = e('listBody'); let head = e(null, table, 'thead'); let hLine = e(null, head, 'tr'); let fields = { // Имена колонок 'productName': 'Имя товара', 'countOfStock': 'Реально на складе', 'name': 'Оптовый', 'waitCount': 'Ожидает' }; for (let k in fields) { // Заголовок таблицы debug.cnsl(k); let text = fields[k]; let bgC = "inherit" e(k, hLine, 'th',k).css("background-color:" + bgC).innerHTML = text; } let body = e(null, table, 'tbody'); for (let key in dataToShow) { // Тело таблицы line = e(null, body, 'tr'); ls = ""; if (sku !== dataToShow[key]['sku']) { // реакция на то что продукт ИЗМЕНИЛСЯ!!! stan = parseInt(dataToShow[key]['waitCount']) + parseInt(dataToShow[key]['countOfStock']); ls = "border-top: 1px #000 solid;"; $(pn).attr("rowspan", span); $(cos).attr("rowspan", span); } else { // реакция на то что продукт тот самый stan = parseInt(dataToShow[key]['waitCount']) + stan; span++; } debug.cnsl(stan); if (stan >= 0) { ls = ls + " background-color: #43a04710;"; } else { ls = ls + " background-color: #ff112210;"; } line.style = ls; for (let i in fields) { // let i = fields[k]; let text = dataToShow[key][i]; let bgC = "inherit"; if (i === 'countOfStock' && parseInt(text) < 0) text = "" + text + ""; if (i === 'createDate') text = parseDate.shortDate(text); if (i === 'status') { bgC = frmo.statuses[dataToShow[key]["statusId"]]["bgColor"]; if (dataToShow[key]['workerName'] != null) text = text + " - " + dataToShow[key]['workerName'] + ""; } if (sku !== dataToShow[key]['sku']) { // реакция на то что продукт ИЗМЕНИЛСЯ!!! if (i === 'productName') { let td = e(null, line, 'td', i); pn = td; td.css("background-color:" + bgC).innerHTML = text; } if (i === 'countOfStock') { let td = e(null, line, 'td', i); cos = td; td.css("background-color:" + bgC).innerHTML = text; } span = 1; } if (i !== 'countOfStock' && i !== 'productName') { let td = e(null, line, 'td', i); td.css("background-color:" + bgC).innerHTML = text; } } sku = dataToShow[key]['sku']; // Применение текущего продукта } $(pn).attr("rowspan", span); $(cos).attr("rowspan", span); }, {}); } }; frm[370] = { // API -- 391f396644edf05d72edf3b73dab2959 init: function (path) { // alert("Сделать по весу общему + на форме ожидается номер заказа, и потом по нему берётся кол-во мест, вес, инфо о клиенте") $("input:not(#formid),select").addClass("form-control"); j.post(['init'], function () { np.r('getPayerType', function (resp) { frmo.dataToSelect('PayerType', resp.data, "Sender"); }); np.r('getPaymentMethod', function (resp) { frmo.dataToSelect('PaymentMethod', resp.data, "Cash"); }); np.r('getCargoType', function (resp) { frmo.dataToSelect('CargoType', resp.data, "Parcel"); }); np.r('getServiceType', function (resp) { frmo.dataToSelect('ServiceType', resp.data, "WarehouseWarehouse"); }); // document.getElementById('DateTime').valueAsDate = parseDate.npDate(false,"/"); document.getElementById('DateTime').value = parseDate.dateInputField(); /*******************************************************************************/ console.log(path); if (path.length > 0) { frmo.orderId = path[0]; j.post(["get", "ttnInfo"], function (data) { console.log(data); // return false; let customerData = data.customerInfo; let orderData = data.orderInfo; console.log("xdx"+orderData.ttn); console.log(orderData.ttn); if (orderData.ttn != null) { message("Для этого заказа ТТН уже была создана!", "w","Внимание!"); nav.goTo(352); } $("#RecipientName")[0].value = customerData.name; $("#RecipientsPhone")[0].value = customerData.tel; $("#RecipientCityName")[0].value = orderData.cityName; $("#RecipientAddressName")[0].value = orderData.addressName; $("#InfoRegClientBarcodes")[0].value = orderData.id; $("#SeatsAmount")[0].value = orderData.seatsAmount; $("#Weight")[0].value = orderData.totalWeight; }, {orderId: frmo.orderId}); } }); }, dataToSelect: function (selectElementId, data, selectAsDef) { $('#' + selectElementId).empty(); if (!isDefined(selectAsDef)) $('#' + selectElementId).append(''); for (var key in data) { var Ref = data[key]['Ref']; var name = data[key]['Description']; var ruName = isDefined(data[key]['DescriptionRu']) ? " (рос. " + data[key]['DescriptionRu'] + ")" : ""; $('#' + selectElementId).append(''); } }, cityToSelect: function (selectElementId, data) { $('#' + selectElementId).empty(); for (var key in data) { var AreaDescription = data[key]['AreaDescription']; var Ref = data[key]['Ref']; // var name = data[key]['SettlementTypeDescription']+" "+data[key]['Description'].split(" ")[0]; var name = data[key]['Description']; var extName = data[key]['SettlementTypeDescription'] + " " + name; var ruName = isDefined(data[key]['DescriptionRu']) ? " (рос. " + data[key]['DescriptionRu'] + ")" : ""; // $('#' + selectElementId).append(''); $('#' + selectElementId).append(''); } }, autoCityComplete: function (el) { let cityName = el.value.trim(); let idField = el.id; let elemIdForPushRes = el.list.id; console.log(cityName); if (cityName.length >= 3) { npParams.getCities.methodProperties.FindByString = cityName; np.r('getCities', function (resp) { if (resp.success) { let rd = resp.data; if (cityName !== rd[0].Description) { frmo.cityToSelect(elemIdForPushRes, resp.data); } if (rd.length === 1) { if (cityName !== rd[0].Description) {// вывод в лист результатов frmo.cityToSelect(elemIdForPushRes, resp.data); } } else if (rd.length > 1 && elemIdForPushRes) { // вывод в лист результатов frmo.cityToSelect(elemIdForPushRes, resp.data); } } else debug.cnsl(resp); }); } }, whToSelect: function (selectElementId, data) { console.log(data); $('#' + selectElementId).empty(); for (let key in data) { let Number = data[key]['Number']; let name = data[key]['Description']; $('#' + selectElementId).append(''); } }, autoWhComplete: function (el, Ref = false) { console.log('autoWhComplete'); let cityName = $("#" + el.dataset.cityName).val().trim(); let idField = el.id; let elemIdForPushRes = el.list.id; console.log(cityName); npParams.getWarehouses.methodProperties.CityName = cityName; np.r('getWarehouses', function (resp) { if (resp.success) { let rd = resp.data; // $("[name='" + idField + "']")[0].value = ""; if (Ref) {// только для отправителя console.log("SET REF!"); $("#" + elemIdForPushRes)[0].innerHTML = ""; $("[name='" + idField + "']")[0].value = rd[0].Ref; } else if (elemIdForPushRes) { frmo.whToSelect(elemIdForPushRes, resp.data); } } else debug.cnsl(resp); }); }, createTTN: function (flag = true) { let formData = ff.toObj("npSID"); console.log('createTTN'); console.log(formData); let fa = {}; new FormData(document.forms.npSID).forEach(function (val, key) { if (!isDefined(fa[key])) fa[key] = val; else fa[key] += "," + val; }); fa.DateTime = parseDate.npDate(fa.DateTime); npParams.saveInternetDocument.methodProperties = fa; console.log(npParams.saveInternetDocument); np.r('saveInternetDocument', function (resp) { if (resp.success) { message("ТТН создана успешно!", "s", "Успех!"); debug.cnsl(resp); j.post(["setTTN"],function (data){ if (data.status){ nav.goTo(352); } else { message("Error"); } },{ttn: resp.data[0].IntDocNumber, oderId: frmo.orderId}) } else { message("Передать информацию разработчику!", "e", "Ошибка при создании!"); debug.cnsl(resp); } }); } }; frm[372] = { orderList: ['data', 'totalPrice'], init: function (path) { /* if (isDefined(panelData.customersList[path])) { frmo.customerId = path; $("#customerId").val(frmo.customerId); frmo.filterTrans(); } j.post(['init'], function (data) { debug.cnsl(data); //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //транзакции var translist = ''; for (var ct in data.transType) { translist += ''; } document.getElementById('transType').innerHTML += translist; if (!isDefined(panelData.customersList[path])) frmo.display(data.history); $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; $("#customerId")[0].focus(); }, {});*/ }, display: function (data) { var body = e('transBody'); body.innerHTML = ''; var totalCost = 0; for (var t in data) { var line = e(t, body, 'tr'); totalCost += parseFloat(data[t]['totalPrice']); for (var i in frmo.orderList) { var f = frmo.orderList[i]; var cont = data[t][f]; /* if (f == 'transType') { var znak = ""; switch (data[t]['transTypeId']) { case '0': { znak = 'icon-droplet'; break; } case '1': { znak = 'icon-arrow-left7 text-danger'; break; } default: { znak = 'icon-arrow-right7 text-success'; break; } } cont = '
' + cont + (data[t]['transTypeId'] == 1 || data[t]['transTypeId'] == 3 ? ' #' + data[t]['orderId'] : '') + '
' + (data[t]['paymentMethod'] ? '(' + data[t]['paymentMethod'] + ')' : '') + ''; } else*/ if (f == 'amount') cont = '' + cont + '' e(null, line, 'td', f).innerHTML = cont; } // if (data[t]['transTypeId'] != 1 || (data[t]['transTypeId'] == 1 && data[t]['orderId'] == null)) // if (data[t]['orderId'] == null) // e(null, line, 'td').t(''); // else e(null, line, 'td'); } /*if (document.getElementById('customerId').value != '') { document.getElementById('totalAmount').innerHTML = " ************* Общий баланс клиента: " + totalCost + ""; document.getElementById('totalAmount').classList.remove('hidden'); } else document.getElementById('totalAmount').classList.add('hidden');*/ document.getElementById('totalAmount').innerHTML = totalCost; }, filterTrans: function () { var fd = ff.toObj('searchRequest'); j.post(['filter'], function (data) { frmo.display(data.history); }, fd) }, delTrans: function (ev) { if (confirm('Вы действительно хотите удалить транзакцию?')) { j.post(['delete'], function (data) { if (data.status) { message('Транзакция успешно удалена', 1); frmo.init(); } else message('Ошибка: транзакция не может быть удалена', 0); }, {transId: ev}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; $('#orderInfo .panel-title').prepend(panelData.customersList[t.value].name); frmo.filterTrans(); } }, 300); } }; frm[373] = { orderList: ['oId', 'zero'], init: function (path) { if (isDefined(panelData.customersList[path])) { frmo.customerId = path; $("#customerId").val(frmo.customerId); frmo.filterTrans(); } j.post(['init'], function (data) { debug.cnsl(data); //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //транзакции /*var translist = ''; for (var ct in data.transType) { translist += ''; } document.getElementById('transType').innerHTML += translist;*/ frmo.totalCost = data.total; if (!isDefined(panelData.customersList[path])) frmo.display(data.history); $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; $("#customerId")[0].focus(); }, {}); }, display: function (data) { var body = e('transBody'); body.innerHTML = ''; for (var t in data) { var line = e(t, body, 'tr'); //totalCost += parseFloat(data[t]['amount']); for (var i in frmo.orderList) { var f = frmo.orderList[i]; var cont = data[t][f]; if (f == 'transType') { var znak = ""; switch (data[t]['transTypeId']) { case '0': { znak = 'icon-droplet'; break; } case '1': { znak = 'icon-arrow-left7 text-danger'; break; } default: { znak = 'icon-arrow-right7 text-success'; break; } } cont = '
' + cont + (data[t]['transTypeId'] == 1 || data[t]['transTypeId'] == 3 ? ' #' + data[t]['orderId'] : '') + '
' + (data[t]['paymentMethod'] ? '(' + data[t]['paymentMethod'] + ')' : '') + ''; } else if (f == 'amount') cont = '' + cont + '' e(null, line, 'td', f).innerHTML = cont; } // if (data[t]['transTypeId'] != 1 || (data[t]['transTypeId'] == 1 && data[t]['orderId'] == null)) /*if (data[t]['orderId'] == null) e(null, line, 'td').t(''); else e(null, line, 'td');*/ } if (document.getElementById('customerId').value != '') { document.getElementById('totalAmount').innerHTML = " ************* Общий баланс клиента: " + frmo.totalCost + ""; document.getElementById('totalAmount').classList.remove('hidden'); } else document.getElementById('totalAmount').classList.add('hidden'); }, filterTrans: function () { var fd = ff.toObj('searchRequest'); j.post(['filter'], function (data) { frmo.totalCost = data.total; frmo.display(data.history); }, fd) }, delTrans: function (ev) { if (confirm('Вы действительно хотите удалить транзакцию?')) { j.post(['delete'], function (data) { if (data.status) { message('Транзакция успешно удалена', 1); frmo.init(); } else message('Ошибка: транзакция не может быть удалена', 0); }, {transId: ev}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; $('#orderInfo .panel-title').prepend(panelData.customersList[t.value].name); frmo.filterTrans(); } }, 300); } }; frm[374] = { orderList: ['oId', 'zero'], init: function (path) { if (isDefined(panelData.customersList[path])) { frmo.customerId = path; $("#customerId").val(frmo.customerId); frmo.filterTrans(); } j.post(['init'], function (data) { debug.cnsl(data); //клиенты var optList = ''; for (var ct in data.customers) { optList += ''; } document.getElementById('customersList').innerHTML = optList; //транзакции /*var translist = ''; for (var ct in data.transType) { translist += ''; } document.getElementById('transType').innerHTML += translist;*/ frmo.totalCost = data.total; if (!isDefined(panelData.customersList[path])) frmo.display(data.history); $("#customerId")[0].style = "box-shadow: 1px 1px 8px 0px green;"; $("#customerId")[0].focus(); }, {}); }, display: function (data) { var body = e('transBody'); body.innerHTML = ''; for (var t in data) { var line = e(t, body, 'tr'); //totalCost += parseFloat(data[t]['amount']); for (var i in frmo.orderList) { var f = frmo.orderList[i]; var cont = data[t][f]; if (f == 'transType') { var znak = ""; switch (data[t]['transTypeId']) { case '0': { znak = 'icon-droplet'; break; } case '1': { znak = 'icon-arrow-left7 text-danger'; break; } default: { znak = 'icon-arrow-right7 text-success'; break; } } cont = '
' + cont + (data[t]['transTypeId'] == 1 || data[t]['transTypeId'] == 3 ? ' #' + data[t]['orderId'] : '') + '
' + (data[t]['paymentMethod'] ? '(' + data[t]['paymentMethod'] + ')' : '') + ''; } else if (f == 'amount') cont = '' + cont + '' e(null, line, 'td', f).innerHTML = cont; } // if (data[t]['transTypeId'] != 1 || (data[t]['transTypeId'] == 1 && data[t]['orderId'] == null)) /*if (data[t]['orderId'] == null) e(null, line, 'td').t(''); else e(null, line, 'td');*/ } if (document.getElementById('customerId').value != '') { document.getElementById('totalAmount').innerHTML = " ************* Общий баланс клиента: " + frmo.totalCost + ""; document.getElementById('totalAmount').classList.remove('hidden'); } else document.getElementById('totalAmount').classList.add('hidden'); }, filterTrans: function () { var fd = ff.toObj('searchRequest'); j.post(['filter'], function (data) { frmo.totalCost = data.total; frmo.display(data.history); }, fd) }, delTrans: function (ev) { if (confirm('Вы действительно хотите удалить транзакцию?')) { j.post(['delete'], function (data) { if (data.status) { message('Транзакция успешно удалена', 1); frmo.init(); } else message('Ошибка: транзакция не может быть удалена', 0); }, {transId: ev}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; $('#orderInfo .panel-title').prepend(panelData.customersList[t.value].name); frmo.filterTrans(); } }, 300); } }; frm[375] = { init: function () { j.post(['init'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.statuses = data.statuses; frmo.orderStatusId = ""; frmo.customerId = ""; for (var key in data.customers) { $('#customerIds').append(''); } for (var key in data.statuses) { // == "Удалён" ? "Посмотреть корзину":data.statuses[key]['name'] var name = data.statuses[key]['name']; $('.orderStatusId').append(''); } frmo.viewOrderList(); /* 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(); }*/ // $('.customerIds').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(); // }); }, {orderStatusId: "forWork"}); } , loadOrder: function () { $('#formsTbody,.nothingMsg').empty(); let fieldsData = ff.toObj('heading-elements'); debug.cnsl(fieldsData); let value = ""; // let orderStatusId = "forWork"; /* if (ev.value != "all") { value = ev.value; } if (ev.name == "orderStatusId") { orderStatusId = value; } */ if (fieldsData.customerId!="" || (fieldsData.dateFrom!="" && fieldsData.dateTo!="") ) { frmo.customerId = value; if (fieldsData.orderStatusId === "forWork") fieldsData.orderStatusId = ""; } // fieldsData.orderStatusId = orderStatusId; fieldsData.customerId = frmo.customerId; j.post(['init', 'loadOrders'], function (data) { debug.cnsl(data); frmo.orders = data.orders; frmo.viewOrderList(); }, fieldsData); } , viewOrderList: function () { for (var key in frmo.orders) { var fields = ['id', 'status', 'totalPrice', 'customer']; var table = e('formsTbody'); var line = e(frmo.orders[key]['id'], table, 'tr', "line " + frmo.orders[key]['id']); if (frmo.orders[key]['statusId'] == 11) { // line.css("background-color:#bae2c7;") line.css("background-color:#e2baba;") } if (frmo.orders[key]['statusId'] == 12) { line.css("background-color:rgb(153 205 246);") } let bgC = ""; for (let k in fields) { let i = fields[k]; let text = frmo.orders[key][i]; // debug.cnsl(frmo.orders[key]); if (i == 'createDate') text = parseDate.shortDate(text); if (i == 'status') { bgC = frmo.statuses[frmo.orders[key]["statusId"]]["bgColor"]; // if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; if (frmo.orders[key]['ttn'] != null) text = "" + text + " - " + frmo.orders[key]['ttn'] + ""; else if (frmo.orders[key]['workerName'] != null) text = "" + text + " - " + frmo.orders[key]['workerName'] + ""; } if (i == 'id') { text = '' + text + ''; text = text + " от " + frmo.orders[key]['cd']; } e(null, line, 'td', i).css("background-color:" + bgC).innerHTML = text; } e(null, line, 'td', 'actions').innerHTML = frmo.getActionOrderButtons(frmo.orders[key]); } $('.line :is(i,button):not(.removeOrder)').on("click", function (ev) { debug.cnsl(ev.target); let id = $(ev.target).parents('tr')[0].id; let bgC = ""; j.post(['get', 'orderUpdatedInfo'], function (data) { let trInfo = data.orderUpdatedInfo; if (trInfo.id) { let trs = $("#" + id)[0].cells; for (let i in trs) { let tr = trs[i]; let cn = tr.className; if (isDefined(trInfo[cn])) { let text = trInfo[cn]; if (cn == 'status') { bgC = frmo.statuses[trInfo["statusId"]]["bgColor"]; if (trInfo['workerName'] != null) text = "" + text + " - " + trInfo['workerName'] + ""; } if (cn == 'id') { text = '' + text + ''; text = text + " от " + frmo.orders[key]['cd']; } $(tr)[0].css("background-color:" + bgC).innerHTML = text; } else if (cn == "actions") { $(tr)[0].innerHTML = frmo.getActionOrderButtons(trInfo); } } } }, {id: id}); }); } , getActionOrderButtons: function (order) { let inH = ''; switch (parseInt(order["statusId"])) { case 1: { inH = '' + ' '; break; } case 2: { inH = '' + ' '; break; } case 4: { // передан на упаковку inH = '' + ''; break; } case 5: { // упаковка в процессе inH = '' + ''; break; } case 6: { // упакован if (order['shippingMethodId'] == 1) {// => на загрузку inH = '' + ''; } else if (order['shippingMethodId'] == 6) {// => на самовывоз inH = '' + ''; } else {// => на усмотрение inH = 'подготовить к отправке вручную' + ' '; } break; } case 8: { // готов к отправке inH = '' + ''; break; } case 10: { // готов к самовывозу inH = '' + ''; break; } } if (parseInt(order["totalPrice"]) > 0) inH += '' + ''; else inH += ''; return inH; } , setToFinish: function (orderId) { if (confirm("Вы точно желаете сделать заказ " + orderId + " завершённым?")) { j.post(['update', 'setToFinish'], function (data) { if (data.status) { message("Успешно перемещён в \"Завершённые\"!", 1); $(".line." + orderId)[0].remove(); // frmo.init(); } }, {orderId: orderId}); } } , deleteOrder: function (orderId) { if (confirm('Вы действительно хотите удалить заказ ' + orderId + '?')) if (confirm('ВСЕ данные из этого заказа(' + orderId + ', и накладная в том числе будет удалена без возможности восстановления! Точно желаете продолжить?')) j.post(['delete', 'order'], function (data) { if (data.affected_rows == 1) { message('Заказ успешно удалён!', 1); message('Внимание! если в заказе были товары, то они были возвращенны на склад обратно', 1); $("#" + orderId + ".line").remove(); } else message('При удалении заказа возникла ошибка. Свяжитесь с администратором.', 0); }, {orderId: orderId}); } , withdraw: function (orderId) { if (confirm("Вы точно желаете отозвать заказ " + orderId + "?")) { alert("Для продолжения, разорвите накладную, по которой идёт упаковка, и нажмите 'OK'") if (confirm("Вы уже уничтожили распечатанную накладную?")) { // message("Эта функция ещё в разработке"); // return false; j.post(['update', 'withdraw'], function (data) { if (data.status && parseInt(data.checkValue) === 1111) { message("Заказ успешно отозван!"); } }, {orderId: orderId}); } } } , gotovNaOtdachy: function (orderId) { if (confirm("Это включит готовность к Выдаче! Всё верно?")) { j.post(['update', 'naOtdachy'], function (data) { if (data.status) { message("Заказ успешно помечен!"); } }, {orderId: orderId}); } } , gotovNaOtpravky: function (orderId) { if (confirm("Это включит готовность к Загрузке! Всё верно?")) { j.post(['update', 'naOtpravky'], function (data) { if (data.status) { message("Заказ успешно помечен!"); } }, {orderId: orderId}); } } , oninputCustomerId: function (t) { clearTimeout(frmo.ttt); frmo.ttt = setTimeout(function () { if (isDefined(panelData.customersList[t.value]) || t.value == "") { frmo.customerId = t.value; frmo.loadOrder(t); } }, 600); } };