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 = '';
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 += '';
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'] ;
if(typeof frmo.orders[key]['ttn'] == "string")
text = text +'(Відстежити)';
}
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();
//console.log(date.getUTCMonth());
// console.log(date);
// $(".hhh")[0].innerHTML += date.getDate() +"."+ date.getUTCMonth() +"."+ date.getFullYear();
$(".hhh")[0].innerHTML +=data.date;
$(".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);
}
};