window.OrderModulDefault={
actionFunction: function () {},
}
class DataModelOrder extends DataModel{
/*
* Constructor
*/
constructor (data,options) {
super(data,options)
if(typeof this.productSelected ==="undefined"){
this.productSelected={};
}
if(typeof this.productComment ==="undefined"){
this.productComment={};
}
console.log(this.constructor.name+' constructor called');
};
};
window.DataModelOrder=DataModelOrder;
window.Stepper=function () {
/*
* Variables accessible
* in the class
*/
let Opts = {
complete: ['supplier'],
available: ['supplier', 'parameter', 'productSelect', 'invoice', 'send'],
enable: ['supplier', 'invoice'],
load: [],
excludeLoaded:['invoice','send'],
loaded: [],
active: false,
URL: {
create: '',
},
UrlData:false,
onAfterLoad:function () {},
onAfterActivate:function () {},
autoCallback:{
'invoice':{
onAfterActivate:function () {},
},
'send':{
onAfterActivate:function () {},
},
},
nowLoaded:false,
};
let root=this;
/*
* Constructor
*/
this.construct = function (options) {
$.extend(Opts, options);
};
this.getOpts=function(){
return Opts;
}
this.setOpts=function(options){
$.extend(Opts, options);
}
this.init=function (options){
$.extend(Opts, options);
debug(Opts);
$('.step').each(function(){
let stepName=$(this).data('stepname');
if(Opts.complete.includes(stepName)){
root.setCompleted(stepName);
}
if(Opts.enable.includes(stepName)){
root.setEnabled(stepName);
}
if(Opts.load.includes(stepName)){
root.loadStepContent(stepName);
}
if(Opts.active===stepName){
root.setActive(stepName);
}
});
root.bindClickAction();
}
this.bindClickAction=function (){
let stepClickButtons=$('.stepClick');
stepClickButtons.off('click');
stepClickButtons.on('click',root.stepClick);
}
this.setCompleted=function (stepName){
console.log(stepName+' completed');
$('.step[data-stepName="'+stepName+'"]').addClass('completed');
}
this.unsetCompleted=function (stepName){
console.log(stepName+' Uncompleted');
$('.step[data-stepName="'+stepName+'"]').removeClass('completed');
Opts.complete=arrayRemove(Opts.complete,stepName);
}
this.unsetEnabled=function (stepName){
console.log(stepName+' Un enabled');
$('.click'+stepName).contents().unwrap();
Opts.enable=arrayRemove(Opts.enable,stepName);
}
this.setEnabled=function (stepName){
console.log(stepName+' enabled');
let stepItem=$('.step[data-stepName="'+stepName+'"]');
stepItem.html(''+stepItem.html()+'');
root.bindClickAction();
//$('.stepClick').click(root.stepClick);
}
this.addEnabled=function(stepName){
if(!Opts.enable.includes(stepName)){
Opts.enable.push(stepName);
}
root.setEnabled(stepName);
}
this.addCompleted=function(stepName){
if(!Opts.complete.includes(stepName)){
Opts.complete.push(stepName);
}
root.setCompleted(stepName);
root.bindClickAction();
}
this.loadStepContent=function (stepName){
let data={'type':stepName};
$.extend(data, Opts.UrlData);
$.ajax({
async: true,
type: "GET",
url: Opts.URL.create,
data: data,
cache: false,
success: function(result)
{
let container=$('.SC'+stepName.capitalize());
if($.inArray(stepName,Opts.excludeLoaded)==-1){
Opts.loaded.push(stepName);
}else{
console.log('excluded View');
}
container.html(result);
if(Opts.nowLoaded){
Opts.nowLoaded(stepName);
}
Opts.onAfterLoad();
}
});
}
this.clearLoaded=function () {
Opts.loaded=['supplier'];
$('.stepContainer').each(function(){
/*
console.log(this.classList);
console.log(this.classList.contains('SCSupplier'));
console.log($(this).attr('class'));
*/
if(!this.classList.contains('SCSupplier')){
$(this).html('');
}
});
}
this.setActiveFinish=function(stepName){
let container=$('.SC'+stepName.capitalize());
if(stepName==='productSelect'){
$('.containerStepper').addClass('activeSideBar');
}else{
$('.containerStepper').removeClass('activeSideBar');
}
debug('setActiveFinish show:'+stepName);
container.show();
Opts.nowLoaded=false;
root.active=stepName;
Opts.onAfterActivate();
if(typeof Opts.autoCallback[stepName]!=='undefined' ){
Opts.autoCallback[stepName].onAfterActivate();
}
}
this.setActive=function(stepName){
$('.stepContainer').hide();
if(!Opts.loaded.includes(stepName)){
root.loadStepContent(stepName);
Opts.nowLoaded=this.setActiveFinish;
}else{
this.setActiveFinish(stepName);
}
}
this.stepClick=function(event){
event.preventDefault();
let stepName=$(event.currentTarget).data('stepname');
console.log('setActive:'+stepName);
root.setActive(stepName);
}
}
window.OrderModule = function () {
/*
* Variables accessible
* in the class
*/
let Opts = {
testMode: false,
needStepper:true,
CSSSelectorForm:'.orderParameterForm',
defaultDeliveryDate:'',
dataSyncPauseTime:500,
token:null,
URL: {
root:null,
getDataTableContentProductList:null,
checkReadyToSend:null,
index:null,
show:null,
edit:null,
create: null,
store: null,
update:null,
destroy:null,
toggleFavorites:null,
},
};
const PublicVar = {};
let PublicVar2 = {'asd': '21'};
let ApiToken = null;
let Order=null;
let root = this;
let viewInicialized=[];
this.setOpts = function (options) {
$.extend(Opts, options);
}
this.getOpts = function () {
return Opts;
}
this.clickOrderEdit=function (data){
debug('clickEdit');
debug(data);
let ajaxUrl=Opts.URL.edit.replace('%id%',data.id);
APP.loadMainContent(ajaxUrl);
/* let ajaxData={};
ajaxData._token=Opts.token;
$.extend(ajaxData,Order);
let ajaxUrl=Opts.URL.edit.replace('%id%',data.id);
$.ajax({
url: ajaxUrl,
method:'GET',
data:ajaxData,
success:function (response) {
if(response.success){
let orderData=response.data;
orderData.supplierId=orderData.supplier_id;
delete(orderData.supplier_id);
root.initOrder(orderData);
root.initStepper();
//root.afterOrderSetSupplierOk(data.data);
}
}
});*/
}
this.afterOrderDeleted=function (data){
if(data.success==true){
debug('Order delete success');
APP.loadMainContent(Opts.URL.index);
}else{
Toast.create({ title: "Error deleted !", message: '', status: TOAST_STATUS.DANGER, timeout: 5000 });
}
}
this.clickOrderDeleteConfirmed=function (event){
debug('clickOrderDeleteConfirmed');
debug(event);
debug(event.data);
$('#dialogModal').modal('hide');
let ajaxData={};
ajaxData._token=Opts.token;
let ajaxUrl=Opts.URL.destroy.replace('%id%',event.data.id);
$.ajax({
url:ajaxUrl,
data:ajaxData,
method:"DELETE",
success:root.afterOrderDeleted,
//error:ajaxErrorHandler
});
}
this.initViewOrderSelect=function (){
debug('called initViewOrderSelect ');
$('.ordersSelectTable button').off('click');
$('.ordersSelectTable button').on('click',function (){
let action=$(this).data('action');
let orderId=$($(this).closest('tr')[0]).data('orderid');
debug(action);
debug(orderId);
if(action=='delete'){
$('#dialogModal').on('show.bs.modal', function (event) {
// If necessary, you could initiate an AJAX request here (and then do the updating in a callback).
// Update the modal's content. We'll use jQuery here, but you could use a data binding library or other methods instead.
var modal = $(this);
modal.find('.modal-title').text('Megerősítés ');
modal.find('.modal-body').text('Biztosan törli a megrendelést?');
modal.find('.buttonYes').off('click');
modal.find('.buttonYes').on('click',{id:orderId},root.clickOrderDeleteConfirmed);
});
$('#dialogModal').modal('show');
}else{
root.clickOrderEdit({id:orderId});
}
});
$('.buttonNew').off('click');
$('.buttonNew').on('click',function (){
APP.loadMainContent(Opts.URL.index,'force=true');
});
}
this.initStepper=function (){
debug(Order.getData());
viewInicialized=[];
$('.statusNamePlace').text('Nincs elküldve');
$('.statusNamePlace').addClass('statusBlink');
root.setDeliveryDate('-');
root.setSupplier('-');
let unEnabled=['parameter', 'productSelect', 'invoice', 'send'];
$.each(unEnabled,function (index,value) {
root.Stepper.unsetEnabled(value);
root.Stepper.unsetCompleted(value);
});
debug(root.Stepper.getOpts()['available']);
debug(Order.getData()['orderStatus']);
let stepActive='supplier';
let stepComplete=['supplier'];
let stepEnable=[];
let stepOnAfterActivate=function (){};
let avalaibleSteps=root.Stepper.getOpts()['available'];
let stepUrlData=false;
let stepAutoCallback=[];
for (let stepName of avalaibleSteps) {
stepOnAfterActivate=this['initView'+stepName.capitalize()];
let item={};
item['onAfterActivate']=stepOnAfterActivate;
stepAutoCallback[stepName]=item;
}
debug(stepAutoCallback);
debug(Order.getData()['id']);
if(Order.getData()['id']>0){
debug('hajra');
debug(Order.getData());
if(Order.getData()['deliveryDate']){
root.setDeliveryDate(Order.getData()['deliveryDate']);
/*
@todo: weekly-t beallitani
*/
}
if(Order.getData()['supplierName']){
root.setSupplier(Order.getData()['supplierName']);
}
stepUrlData={'supplierId':Order.supplierId,id:Order.id};
for (let stepName of avalaibleSteps) {
console.log(stepName);
stepComplete.push(stepName);
stepEnable.push(stepName);
if(Order.getData()['orderStatus']==stepName){
stepActive=stepName;
/*
debug('initView'+stepName.capitalize());
if(stepName!=='invoice' && stepName!=='send'){
stepOnAfterActivate=this['initView'+stepName.capitalize()];
}else{
stepOnAfterActivate=function (){};
}
*/
break;
}
}
/*
//refactored for loop
var BreakException = {};
try {
avalaibleSteps.forEach(function(stepName) {
console.log(stepName);
stepComplete.push(stepName);
stepEnable.push(stepName);
if(Order.getData()['orderStatus']==stepName){
stepActive=stepName;
throw BreakException;
}
});
} catch (e) {
if (e !== BreakException) throw e;
}*/
}
root.Stepper.init({
complete:stepComplete,
enable:stepEnable,
loaded:[],
active: stepActive,
URL: {
create: Opts.URL.create,
},
UrlData:stepUrlData,
onAfterActivate:stepOnAfterActivate,
autoCallback: stepAutoCallback,
/*{
invoice: {
onAfterActivate:root.initViewInvoice
},
send: {
onAfterActivate:root.initViewSend
},
}*/
});
}
this.initOrder=function (data){
Order=new DataModelOrder(data);
}
this.init = function (options) {
debug('OrderModul init called');
$.extend(Opts, window.OrderModulDefault, options);
Order=new DataModelOrder();
if(Opts.needStepper){
if (typeof this.Stepper == 'undefined') {
this.Stepper=new Stepper();
}
}
if(Opts.testMode){
return root.testMode();
}
}
this.setSupplier=function (supplierName,supplierId){
if(supplierName){
$('.supplierNamePlace').text(supplierName);
}
if(supplierId){
Order.setData({supplierId:supplierId});
root.Stepper.setOpts({'UrlData':{'supplierId':supplierId}});
}
}
this.setDeliveryDate=function (dateText,dateTextTo){
let dateTextHuman=dateText.replaceAll('-','.')+'.';
if(dateTextHuman.length<5){
$('.deliveryDatePlace').text(dateText);
return;
}
if(dateTextTo){
dateTextHuman+=' - '+dateTextTo.replaceAll('-','.')+'.';
}
$(Opts.CSSSelectorForm+' .selectedDateText').text(dateTextHuman);
$('.deliveryDatePlace').text(dateTextHuman);
$(Opts.CSSSelectorForm+' input[name="deliveryDate"]').val(dateText);
}
this.getData=function (){
return Order;
}
this.setSupplierCompleted=function () {
console.log('bingo');
root.initViewParameter()
}
this.afterOrderSetSupplierOk=function (data) {
Toast.create({ title: "Supplier selected !", message: data.supplier.name , status: TOAST_STATUS.INFO, timeout: 5000 });
root.setSupplier(data.supplier.name,data.supplier.id);
Order.setData({id:data.id});
root.Stepper.setOpts({'UrlData':{'supplierId':Order.supplierId,id:Order.id}});
//root.Stepper.setOpts({onAfterLoad:root.setSupplierCompleted})
root.Stepper.setEnabled('parameter');
root.Stepper.addCompleted('parameter');
root.Stepper.setCompleted('parameter');
root.Stepper.setActive('parameter');
}
this.initViewSupplier=function (){
debug('call initViewSupplier');
root.Stepper.setOpts({onAfterLoad:function (){}});
$('.supplierItem').off('click');
$('.supplierItem').on('click',function(event){
console.log(Order.getData());
event.preventDefault();
let supplierId=$(event.currentTarget).data('id');
let supplierName=$(event.currentTarget).find('h5.card-title').text();
if(typeof Order.supplierId=='undefined'){
//new order
let ajaxData={};
ajaxData._token=Opts.token;
ajaxData.supplierId=supplierId;
ajaxData.storeType='supplierSelect';
$.extend(ajaxData,Order);
$.ajax({
url: Opts.URL.store,
method:'POST',
data:ajaxData,
success:function (data) {
if(data.success){
root.afterOrderSetSupplierOk(data.data);
}
}
});
//Order.setData({supplierId:supplierId});
}else{
//ide kellene egy jo kis kerdes
if(Order.supplierId!=supplierId){
Toast.create({ title: "Supplier change to!", message: supplierName, status: TOAST_STATUS.WARNING, timeout: 5000 });
root.Stepper.clearLoaded();
Order=new DataModelOrder();
//Order.setData({supplierId:supplierId});
}
}
return;
console.log('-----------');
console.log(root.Stepper.getOpts());
console.log('-----------');
//$('.supplierNamePlace').text(supplierName);
root.setSupplier(supplierName,supplierId);
console.log(supplierName)
//@todo:ide kell egy mentes!
//@todo:mentes eredemenyekeppen lehet valtani
event.preventDefault();
root.Stepper.setOpts({onAfterLoad:root.setSupplierCompleted})
root.Stepper.setEnabled('parameter');
root.Stepper.addCompleted('parameter');
root.Stepper.setCompleted('parameter');
root.Stepper.setActive('parameter');
});
}
this.checkContactNameField=function () {
let CSSSelectorForm='.orderParameterForm';
let node=$(CSSSelectorForm+' input[name=contactName]');
if(node.val().length<2){
node.removeClass('is-valid');
node.addClass('is-invalid');
return false;
}else{
node.addClass('is-valid');
node.removeClass('is-invalid');
return true;
}
}
this.sendOrderDataToServer=function (updateType,callback,errorCallback) {
let ajaxData= {};
let ajaxUrl=Opts.URL.store;
let ajaxMethod="POST";
if(Order.id){
ajaxUrl=Opts.URL.update.replace('%id%',Order.id);
//ajaxMethod="PUT";
//ajaxData=new FormData($(CSSSelectorForm)[0]);
ajaxData._method='PUT';
}
ajaxData._token=Opts.token;
ajaxData.updateType=updateType;
$.extend(ajaxData,Order);
debug(Order);
debug(ajaxData);
debug('ajaxUrl:'+ajaxUrl);
ajaxData=jsonToFormData(ajaxData);
$.ajax({
url:ajaxUrl,
data:ajaxData,
type:ajaxMethod,
contentType:false,
processData: false,
success:function (data) {
debug('ajax returned data');
debug(data);
if(data.success){
//root.afterOrderSetSupplierOk(data.data);
callback(data);
}
},
error: function (xhr, ajaxOptions, thrownError) {
ajaxErrorHandler(xhr, ajaxOptions, thrownError);
if(typeof errorCallback!='undefined'){
errorCallback(xhr.responseJSON);
}
},
});
}
this.afterOrderSetParameterOk=function (data) {
debug('called afterOrderSetParameterOk');
root.Stepper.setOpts({'UrlData':{'supplierId':Order.supplierId,'id':Order.id}});
//root.Stepper.setOpts({onAfterLoad:root.setParameterCompleted})
root.Stepper.setEnabled('productSelect');
root.Stepper.addCompleted('productSelect');
root.Stepper.setCompleted('productSelect');
root.Stepper.setActive('productSelect');
}
this.selectCurrentWeek = function() {
console.error('selectCurrentWeek');
console.error($('.ui-datepicker').find('.ui-datepicker-current-day a'));
$('.ui-datepicker').find('.ui-datepicker-current-selected-weekday a').addClass('ui-state-active')
}
this.weekHover = function() {
console.error('hover Active');
$('.ui-datepicker-calendar tr').off('mousemove');
$('.ui-datepicker-calendar tr').off('mouseleave');
$('.ui-datepicker-calendar tr').on('mousemove', function() { $(this).find('td a').addClass('ui-state-hover'); });
$('.ui-datepicker-calendar tr').on('mouseleave', function() { $(this).find('td a').removeClass('ui-state-hover'); });
}
this.weekHoverSlow = function() {
console.error('weekHoverSlow');
if($('.ui-datepicker-calendar tr').length<1){
setTimeout(root.weekHoverSlow, 1);
return;
}
root.weekHover();
}
this.initDatePicker=function (type) {
console.error('asdasdadad');
console.log('tipus' + type);
let CSSSelectorForm = '.orderParameterForm';
let startDate=new Date('1900-01-01');
let endDate=new Date('1900-01-02');
$(CSSSelectorForm + ' .datePicker').datepicker("destroy");
if (type == 'weekly') {
$(CSSSelectorForm + ' .datePicker').datepicker({
showOtherMonths: true,
selectOtherMonths: true,
showWeek: true,
dateFormat: 'yy-mm-dd',
firstDay: 1,
minDate: new Date(),
afterShow: function (dateText, inst) {
root.weekHover();
root.selectCurrentWeek();
},
onSelect: function (dateText, inst) {
let date = $(this).datepicker('getDate');
startDate = new getMonday(date);
endDate = new Date(date.getFullYear(), date.getMonth(), date.getDate() - date.getDay() + 7);
root.setDeliveryDate($.datepicker.formatDate( 'yy-mm-dd',startDate),$.datepicker.formatDate( 'yy-mm-dd',endDate))
},
beforeShow: function () {
console.group('beforeShow')
console.log(startDate);
console.log(endDate);
//root.weekHoverSlow();
console.groupEnd();
},
beforeShowDay: function(date) {
console.group('beforeShowDay');
console.log(date.toLocaleDateString('hu-Hu'));
let cssClass = '';
if(date >= startDate && date <= endDate){
console.error(date.toLocaleDateString('hu-Hu'));
cssClass = 'ui-datepicker-current-selected-weekday';
//cssClass = 'ui-state-active';
}
console.log(cssClass);
console.groupEnd();
return [true, cssClass];
},
onChangeMonthYear: function(year, month, inst) {
//root.selectCurrentWeek();
}
});
} else {
$(CSSSelectorForm + ' .datePicker').datepicker({
dateFormat: 'yy-mm-dd',
minDate: new Date(),
onSelect: function (dateText) {
$(CSSSelectorForm + ' .selectedDateText').text(dateText);
$('.deliveryDatePlace').text(dateText.replaceAll('-', '.') + '.');
$(CSSSelectorForm + ' input[name="deliveryDate"]').val(dateText);
},
});
}
}
this.callChangeOrderType=function(){
console.log(this);
console.log(this.value);
root.initDatePicker(this.value);
//enum('daily', 'weekly')
/*let CSSSelectorForm='.orderParameterForm';
let node=$(CSSSelectorForm+' input[name=contactName]');
if(node.val().length<2){
node.removeClass('is-valid');
node.addClass('is-invalid');
return false;
}else{
node.addClass('is-valid');
node.removeClass('is-invalid');
return true;
}
*/
}
this.initViewParameter=function () {
debug('call initViewParameter');
root.Stepper.setOpts({onAfterLoad:function (){}});
let CSSSelectorForm='.orderParameterForm';
$(CSSSelectorForm+' .datePickerClick').click(function(){
$(CSSSelectorForm+' .datePicker').datepicker('show');
});
$(CSSSelectorForm+' .orderParameterDeliveryAddress').select2({}).show();
$(CSSSelectorForm+' input[name=contactName]').off('blur');
$(CSSSelectorForm+' input[name=contactName]').off('keyup');
$(CSSSelectorForm+' input[name=contactName]').on('blur',root.checkContactNameField);
$(CSSSelectorForm+' input[name=contactName]').on('keyup',root.checkContactNameField);
$(CSSSelectorForm+' input[name=orderType]').off('change');
$(CSSSelectorForm+' input[name=orderType]').on('change',root.callChangeOrderType);
$(CSSSelectorForm+' .orderParameterNextButton').off('click');
if(Order.getData()['id']>0){
if(Order.getData()['orderType']=='weekly'){
root.initDatePicker(Order.getData()['orderType']);
$(CSSSelectorForm+" input[name=orderType][value=" + Order.getData()['orderType'] + "]").prop('checked', true);
const endDate = new Date(Order.getData()['deliveryDate']);
endDate.setDate(endDate.getDate() + 6);
root.setDeliveryDate(Order.getData()['deliveryDate'],$.datepicker.formatDate( 'yy-mm-dd',endDate));
root.initDatePicker('weekly');
}else{
if(Order.getData()['deliveryDate']){
root.setDeliveryDate(Order.getData()['deliveryDate']);
}
root.initDatePicker('daily');
}
if(Order.getData()['contactName']){
$(CSSSelectorForm+' input[name=contactName]').val(Order.getData()['contactName']);
}
if(Order.getData()['note']){
$(CSSSelectorForm+' textarea[name=note]').val(Order.getData()['note']);
}
if(Order.getData()['deliveryAddressId']){
console.log($(CSSSelectorForm+' select[name=deliveryAddressId]'));
$(CSSSelectorForm+' select[name=deliveryAddressId]').val(Order.getData()['deliveryAddressId']);
}
if(Order.getData()['customNotificationEmail']){
console.log($(CSSSelectorForm+' select[name=customNotificationEmail]'));
$(CSSSelectorForm+' select[name=customNotificationEmail]').val(Order.getData()['customNotificationEmail']);
}
}else{
root.initDatePicker('daily');
}
$(CSSSelectorForm+' .orderParameterDeliveryAddress').select2({}).show();
$(CSSSelectorForm+' .orderParameterCustomNotificationEmail').select2({}).show();
$(CSSSelectorForm).submit(function(event){
event.preventDefault();
if ($(CSSSelectorForm)[0].checkValidity() === false) {
debug('validaton false');
event.stopPropagation();
return;
} else {
debug('validaton ok');
//do your ajax submition here
}
$('.deliveryDatePlace').text($(CSSSelectorForm+' input[name=deliveryDate]').val().replaceAll('-','.')+'.');
Order.setData({
contactName:$(CSSSelectorForm+' input[name=contactName]').val(),
note:$(CSSSelectorForm+' textarea[name=note]').val(),
orderType:$(CSSSelectorForm+' input:checked[name=orderType]').val(),
deliveryDate:$(CSSSelectorForm+' input[name=deliveryDate]').val(),
deliveryAddressId:$(CSSSelectorForm+' select[name=deliveryAddressId]').val(),
deliveryAddress:$(CSSSelectorForm+' select[name=deliveryAddress]').val(),
customNotificationEmail:$(CSSSelectorForm+' select[name=customNotificationEmail]').val(),
});
console.group('parameter form submit')
console.error($(CSSSelectorForm+' input:checked[name=orderType]').val());
console.error($(CSSSelectorForm+' input[name=deliveryDate]').val());
debug(Order.getData());
console.groupEnd();
root.sendOrderDataToServer('parameter',root.afterOrderSetParameterOk);
});
}
this.blank=function (){};
this.setParameterCompleted=function () {
console.log('setParameterCompleted called');
root.Stepper.setOpts({onAfterLoad:function (){}});
//root.initViewProductSelect()
}
this.bindRowFavoritesAction = function () {
$('.buttonItemFavorites').off('click');
$('.buttonItemFavorites').on('click', function () {
let productId = $(this).data('id');
console.log(productId);
let ajaxUrl=Opts.URL.toggleFavorites.replace('%id%',productId);
let ajaxData={};
ajaxData._token=Opts.token;
let button=this;
console.log(ajaxUrl);
$.ajax({
url: ajaxUrl,
method:'POST',
data:ajaxData,
success:function (response) {
if(response.success){
if(response.status){
console.log('true');
$(button).addClass('btn-warning');
$(button).removeClass('btn-light');
}else{
$(button).removeClass('btn-warning');
$(button).addClass('btn-light');
console.log('false');
}
}
}
});
/*
$(this).toggleClass('btn-warning');
$(this).toggleClass('btn-light');
*/
});
}
this.bindRowDescriptionAction=function (){
$('textarea.orderItemComment').on('change',function (){
let comment=$(this).val();
let productId=$(this).data('id');
let productComment=Order.getData('productComment');
if(productComment!==null){
if(typeof productComment[productId]=='undefined' && comment.length===0){
return;
}
if(productComment[productId]===comment){
return;
}
}
productComment[productId]=comment;
if(comment.length===0){
delete Order.productComment[productId];
}
Order.productComment=productComment;
queueAjax.push(Date.now());
root.syncOrderDataToServer();
});
}
this.productSelectDatatablesRowFormatter=function (d) {
// `d` is the original data object for the row
/**
@todo: felszedni es updatelni az adott termek memojat az orderban
*/
console.group('productSelectDatatablesRowFormatter');
console.log(d);
let templateData=d;
templateData.comment='';
// debug(Order);
if(Order.productComment && Order.productComment!==null){
debug(typeof Order.productComment[d.id]);
if(typeof Order.productComment[d.id]!='undefined' && Order.productComment[d.id].length>0){
templateData.comment=Order.productComment[d.id];
}
}
/** @typedef {boolean} d.favorites */
if(d.favorites===true){
templateData.btnFavoritesClass='btn-warning';
}else{
templateData.btnFavoritesClass='btn-light';
}
let template=$('template[data-name="orderProductSelectDetails"]').html()
templateData.weekly=false;
if(Order.getData().orderType==='weekly'){
templateData.weekly=true;
/*
templateData.weeklyDay=[
{"index":1,"name":"Hétfő"},
{"index":2,"name":"Kedd"},
{"index":3,"name":"Szerda"},
{"index":4,"name":"Csütörtök"},
{"index":5,"name":"Péntek"},
{"index":6,"name":"Szombat"},
{"index":7,"name":"Vasárnap"},
];
templateData.weeklyDay=[
{"index":2,"name":"Hétfő" },
{"name":"Kedd"},
{"name":"Szerda"},
{"name":"Csütörtök"},
{"name":"Péntek"},
{"name":"Szombat"},
{"name":"Vasárnap"}
];
*/
}
let productSelected=Order.getData('productSelected');
if(typeof productSelected[d.id]!='undefined'){
templateData.itemQuantity=productSelected[d.id];
}
console.log(['templateData',templateData]);
let oldTags=Mustache.tags;
Mustache.tags = ["~!", "!~"];
if(templateData['specification']=='false' || templateData['specification']==false){
templateData.specificationClass='d-none';
}
templateData.pictureImg='';
if(templateData['picture']=='false' || templateData['picture']==false){
templateData.pictureClass='d-none';
}else{
templateData.pictureImg='';
}
console.log('templateData',templateData);
//templateData['aa_specification']=false;
let render=Mustache.render(template,templateData);
Mustache.tags =oldTags;
console.groupEnd();
return render;
/*
solution before template
return '
| Info: | '+ ''+d.note+' | '+ '
| hooreyca : | '+ ''+d.hooreycaId+'' + '' + ' | '+ '
| Extension number: | '+ ''+d.extn+' | '+ '
| Info: | '+ ''+d.note+' | '+ '
| Megjegyzés: | '+ ''+ ' |