/* Were tälking UTF8 */ // GLOBALS var LOG = false; //false; // ENABLE LOGGING var PRLOG = false; //false; /** PRICE LOG - REMOVE COMMENTS **/ var INPUTDELAY = 650; // MilliseconCs var FLOATDELAY = 1300 // Milliseconds for Float Inputs var SCONFIG = ''; var PHPCALC = false; /** ENABLES PHP + JS CALC COMPARE MODE - MUST BE OFF IN LIVE MODE **/ var xhr = ''; var canvas = new Object(); var bgLayer = new Object(); var SIGN = { width: 550, height: 300, color:'#000000', bgcolor:'#ffffff', border: 0, borderDistance: 10, selectorPadding: 0, selectorCornerSize: 10, selectorBorderColor: '#aaaaaa', selectorCornerColor: '#aaaaaa', selectorCornerStyle: 'circle', selectorCornerTransparent: false, selectorSerienText : '#673086', scale:'1:1', scaleFac:1, dimMax:600, dimMin:300, cutFormColor: 'rgba(220,220,220,1)', //'rgba(241,241,241,1)' cornerRadius: 3, // in mmm calculateOnUnload: 1, cutFormStrokeWidth: 1.5, cutFormStrokeColor:'rgba(200,0,0,1)', cutFormStrokeDashWidth: 5, fixationDefaultID: 0, fixationDefaultDistance: 6.25, fixationDefaultDiameter: 4.5, fixationDefaultRadius: 2.25, fixationDefaultDistanceEdge: 4, }; var FIXDATA= new Array(); var delay = (function(){ var timer = 0; return function(callback, ms){ clearTimeout (timer); timer = setTimeout(callback, ms); }; })(); $.ajaxSetup({ cache: false }); /** ---------------------------------------------------------------------------*/ /** INIT EVENTS */ /** ---------------------------------------------------------------------------*/ $(document).ready(function() { SCONFIG = $('#JSCONFIG').val(); fabric.Object.NUM_FRACTION_DIGITS = 17; fabric.textureSize = 4096; //if (fabric.isWebglSupported()) fabric.textureSize = 65536; if(document.getElementById('schild')===null) { } else { canvas = this.__canvas = new fabric.Canvas('schild'); // CANVAS EVENTS canvas.on({ 'object:moving': function () { updateObjControls('obj_moving')}, 'object:scaling': function () { updateObjControls('obj_scaling')}, 'object:resizing': function () { updateObjControls('obj_resizing')}, 'object:rotating': function () { updateObjControls('obj_rotating')}, 'object:selected': function () { updateObjControls('obj_selected')}, 'object:modified': function () { updateObjControls('obj_modified')}, 'selection:created': function () { updateObjControls('selection:created')}, 'selection:updated': function () { updateObjControls('selection:updated')}, 'selection:cleared': function () { updateObjControls('selection:cleared')}, 'before:selection:cleared': hideObjControls, 'text:editing:entered': function () { LOG && console.log('Event: text_editing_entered'); }, 'text:editing:exited': function () { LOG && console.log('Event: text_editing_exited'); }, 'text:selection:changed': function () { LOG && console.log('Event: text_editing_changed'); }, 'text:changed': function () { var obj = canvas.getActiveObject(); var parsedText = filterUCChars(obj.get('text'),$('#textBox').val()); obj.set({'text': parsedText}); //$(this).val() $('#textBox').val(parsedText); canvas.renderAll(); //console.log('FRom ITEXT : text changed'); LOG && console.log('Event: text_changed'); }, 'mouse:up': function() { var obj = canvas.getActiveObject(); if(obj) { calculateSign('Event: mouse up',0); } }, 'after:render': function(){ this.calcOffset(); } }); } canvas.stateful = false; // Increases speed (if undone function not needed) canvas.selection = false; canvas.controlsAboveOverlay = true; //canvas.renderOnAddRemove = false; // better? // NAV $('#sideNav li a').on('click',function() { $("#sideNav li a").each(function() { $(this).removeClass('orange'); $(this).addClass('gray'); }); $(this).removeClass('gray'); $(this).addClass('orange'); }); // DIM $('#DIMMODE0').on('click', function() { var dim = $('#DIMSTD').val().split('x'); resizeBack(dim[0],dim[1]); $('#WIDTH').val(dim[0]); $('#HEIGHT').val(dim[1]); }); $('#DIMMODE1').on('click', function() { resizeBack($('#WIDTH').val(),$('#HEIGHT').val())}); $('#DIMSTD').change(function() { $("#DIMMODE0").prop("checked", true); var dim = $(this).val().split('x'); $('#WIDTH').val(dim[0]); $('#HEIGHT').val(dim[1]); resizeBack(dim[0],dim[1]); }); $('#WIDTH').keyup(function() { obj = canvas.item(0); delay(function() { if(checkSignWidthHeight($('#WIDTH').val(),$('#HEIGHT').val())==true) { $("#DIMMODE1").prop("checked", true); resizeBack($('#WIDTH').val(),$('#HEIGHT').val()); } else { var dim = $('#DIMSTD').val().split('x'); resizeBack(dim[0],dim[1]); $('#WIDTH').val(dim[0]); } }, FLOATDELAY ); }); $('#HEIGHT').keyup(function() { obj = canvas.item(0); delay(function() { if(checkSignWidthHeight($('#WIDTH').val(),$('#HEIGHT').val())==true) { $("#DIMMODE1").prop("checked", true); resizeBack($('#WIDTH').val(),$('#HEIGHT').val()); } else { var dim = $('#DIMSTD').val().split('x'); resizeBack(dim[0],dim[1]); $('#HEIGHT').val(dim[1]); } }, FLOATDELAY ); }); // TEXT $('#textFontSelector').on('mousedown', function (e) { e.preventDefault(); this.blur(); window.focus(); $('#textFontList').show(); $('#textFontListClose').show(); }); $('#textFontListClose').on('click', function() { $('#textFontList').hide(); $('#textFontListClose').hide(); }); $('#textSize').keyup(function() { delay(function() { var obj = canvas.getActiveObject(); if(checkTextHeight($('#textSize').val())==true) { updateObjFromControls('scaleText'); } else { $('#textSize').val($('#objHeight').val()); } }, FLOATDELAY ); }); $("#textBox").on('input', function() { var obj = canvas.getActiveObject(); //var parsedText = filterUCChars($(this).val(),$(this).val()); var parsedText = filterUCChars($(this).val(),obj.get('text')); // parsedText=parsedText.replace('/\'/',String.fromCharCode(8217)); obj.set({'text': parsedText}); //$(this).val() $(this).val(parsedText); canvas.renderAll(); //console.log('From INPUT : text changed'); }); $('#textSymbols').on('click', function() { if($('#addSymbolPanel').is(':hidden')) { $('#addSymbolPanel').show(); $('#addTextPanel').hide(); $(this).removeClass('grad').addClass('gradSelect'); $("#textBox").focus(); } else { $('#addSymbolPanel').hide(); $('#addTextPanel').show(); $(this).removeClass('gradSelect').addClass('grad'); } }); $('#symtable td').hover(function() { var sym = $(this).data('symbol'); $('.sym').html(sym); var desc = $(this).data('desc'); $('.symdesc').html('
'+desc+'

'); }); $('#symtable td').on('click', function() { var sym = $(this).data('symbol'); var caretPos =document.getElementById("textBox").selectionStart; var caretEnd = document.getElementById("textBox").selectionEnd; var textAreaTxt = $("#textBox").val(); var txtToAdd = sym; $("#textBox").val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring( caretEnd ) ); var obj = canvas.getActiveObject(); obj.set({'text':$('#textBox').val()}); $('#textBox').focus(); $('#addSymbolPanel').hide(); $('#textSymbols').removeClass('gradSelect').addClass('grad'); canvas.renderAll(); }); // SERIENTEXT $('#applySerienText').on('click', function() { // SEARCH FOR ACTIVE SERIENTEXT OBJECT var actObj= new Object; var serienTextObject=0; for(x=0; x < canvas.getObjects().length; x++) { obj=canvas.item(x); if(obj.mmkLayerType=='layerSerienText') { canvas.setActiveObject(obj); serienTextObject=1; actObj=obj; break; } } // AJAX UPDATE REQUEST var zeilen = $('input[name="stFields[]"]').map(function(){ return this.value; }).get(); var zcheck = ''; for (var i=0; i0) { window.top.location = URL; } return true; }, success: function(st) { if(st.length==0) { $('#serientext').hide(); $('#noSerienText').show(); $('#TXTMODE').val(0); $('#TXTDATA').val(''); $('#TXTMODESIGNS').val(0); } else { $('#serientext').show(); $('#noSerienText').hide(); if(serienTextObject==0) // CREATE { rows = addSerienText(st); $('#TXTMODE').val(1); $('#TXTDATA').val(st); $('#TXTMODESIGNS').val(rows); } else { rows = updateSerienText(st,actObj) $('#TXTMODE').val(1); $('#TXTDATA').val(st); $('#TXTMODESIGNS').val(rows); } rows==1 ? $('#stSignDisplay').text(rows+ ' Entwurf') : $('#stSignDisplay').text(rows+ ' Entw\u00fcrfe'); $('#MENGE').val(rows); $('#MENGE').prop('readonly', true); calculateSign('Event: Click #applySerientext',0); } serienDruckWin.close(); return true; } }); }); return false; }); // BEFESTIGUNGEN / LOCHDURCHMESSER $('#fixVertikal1').keyup(function() { delay(function() { checkFixationInput($('#fixVertikal1').val(),'#fixVertikal1',1); setFixation(1); }, FLOATDELAY ); }); $('#fixHorizontal2').keyup(function() { delay(function() { checkFixationInput($('#fixHorizontal2').val(),'#fixHorizontal2',2); setFixation(2); }, FLOATDELAY ); }); $('#fixHorizontal4').keyup(function() { delay(function() { checkFixationInput($('#fixHorizontal4').val(),'#fixHorizontal4',4); setFixation(4); }, FLOATDELAY ); }); $('#fixVertikal4').keyup(function() { delay(function() { checkFixationInput($('#fixVertikal4').val(),'#fixVertikal4',4); setFixation(4); }, FLOATDELAY ); }); $('#fixDiameter').keyup(function() { delay(function() { checkFixationInput($('#fixDiameter').val(),'#fixDiameter','diameter'); var mode = parseFloat($('#fixEditMode').val()); setFixation(mode); }, FLOATDELAY ); }); // BIND KEY EVENTS //$('html').bind('keypress', function(e) //{ // if(e.keyCode == 39) // { // setTimeout(function() { // e.target.value += String.fromCharCode(8217); //'’'; // }, 4); // e.preventDefault(); //return '`'; // replace apostrophe with pseudp char to avoid json bugs; // } //}); $('html').keyup(function(e) { if(e.keyCode == 46) { var hasFocus=0; $("input").each(function() { if($(this).is(':focus')) { hasFocus=1; }}); $("textarea").each(function() { if($(this).is(':focus')) { hasFocus=1; }}); if(hasFocus==0) { removeObj(); } } }); // INFOBAR FUNC $('#MENGE').keyup(function() { delay(function() { if($('#MENGE').val() >= 1 && $('#MENGE').val() <=99999) {} else { $('#MENGE').val(1); } calculateSign('Event: Enter #Menge',0); }, INPUTDELAY ); }); var oldStaerke, cEngrave; $('#STAERKE').on('click', function() { oldStaerke = $('#STAERKE option:selected').val(); }); $('#STAERKE').on('change', function() { changeStaerke($('#MATERIALID').val(),$('#STAERKE').val(), oldStaerke); }); $('#ENGRAVEMETHOD').on('change', function() { changeMaterialJS($('#MATERIALID').val(),$('#PRODUCTID').val(),''); }); $('#objWidth').keyup(function() { delay(function() { var obj = canvas.getActiveObject(); if(checkObjectWidthHeight($('#objWidth').val(),$('#objHeight').val())==true) { updateObjFromControls('scaleX'); } else { $('#objWidth').val(parseFloat(obj.get('width') * obj.get('scaleX') / SIGN.scaleFac).toFixed(1)); $('#objHeight').val(parseFloat(obj.get('height') * obj.get('scaleY') / SIGN.scaleFac).toFixed(1)); } }, FLOATDELAY ); }); $('#objHeight').keyup(function() { delay(function() { var obj = canvas.getActiveObject(); if(checkObjectWidthHeight($('#objWidth').val(),$('#objHeight').val())==true) { updateObjFromControls('scaleY'); } else { $('#objWidth').val(parseFloat(obj.get('width') * obj.get('scaleX') / SIGN.scaleFac).toFixed(1)); $('#objHeight').val(parseFloat(obj.get('height') * obj.get('scaleY') / SIGN.scaleFac).toFixed(1)); } }, FLOATDELAY ); }); $('#objAngle').keyup(function() { delay(function() { if($('#objAngle').val() >= 0 && $('#objAngle').val() <=359) {} else { $('#objAngle').val(0); } updateObjFromControls('angle'); }, INPUTDELAY ); }); // ANFRAGEN $('#applyAnfrage').on('click', function() { createAnfrage(); }); // BEFOREUNLOAD // $(window).on('beforeunload', function(){ // SAVE SIGNS IN TMP // if(SIGN.calculateOnUnload==1) // { // if(window.location.href== 'https://schilderstyle.de/konfigurator/2/') // { // $.when(calculateSign('fromUnloadEvent()',2)).done(function(ev) { // //console.log('works'); //return true; // }); // } // } //return null; // }); //console.log('SIGN ON UNLOAD: ' + SIGN.calculateOnUnload); $(window).on('unload', function() { if(SIGN.calculateOnUnload==1) { if(window.location.href== 'https://schilderstyle.de/konfigurator/2/') { calculateSign('fromUnloadEvent()',2); } } }); // PARSER FOR OLD JSON PATH GROUP fabric.PathGroup = { }; fabric.PathGroup.fromObject = function(object, callback) { var originalPaths = object.paths; delete object.paths; if (typeof originalPaths === 'string') { fabric.loadSVGFromURL(originalPaths, function (elements) { var pathUrl = originalPaths; var group = fabric.util.groupSVGElements(elements, object, pathUrl); object.paths = originalPaths; callback(group); }); } else { fabric.util.enlivenObjects(originalPaths, function(enlivenedObjects) { enlivenedObjects.forEach(function(obj) { obj._removeTransformMatrix(); }) var group = new fabric.Group(enlivenedObjects, object); object.paths = originalPaths; callback(group); }); } }; }); /** ---------------------------------------------------------------------------*/ /** CHANGE MATERIAL JS (JS ONLY) */ /** ---------------------------------------------------------------------------*/ function changeMaterialJS(matid,prodid,jsondata) { // APPLY NAV $("#MATNAVIGATION button").each(function() { $(this).removeClass('orange'); $(this).addClass('gray'); }); $("#MATNAVID"+matid).removeClass('gray'); $("#MATNAVID"+matid).addClass('orange'); // DESELECT ALL canvas.discardActiveObject(); // SET SELECTION TO PAGE GROESSE/FORM $('#responsiveTabs').responsiveTabs('activate',0); var x=0; $("#sideNav li a").each(function() { if(x!=0) { $(this).removeClass('orange').addClass('gray'); } else { $(this).removeClass('gray').addClass('orange'); } x++; }); // GET JSON var SHIELD = JSON.parse(SCONFIG); // GET MATERIAL + PRODUCT var MAT = SHIELD[matid]; var PROD = new Object(); $.each(MAT['PRODUCTS'],function(index, value){ if(value['PID']==prodid) { PROD = MAT['PRODUCTS'][index]; } }); $('#MATERIALID').val(matid); $('#MATERIALNAME').val(MAT['MNAME']); $('#MATERIALDISPLAY').html(MAT['MNAME']); // For Display in green bar $('#PRODUCTID').val(prodid); $('#PRODUCTNAME').val(PROD['PNAME']); LOG && console.log(MAT); LOG && console.log(PROD); // ENABLE/DISABLE CUTFORMS switch(MAT['MCUTFORM']) { case '1': $('#CUTFORMDISPLAY').show(); break; default: $('#CUTFORMDISPLAY').hide(); } // RESTORE STAERKE var STAERKE_CUR = $('#STAERKE option:selected').val(); var STAERKE_EXIST=0; var STAERKE_DEF=''; var STAERKE_DIS=''; $('#STAERKE').empty(); $.each(MAT['PRODUCTS'],function(index, value) { if(value['PID']==STAERKE_CUR) { STAERKE_EXIST=1; } if(value['PDEFAULT']==1) { STAERKE_DEF = value['PID']; } STAERKE_DIS= value['PSTAERKE'].replace('.',',').slice(0,-1); $('#STAERKE').append($("").attr("value", value['PID']).text(STAERKE_DIS+' mm')); }); if(STAERKE_EXIST==0) { $('#STAERKE option[value="'+STAERKE_DEF+'"]').prop('selected', true); } else { $('#STAERKE option[value="'+STAERKE_CUR+'"]').prop('selected', true); } // RESTORE ENGRAVEMETHOD var CURRENTEMID = $('#ENGRAVEMETHOD option:selected').val(); var CURRENTENGRAVEMINFONTSIZE= $('#ENGRAVEMINFONTSIZE').val(); var CURRENTENGRAVEFILLABLE= $('#ENGRAVEFILLABLE').val(); var EMDEFAULT=''; var ENGRAVEMINFONTSIZEDEFAULT=''; var ENGRAVEFILLABLEDEFAULT= ''; var EMIDEXISTS=0; $('#ENGRAVEMETHOD').empty(); $.each(PROD['ENGRAVE_METHODS'],function(index, value) { if(value['EMID']==CURRENTEMID) { EMIDEXISTS=1; $('#ENGRAVEMINFONTSIZE').val(value['EMMINFONTSIZE']); $('#ENGRAVEFILLABLE').val(value['AUSLEGBAR_MF']); } if(value['PEMDEFAULT']==1) { EMDEFAULT = value['EMID']; ENGRAVEMINFONTSIZEDEFAULT= value['EMMINFONTSIZE']; ENGRAVEFILLABLEDEFAULT=value['AUSLEGBAR_MF']; } $('#ENGRAVEMETHOD').append($("").attr("value", value['EMID']).text(value['EMNAME'])); }); if(EMIDEXISTS==0) { $('#ENGRAVEMETHOD option[value="'+EMDEFAULT+'"]').prop('selected', true); $('#ENGRAVEMINFONTSIZE').val(ENGRAVEMINFONTSIZEDEFAULT); $('#ENGRAVEFILLABLE').val(ENGRAVEFILLABLEDEFAULT); } else { $('#ENGRAVEMETHOD option[value="'+CURRENTEMID+'"]').prop('selected', true); } // RESTORE FRAESGRAVUREN SETTINGS + COLOR PANEL if($('#ENGRAVEMETHOD option:selected').val()==999) // NEEDED 3 TO DEAVTICA FRAES { $('#TOBASKETAREA').hide(); $('#ORAREA').hide(); $('#ANFRAGEAREA').show(); $('#ANFRAGEAREANETTO').show(); $('#ANFRAGEAREAJS').show(); $('#wkPrice').hide(); $('#wkPriceNetto').hide(); $('#wkPriceJS').hide(); //$('#JSPRICEAREANETTO').hide(); //$('#JSPRICEAREA').hide(); $('#anfrageWindow').text('Anfrage stellen'); } else { $('#TOBASKETAREA').show(); $('#ORAREA').show(); $('#ANFRAGEAREA').hide(); $('#ANFRAGEAREANETTO').hide(); $('#ANFRAGEAREAJS').hide(); $('#wkPrice').show(); $('#wkPriceNetto').show(); $('#wkPriceJS').show(); //$('#JSPRICEAREANETTO').show(); //$('#JSPRICEAREA').show(); $('#anfrageWindow').text('Anfrage'); } $('#ENGRAVEFILLABLE').val()==1 ? $('#objFillColorPanel').show() : $('#objFillColorPanel').hide(); // RESTORE SIGN SIZE // SIGN STD / DIMS var CURRENTDIMMODE = $("input[name=DIMMODE]:checked").val(); //$('#DIMMODE').val(); var CURRENTDIMSTD = $('#DIMSTD option:selected').val(); var CURRENTDIMFREE = $('#DIMFREE').val(); var CURRENTWIDTH = $('#WIDTH').val(); var CURRENTHEIGHT = $('#HEIGHT').val(); LOG && console.log('CURRENTDIMSTD: '+ CURRENTDIMSTD +', CURRENTDIMMODE: '+ CURRENTDIMMODE+', CURRENTDIMFREE: '+ CURRENTDIMFREE +', CURRENTWIDTH: '+ CURRENTWIDTH +', CURRENTHEIGHT: '+ CURRENTHEIGHT); // RESTORE DIM DEFAULTS IF DOESN'T EXISTS var SIGNDIMEXISTS=0; var SIGNDIMDEFAULT=''; $('#DIMSTD').empty(); $.each(MAT['SIGN_DIM'],function(index, value){ if(CURRENTDIMSTD==value['DIMX']+'x'+value['DIMY']) { SIGNDIMEXISTS=1; } if(value['DIMDEFAULT']==1) { SIGNDIMDEFAULT= value['DIMX']+'x'+value['DIMY']; } $('#DIMSTD').append($("").attr("value", value['DIMX']+'x'+value['DIMY']).text(value['DIMX']+'x'+value['DIMY']+' mm')); }); if(PROD['PDIMFREE']==1) { if(SIGNDIMEXISTS==0) // && CURRENTDIMMODE==1) { switch(CURRENTDIMMODE) { case '1': $("#DIMMODE1").prop("checked", true); break; default: $("#DIMMODE1").prop("checked", true); var dim =CURRENTDIMSTD.split('x'); $('#WIDTH').val(dim[0]); $('#HEIGHT').val(dim[1]); } } else { switch(CURRENTDIMMODE) { case '1': $("#DIMMODE1").prop("checked", true); $('#WIDTH').val(CURRENTWIDTH); $('#HEIGHT').val(CURRENTHEIGHT); break; default: $("#DIMMODE1").prop("checked", true); $('#WIDTH').val(CURRENTWIDTH); $('#HEIGHT').val(CURRENTHEIGHT); } } } else { $("#DIMMODE0").prop("checked", true); $('#DIMSTD option[value="'+SIGNDIMDEFAULT+'"]').prop('selected', true) var dim =SIGNDIMDEFAULT.split('x'); $('#WIDTH').val(dim[0]); $('#HEIGHT').val(dim[1]) } // SET DIMFREE SELECTOR switch(PROD['PDIMFREE']) { case '1': $('#DIMFREEDISPLAY').show(); break; default: $('#DIMFREEDISPLAY').hide(); } $('#DIMFREE').val(PROD['PDIMFREE']); // DISPLAY MESSAGE FOR RONDEN / OVALE switch(PROD['PID']) { case '15': case '16': $('#OVALEDISPLAY').show(); $('#RONDENDISPLAY').hide(); break; case '17': case '18': $('#RONDENDISPLAY').show(); $('#OVALEDISPLAY').hide(); break; default: $('#OVALEDISPLAY').hide(); $('#RONDENDISPLAY').hide(); } // RESTORE SIGN FORMS + BORDER var CUR_FORMID = $('#FORMID').val(); var CUR_FORM = $('#FORM').val(); var CUR_FORMDATA = $('#FORMDATA').val(); var CUR_BORDERID = $('#BORDERID').val(); var CUR_BORDERDATA = ''; //$('#BORDERID').val(); var FORMIDEXISTS=0; var FORMID_DEF=''; var FORM_DEF=''; var FORMDATA_DEF=''; var BORDERIDEXISTS=0; var BORDERID_DEF=''; var BORDERDATA_DEF=''; LOG && console.log('CUR_FORMID: '+ CUR_FORMID +', CUR_FORM: '+ CUR_FORM+', CUR_FORMDATA: '+ CUR_FORMDATA +', CUR_BORDERID: '+ CUR_BORDERID); // FORMS if($('#formSelector').data('carousel')!='nocarousel') { var ffloat=""; } else { var ffloat=" style='float:left;'"; } $('#SLIDERFORMS').empty(); $.each(PROD['SIGN_FORMS'],function(index, value) { if(value['SFDEFAULT']==1) { FORMID_DEF = value['SFID']; FORM_DEF = value['SFNAME']; FORMDATA_DEF = value['SFDATA']; } if(value['SFID']==CUR_FORMID) { FORMIDEXISTS=1; } $('#SLIDERFORMS').append("
  • "+ value['SFNAME'] +"
  • \n"); }); if(FORMIDEXISTS==0) { $('#FORMID').val(FORMID_DEF); $('#FORM').val(FORM_DEF); $('#FORMDATA').val(FORMDATA_DEF); } else { $('#FORMID').val(CUR_FORMID); $('#FORM').val(CUR_FORM); $('#FORMDATA').val(CUR_FORMDATA); } if($('#formSelector').data('carousel')!='nocarousel') { initJCarousel('forms'); } // BORDERS $('#SLIDERBORDERS').empty(); $.each(PROD['SIGN_BORDERS'],function(index, value) { if(value['SBDEFAULT']==1) { BORDERID_DEF=value['SBID']; BORDERDATA_DEF=value['SBDATA']; } if(value['SBID']==CUR_BORDERID) { BORDERIDEXISTS=1; } $('#SLIDERBORDERS').append("
  • "+ value['SBNAME'] +"
  • \n"); }); if(BORDERIDEXISTS==0) { $('#BORDERID').val(BORDERID_DEF); $('#BORDERDATA').val(BORDERDATA_DEF); } else { $('#BORDERID').val(CUR_BORDERID); $('#BORDERDATA').val(CUR_BORDERDATA); } initJCarousel('borders'); // RESTORE COLORS /** NEW RESTORE **/ var CUR_COLORID = $('#COLORID').val(); var CUR_COLORNAME = $('#COLORNAME').val(); var CUR_COLORGROUPID = $('#COLORGROUPID').val(); var CUR_COLOR = $('#COLOR').val(); var CUR_COLORBG = $('#COLORBG').val(); var CUR_COLORBGIMAGE = $('#COLORBGIMAGE').val(); var CUR_COLORPRICE = $('#COLORPRICE').val(); var x=0; var xs=0; var xrow=0; var colorName=''; var colorDisplay=''; var VERWENDUNG=''; var LIEFERZEIT=''; var bgdisplay=''; var COLAPPEND=''; var padding=0; var OLDSTAERKE=''; var COLORGROUPIDEXISTS=0; var COLORID_DEF=''; var COLORNAME_DEF=''; var COLORGROUPID_DEF=''; var COLOR_DEF=''; var COLORBG_DEF=''; var COLORBGIMAGE_DEF=''; $('#SLIDERCOLORS').empty(); $.each(MAT['PRODUCTS'],function(pindex, pvalue) { var PIDCOLORS = pvalue['COLORS']; x=0; $.each(PIDCOLORS,function(index, value) { // if(value['CGID']==CUR_COLORGROUPID) { COLORGROUPIDEXISTS=1; CUR_COLORID=value['CID'] } if(CUR_COLORID==value['CID'] && pvalue['PID']==prodid) { COLORGROUPIDEXISTS=1; CUR_COLORID=value['CID'] } //console.log('STAERKE/PID :' + pvalue['PID'] + ', '+prodid+ '|' + CUR_COLORID + ', ' + value['CID'] + '| COLORGROUPEXISTS?: ' + COLORGROUPIDEXISTS); if(value['CGBGIMAGE']===null) { value['CGBGIMAGE']=''; } if(x==0 && pvalue['PID']==prodid) { COLORID_DEF=value['CID']; COLORNAME_DEF=value['CGNAME']; COLORGROUPID_DEF=value['CGID']; COLOR_DEF=value['CGCOLOR']; COLORBG_DEF= value['CGBGCOLOR']; COLORBGIMAGE_DEF=value['CGBGIMAGE']; COLORPRICE_DEF=value['CPA']; } colorName = value['CGNAME']; colorDisplay = value['CGNAME'].replace('/','
    '); if(value['CLIEFERZEIT']!=0) { LIEFERZEIT=value['CLIEFERZEIT']+' Werktage'; } else { LIEFERZEIT='sofort lieferbar'; } switch(value['CVERWENDUNG']) { case '1': VERWENDUNG='nur Aussen verwendbar'; break; case '2': VERWENDUNG='Innen und Aussen verwendbar'; break; default: VERWENDUNG='nur Innen verwendbar'; } if(value['CUVRESISTENT']==1) { VERWENDUNG = VERWENDUNG + ", UV-Resistent"; } /** SPLIT COLORS **/ padding=0; if(OLDSTAERKE!=pvalue['PSTAERKE'] && xrow>0) { padding='25px'; OLDSTAERKE=pvalue['PSTAERKE']; $('#SLIDERCOLORS').append(COLAPPEND + ''); xs=0; } if(xs==0) { COLAPPEND= '
  • '; } //$('#SLIDERCOLORS').append('
  • '); } bgdisplay = value['CGBGIMAGE'].length > 0 ? "background: url("+value['CGBGIMAGE']+")" : "background: "+value['CGBGCOLOR']+""; pdisplay=pvalue['PSTAERKE'].replace('.',','); if(pvalue['PID']==$('#PRODUCTID').val()) { COLAPPEND = COLAPPEND + "\n"; } else { COLAPPEND = COLAPPEND + "\n"; } xs++; if(xs==3) { COLAPPEND=COLAPPEND + '
  • \n'; xs=0; $('#SLIDERCOLORS').append(COLAPPEND); COLAPPEND=''; } x++; }); xrow++; }); if(xs!=3 && xs!=0) { COLAPPEND= COLAPPEND + '\n'; $('#SLIDERCOLORS').append(COLAPPEND); // to fill sliders properly $('#SLIDERCOLORS').append('
  • ');} if(COLORGROUPIDEXISTS==0) { $('#COLORID').val(COLORID_DEF); $('#COLORNAME').val(COLORNAME_DEF); $('#COLORGROUPID').val(COLORGROUPID_DEF); $('#COLOR').val(COLOR_DEF); $('#COLORBG').val(COLORBG_DEF); $('#COLORBGIMAGE').val(COLORBGIMAGE_DEF); $('#COLORPRICE').val(COLORPRICE_DEF); } else { $('#COLORID').val(CUR_COLORID); $('#COLORNAME').val(CUR_COLORNAME); $('#COLORGROUPID').val(CUR_COLORGROUPID); $('#COLOR').val(CUR_COLOR); $('#COLORBG').val(CUR_COLORBG); $('#COLORBGIMAGE').val(CUR_COLORBGIMAGE); $('#COLORPRICE').val(CUR_COLORPRICE); } initJCarousel('colors'); // RESTORE DIMMAX, DIMMIN var PDIMMAX = PROD['PMAXX']+'x'+PROD['PMAXY']; var PDIMMIN = PROD['PMINX']+'x'+PROD['PMINY']; $('#DIMMAX').val(PDIMMAX); $('#DIMMIN').val(PDIMMIN); // RESTORE FIXATIONDATA var CUR_FIXATIONID = $('#FIXATIONID').val(); var CUR_FIXATIONNAME = $('#FIXATIONNAME').val(); var x=0; var xs=0; var dpimage = ''; var FIXAPPEND=''; var FIXATIONIDEXISTS=0; var FIXATIONID_DEF=''; var FIXATIONNAME_DEF=''; var FIXATIONDATA=''; var FIXATIONID_DEF=1; var FIXATIONNAME_DEF='Keine'; $('#SLIDERFIXATIONS').empty(); // GET CURRENT FIXATIONS var SIGN_FORMS = new Object(); var TMP_SIGN_FORMS = new Object(); $.each(PROD['SIGN_FORMS'],function(index, value) { if(value['SFID']==$('#FORMID').val()) { SIGN_FORMS = PROD['SIGN_FORMS'][index]; } TMP_SIGN_FORMS = PROD['SIGN_FORMS'][index]; /* INVALID JQUERY 2.4 */ //console.log(TMP_SIGN_FORMS) $.each(TMP_SIGN_FORMS['SFFIXATIONS'],function(index, value) { // ALL FIXATIONDATA NEEDED if(value['DISTANCE']===null) { value['DISTANCE']=''; } FIXATIONDATA = FIXATIONDATA + value['SFID'] +','+value['FXID']+','+ value['MINWIDTH']+','+value['MINHEIGHT']+','+value['DISTANCE']+'###'; }); }); FIXAPPEND = '
  • '; FIXAPPEND = FIXAPPEND + "
    Keine
    "; if(SIGN_FORMS['SFFIXATIONS']!==null) { $.each(SIGN_FORMS['SFFIXATIONS'],function(index, value) { if(value['FXID']==CUR_FIXATIONID) { FIXATIONIDEXISTS=1; CUR_FIXATIONID=value['FXID'] } switch(value['FXID']) { case '7' : dpimage='ws'; break; case '9' : dpimage='screw'; break; default : dpimage=''; break; } FIXAPPEND = FIXAPPEND + "
    "+ value['FXNAME'] +"
    "; }); } $('#SLIDERFIXATIONS').append(FIXAPPEND + '
  • \n'); if(FIXATIONIDEXISTS==0) { $('#FIXATIONID').val(FIXATIONID_DEF); $('#FIXATIONNAME').val(FIXATIONNAME_DEF); } else { $('#FIXATIONID').val(CUR_FIXATIONID); $('#FIXATIONNAME').val(CUR_FIXATIONNAME); } initJCarousel('fixations'); //console.log('FIXATION: ' + $('#FIXATIONID').val() +', ' +$('#FIXATIONNAME').val()) // RESTORE COMPONENTS var COMPONENTSAPPEND = '
  • '; $('#SLIDERCOMPONENTS').empty(); $.each(PROD['COMPONENTS'],function(index, value) { COMPONENTSAPPEND = COMPONENTSAPPEND + "
    "+ value['CPNAME'] +"
    "; }); $('#SLIDERCOMPONENTS').append(COMPONENTSAPPEND + '
  • \n'); initJCarousel('components'); LOG && console.log('%cinitConfSign(\''+$("input[name=DIMMODE]:checked").val()+'\',\''+$('#DIMFREE').val()+'\',\''+$('#DIMSTD option:selected').val()+'\',\''+$('#WIDTH').val()+'\',\''+$('#HEIGHT').val()+'\',\''+$('#COLOR').val()+'\',\''+$('#COLORBG').val()+'\',\''+$('#COLORBGIMAGE').val()+'\',\''+$('#COLORNAME').val()+'\',\''+$('#COLORID').val()+'\',\''+$('#COLORGROUPID').val()+'\',\''+$('#FORM').val()+'\',\''+$('#FORMDATA').val()+'\',\''+$('#FORMID').val()+'\',\'border\',\''+$('#BORDERID').val()+'\',\''+PDIMMAX+'\',\''+PDIMMIN+'\',\''+$('#TXTMODE').val()+'\',\''+FIXATIONDATA+'\',\''+MAT['MCUTFORM']+'\',\''+jsondata+'\',\'1\')',"color: white; background-color: black; padding: 4px"); initConfSign($("input[name=DIMMODE]:checked").val(),$('#DIMFREE').val(),$('#DIMSTD option:selected').val(),$('#WIDTH').val(),$('#HEIGHT').val(),$('#COLOR').val(),$('#COLORBG').val(),$('#COLORBGIMAGE').val(),$('#COLORNAME').val(),$('#COLORID').val(),$('#COLORGROUPID').val(),$('#FORM').val(),$('#FORMDATA').val(),$('#FORMID').val(),'border',$('#BORDERID').val(),PDIMMAX,PDIMMIN,$('#TXTMODE').val(),FIXATIONDATA,MAT['MCUTFORM'],jsondata,'1'); //initConfSign($('#DIMMODE').val(),$("#DIMFREE").val(),'{$_SESSION['SIGN']['DIMSTD']}','{$_SESSION['SIGN']['WIDTH']}','{$_SESSION['SIGN']['HEIGHT']}','{$_SESSION['SIGN']['COLOR']}','{$_SESSION['SIGN']['COLORBG']}','{$_SESSION['SIGN']['COLORBGIMAGE']}','{$_SESSION['SIGN']['COLORNAME']}','{$_SESSION['SIGN']['COLORID']}','{$_SESSION['SIGN']['COLORGROUPID']}','{$_SESSION['SIGN']['FORM']}','{$_SESSION['SIGN']['FORMDATA']}','{$_SESSION['SIGN']['FORMID']}','{$_SESSION['SIGN']['BORDER']}','{$_SESSION['SIGN']['BORDERID']}','{$_SESSION['SIGN']['DIMMAX']}','{$_SESSION['SIGN']['DIMMIN']}','{$_SESSION['SIGN']['TXTMODE']}','{$_SESSION['SIGN']['FIXATIONDATA']}','{$_SESSION['SIGN']['CUTFORMSENABLED']}','$JSONFILE'); $('#CONTAINERCURRENTJSVAL').html( ''+ '' + '' + '' + '' + '
    MATERIALID:'+ $('#MATERIALID').val() + '
    PRODUCTID:'+ $('#PRODUCTID').val() + '
    STAERKE:'+ $('#STAERKE').val() + '
    ENGRAVEMETHOD:'+ $('#ENGRAVEMETHOD').val() + '
    ' ); return false; } /** ---------------------------------------------------------------------------*/ /** INIT SIGN (JS + PHP) */ /** ---------------------------------------------------------------------------*/ function initConfSign(dimmode,dimfree,dimstd,x,y,col,bgcol,bgimage,colname,colid,colgroupid,sform,sformdata,sformid,border,borderid,dimmax,dimmin,textmode,fixationdata,cutformsenabled,json,reloadFromJS) { if(reloadFromJS!=1) { canvas.clear(); } $('#schild').hide(); SIGN.width=x; SIGN.height=y; SIGN.color = col; SIGN.bgcolor = bgcol; SIGN.dimMax=dimmax; SIGN.dimMin=dimmin; FIXDATA = new Array(); // RESET GLOBAL FIXDATA ROWS = fixationdata.split('###'); ROWS.forEach(function(entry) { dataentry=entry.split(','); if(entry.length > 0) { FIXDATA.push(dataentry); } }); //alert(FIXDATA.length); var max = SIGN.dimMax.split('x'); var min = SIGN.dimMin.split('x'); if(textmode==1) // SERIENTEXT { $('#serientext').show(); $('#TXTMODE').val(1); $('#MENGE').val()==1 ? $('#stSignDisplay').text($('#MENGE').val()+ ' Entwurf') : $('#stSignDisplay').text($('#MENGE').val()+ ' Entw\u00fcrfe'); $('#MENGE').prop('readonly', true); } $('#WIDTH').val(SIGN.width) $('#HEIGHT').val(SIGN.height) if(json.length > 0) { json = json.replace(/'/g,"\'"); //json = json.replace(/"/g,'\\"'); json = json.replace(/\n/g, "\\n"); //json=replace json = json.replace(/\r/g, "\\r"); //json=replace LOG && console.log('initSign from JSON (PHP)'); //console.log(json); //var start = timer(0); // canvas.loadFromJSON(json, canvas.renderAll.bind(canvas), function(o, object) { // var start = timer(0); // var tdiff = timer(start); // LOG && console.log(o,object); // 'Object loaded in: ' +tdiff + ', Object:' + fabric.log(o, object)); // }); canvas.loadFromJSON(json, function () { //canvas.forEachObject(function(o) { //console.log('JSON: ObjType: ' + o.type); //console.log(o.type); //if (o.type === 'image' && o.filters.length !== 0) { // o.applyFilters(canvas2.renderAll.bind(canvas2)); //} // }); }); //var tdiff = timer(start); //LOG && console.log('JSON loads in: ' +tdiff); //canvas.loadFromDatalessJSON(json, canvas.renderAll.bind(canvas), function(o, object) { // fabric.log(o, object); //}); } else { LOG && console.log('init from JS'); //LOG && fabric.log(o, object); //for(x=2; x 0) { restoreFixationByJSON(oldbgObj); } canvas.renderAll(); $('#schild').show(); var tdiffdelay = timer(startdelay); LOG && console.log('Delayed Object Loader in initConfSign() (150 ms) loads in: ' +tdiffdelay); }, 150); } /** ---------------------------------------------------------------------------*/ /** CALCULATE SIGN (PHP MODE + JS ONLY MODE) */ /** ---------------------------------------------------------------------------*/ function calculateSign(source,type) { var typeval=new Array('JS ONLY','PHP + JS'); var autoSet=0; if(type==null) { type=0; autoSet=1; } // TYPE NOT SET IN FUNCTIONS if(PHPCALC==true) { type=1; autoSet=1; } // ENABLES PHP MODE ALWAYS (GLOBAL) LOG && console.log('%cCalculatingSign: Source: '+source+', Mode: '+typeval[type]+', Autoset: ' + autoSet + ', PHPCALCMODE: ' + PHPCALC,"color:white; background: #cc0000; padding:4px;"); // TIME var start = timer(0); // GRAVURFLAECHE ERMITTELN var gFull = 0; var sFull = 0; var gColorArea = new Object(); var gColorRoam = ''; var gAll = 0; var sAll = 0; var bildmontage= 0; var staerke = $('#STAERKE option:selected').text() staerke = staerke.replace("mm",''); staerke = parseFloat(staerke.replace(",",'.')).toFixed(2); // BORDER? var xs=2; if($('#BORDERID').val()==2) { xs=1; } // Thin if($('#BORDERID').val()==3) { xs=1; } // Thick for(x=xs; x < canvas.getObjects().length; x++) { if(canvas.item(x).type=='image' || canvas.item(x).type=='path' || canvas.item(x).type=='group' || canvas.item(x).type=='path-group' || canvas.item(x).type=='i-text' || canvas.item(x).type=='circle' || canvas.item(x).type=='rect' || canvas.item(x).type=='triangle' || canvas.item(x).type=='polygon') { gwidth = ((canvas.item(x).get('width')*canvas.item(x).scaleX)/10) / SIGN.scaleFac; gheight = ((canvas.item(x).get('height')*canvas.item(x).scaleY)/10) / SIGN.scaleFac; } else { gwidth = (canvas.item(x).get('width')/10) /SIGN.scaleFac; gheight = (canvas.item(x).get('height')/10)/SIGN.scaleFac; //console.log(canvas.item(x).type + 'calcuation...'); } //LOG && console.log('Type:' + canvas.item(x).type + ',' +gwidth + ' x ' +gheight+ ',Scale: ' + canvas.item(x).scaleX + ',' +canvas.item(x).scaleY); gAll = gwidth * gheight; sAll = gwidth * 2 + gheight * 2; // Gravurflaeche oder Ausschnittflache if(canvas.item(x).mmkLayerType=='layerCutForm') { sFull+= sAll; } else { gFull+= gAll; } if(canvas.item(x).mmkLayerFill == 1) //Type=='layerFillColor') { fill = canvas.item(x).get('fill'); if(!(fill in gColorArea)) { gColorArea[fill]=0; } gColorArea[fill]+=gAll; } if(canvas.item(x).get('type')=='image') { bildmontage=1; } } LOG && console.log('Gravur:' + gFull +' / Ausschnitte:' + sFull); // GROUP FILL COLORS for (var key in gColorArea) { gColorRoam= gColorRoam + key +'|'+ gColorArea[key] +'###'; } //if(gColorRoam.length > 0) { alert(gColorRoam); } //console.log(gColorArea); // INIT LOADER // $('#wkPrice').html('
    Lade...
    '); // AJAX UPDATE var dataURL=''; var formData = $('#imUploader').serializeArray(); //$('input[name^="wdata\\["]').serializeArray(); // GET REFPNG // CAUSES SOME REALLY ANNOYING ERRORS + SLOW EITHER var obj = canvas.getActiveObject(); // if(obj) { //canvas.deactivateAll().renderAll(); // NOT WORKING in 2.x //hideObjControls(); // NOT WORKING IN 2.x //canvas.discardActiveObject(); //canvas.requestRenderAll(); // console.log('SOMETHING IS WRONG IN LINE 1309......'); //hideObjControls(); //} // CALUCLATE PRICE (PHP) if(type==1 || type==2) { //var dataRef = canvas.toDataURL('image/png'); //saveImageAs('png'); // HIDE SHADOW canvas.item(0).setShadow({ color: 'rgba(0,0,0,0.5) 0 0 0'}); var dataRef=''; var objtyp = canvas.item(0).get('type'); switch(objtyp) { case 'rect': case 'ellipse': dataRef = canvas.toDataURL({format: 'png', left: canvas.item(0).get('left'), top: canvas.item(0).get('top'), width: canvas.item(0).get('width'), height: canvas.item(0).get('height') }); break; case 'circle': case 'polygon': case 'triangle': case 'path': case 'path-group': case 'group' : dataRef = canvas.toDataURL({format: 'png', left: canvas.item(0).get('left'), top: canvas.item(0).get('top'), width: canvas.item(0).get('width') * canvas.item(0).get('scaleX'), height: canvas.item(0).get('height') * canvas.item(0).get('scaleY'), }); break; } // SHOW SHADOW canvas.item(0).setShadow({ color: 'rgba(0,0,0,0.5) 0 0 15px' }); var json = JSON.stringify(canvas); //alert(json); //json = json.replace(/'/g, "\\'"); //json=replace //json = json.replace(/'/g, '\'') //alert(json); // AJAX UPDATE REQUEST switch(type) { case 2: //onunloadEvent var oufd = new FormData(); $(formData).each(function(c, item) { if(item.name!='JSCONFIG') { oufd.append('OUFD_' + item.name, item.value); } }); oufd.append('com', 'cs'); oufd.append('json', json); oufd.append('ref', ''); //dataRef oufd.append('gf', parseFloat(gFull).toFixed(3)); oufd.append('su', parseFloat(sFull).toFixed(3)); oufd.append('width', canvas.item(0).get('height')); oufd.append('height', canvas.item(0).get('height')); oufd.append('gca', gColorRoam); oufd.append('bildmontage', bildmontage); oufd.append('staerke', staerke); oufd.append('csdatamode', 1); // seems only 64KB possible navigator.sendBeacon("https://schilderstyle.de/konfigurator/scripts/mmk-io.php", oufd); //$.ajax({ url: "https://schilderstyle.de/konfigurator/scripts/mmk-io.php", // type: 'POST', // cache: false, // timeout: 30000, // async: true, // data: { data: formData, com: 'cs', json: json, ref: dataRef, gf: parseFloat(gFull).toFixed(3), su: parseFloat(sFull).toFixed(3), width: canvas.item(0).get('height'), height: canvas.item(0).get('height'), gca: gColorRoam, bildmontage: bildmontage, staerke: staerke }, // error: function(){ // return true; // }, // success: function(cs) { $('#wkPrice').html(cs); return true; } //}); break; default: $.ajax({ url: "https://schilderstyle.de/konfigurator/scripts/mmk-io.php", type: 'POST', cache: false, timeout: 30000, async: false, data: { data: formData, com: 'cs', json: json, ref: dataRef, gf: parseFloat(gFull).toFixed(3), su: parseFloat(sFull).toFixed(3), width: canvas.item(0).get('height'), height: canvas.item(0).get('height'), gca: gColorRoam, bildmontage: bildmontage, staerke: staerke }, error: function(){ return true; }, success: function(cs) { $('#wkPrice').html(cs); return true; } }); } } else { $('#wkPrice').html('OFF'); } // CALUCLATE PRICE (JS) jsPrice = calculateSignJS(parseFloat(gFull).toFixed(3),parseFloat(sFull).toFixed(3),gColorRoam,bildmontage); $('#wkPriceJS').html(jsPrice + ' € inkl. MwSt.'); // CALCULATE STUECK NETTO (JS) jsPriceLC = jsPrice.replace(/\,/,'.'); var TAXSET = parseFloat(19.00); var TAXCALCMETHOD = '1'; var TAX = parseFloat(100 + TAXSET); //alert(TAX +', ' + TAXSET +', ' +TAXCALCMETHOD); //var jsPriceStueck = parseFloat((jsPriceLC/119 * 100) / $('#MENGE').val()).toFixed(2); if(TAXCALCMETHOD==1) { //var jsPriceStueck = parseFloat((jsPriceLC/119 * 100) / $('#MENGE').val()).toFixed(2); var jsPriceStueck = parseFloat((jsPriceLC/TAX * 100) / $('#MENGE').val()).toFixed(2); } else { } jsPriceStueck = jsPriceStueck.replace(/\./,','); $('#wkPriceNetto').html(jsPriceStueck +' € netto'); // SELECT ACTIVE OBJECT if(obj) { canvas.setActiveObject(obj); } // REFRESH OBJ LIST / EBENEN var objLayerContent=''; $('#objLayers').html(); for(x=1; x1) { selectable=''; selectableEnd=''; } objLayerContent= objLayerContent + selectable +'
    Ebene ' + x + ' / '+ objType +'
    Typ: '+ layerType +'| Fill: '+ layerFill +'
    ' + selectableEnd; //if(canvas.item(x).mmkLayerType=='layerCutForm') { LOG && console.log('cutform ('+x+') - no fill'); } //else if(canvas.item(x).mmkLayerType=='layerFixation') { LOG && console.log('fixation ('+x+') - no fill'); } //else if(canvas.item(x).mmkLayerType=='layerOverlay') { LOG && console.log('overlay ('+x+') - no fill'); } //else //{ // MIT FARBE AUSLEGBAR/FUELLBAR // if($('#ENGRAVEFILLABLE').val()==1) // { // if(canvas.item(x).mmkLayerFill==1) { } // else { canvas.item(x).setFill(color); } // } // else { canvas.item(x).setFill(color); } //} } $('#objLayers').html(objLayerContent); var tdiff = timer(start); LOG && console.log('Calculated Price in: ' +tdiff); // ALWAYS MAKE SURE UNSELECTABLE if(canvas.item(0)!==undefined) { canvas.item(0).selectable=false; } if(canvas.item(1)!==undefined) { canvas.item(1).selectable=false; } } /** ---------------------------------------------------------------------------*/ /** CALCULATE SIGN (JS ONLY) */ /** ---------------------------------------------------------------------------*/ function calculateSignJS(gf,su,gca,bm) { // GET JSON var SHIELD = JSON.parse(SCONFIG); // GET MATERIAL + PRODUCT var matid = $('#MATERIALID').val(); var prodid = $('#PRODUCTID').val(); var colorid = $('#COLORID').val(); var formid = $('#FORMID').val(); var engraveid = $('#ENGRAVEMETHOD').val(); var MAT = SHIELD[matid]; var PROD = new Object(); var COLOR = new Object(); var SIGN_FORM = new Object(); var ENGRAVE = new Object(); $.each(MAT['PRODUCTS'],function(index, value){ if(value['PID']==prodid) { PROD = MAT['PRODUCTS'][index]; } }); $.each(PROD['COLORS'],function(index, value) { if(value['CID']==colorid) { COLOR = PROD['COLORS'][index]; } }); $.each(PROD['SIGN_FORMS'],function(index, value) { if(value['SFID']==formid) { SIGN_FORM = PROD['SIGN_FORMS'][index]; } }); $.each(PROD['ENGRAVE_METHODS'],function(index, value) { if(value['EMID']==engraveid) { ENGRAVE = PROD['ENGRAVE_METHODS'][index]; } }); /** ----------------------------------------------------------------------*/ var jsPrice='0.00'; // SIGN DIMS if($("input[name=DIMMODE]:checked").val()==0) { var dim = $('#DIMSTD option:selected').val().split("x"); var width=dim[0]; var height=dim[1]; } else { var width=$('#WIDTH').val(); var height=$('#HEIGHT').val(); } var width = width/10; var height = height/10; var mflaeche = width * height; var mumfang = width * 2 + height * 2; // MATERIAL FLAECHE var mprice = parseFloat(mflaeche) * parseFloat(PROD['PMK_CM2']); var mpriceDis = mprice.toFixed(2); // MATERIALZ var materialzuschlag = mprice * (COLOR['CPA']/100); // ZUSCHNITT var mzuschnitt = mumfang * PROD['PZK_CM']; var mzuschnittDis = mzuschnitt.toFixed(2); jsPrice = parseFloat(mprice) + parseFloat(mzuschnitt) + parseFloat(materialzuschlag); // RAB var groundPrice = jsPrice; jsPrice = jsPrice/0.8; var discountAdd = (jsPrice - groundPrice).toFixed(2); // MEN RAB var tp = $('#TIERCONFIG').val().split("|"); var tierPrice50 = tp[0]/100; var tierPrice100 = tp[1]/100; var tierPrice500 = tp[2]/100; var tierPrice1000 = tp[3]/100; var oldMPrice = jsPrice; var rabattaufschlag = jsPrice - oldMPrice; var rabattaufschlagDis = rabattaufschlag.toFixed(2); var rabatt=0; if($('#MENGE').val() < 5) { } else if ($('#MENGE').val() < 10) { jsPrice = jsPrice * (1 - tierPrice50); rabatt=tp[0]; } else if ($('#MENGE').val() < 50) { jsPrice = jsPrice * (1 - tierPrice100); rabatt=tp[1]; } else if ($('#MENGE').val() < 100) { jsPrice = jsPrice * (1 - tierPrice500); rabatt=tp[2]; } else { jsPrice = jsPrice * (1 - tierPrice1000); rabatt=tp[3]; } var rabattDiff = (rabattaufschlagDis - (jsPrice - oldMPrice)).toFixed(2); // MINDES var priceForm = 0; var priceSondermasz = 0; // FORM MP priceForm = SIGN_FORM['MP']; // SONDER if($("input[name=DIMMODE]:checked").val()==1) { priceSondermasz = PROD['PMP_SM']; } // RAB var discountDis = $('#DISCCONFIG').val(); var discount = $('#DISCCONFIG').val()/100; var aktionsrabatt = (jsPrice * discount).toFixed(2); // FORM var formprice = SIGN_FORM['SFPA']; jsPrice = parseFloat(jsPrice) + parseFloat(formprice); var materialprice = parseFloat(jsPrice).toFixed(2); // GRAVUR var gravurflaeche = gf; //$SOURCE['GRAVURFLAECHE']; var gravurpreis = gravurflaeche * ENGRAVE['EMGK_CM2']; //$EM['EMGRAVURKOSTEN_CM2']; var gravurFlaechenPreis = gravurpreis.toFixed(2); var gravurAufschlag = (gravurpreis * (ENGRAVE['PEMPAPROZ']/100)); var gravurAufschlagDis = gravurAufschlag.toFixed(2); gravurpreis = gravurpreis + gravurAufschlag; // MIN SCHILD var minPricePerSign = 0; var chkm = $('#MENGE').val(); var chkmps = new Array(); var chkx = 0; $.each(ENGRAVE['EM_MINIMUM_QUANTITIES'],function(index, value) { if(value['EMID']==$('#ENGRAVEMETHOD option:selected').val()) { chkmps[chkx]=value['MQPPS']; chkx++; } }); if(chkm<5) { minPricePerSign = chkmps[0]; } else if(chkm<10) { minPricePerSign = chkmps[1]; } else if(chkm<25) { minPricePerSign = chkmps[2]; } else if(chkm<50) { minPricePerSign = chkmps[3]; } else if(chkm<75) { minPricePerSign = chkmps[4]; } else if(chkm<100) { minPricePerSign = chkmps[5]; } else if(chkm<250) { minPricePerSign = chkmps[6]; } else if(chkm<500) { minPricePerSign = chkmps[7]; } else if(chkm<1000) { minPricePerSign = chkmps[8]; } else { minPricePerSign = chkmps[9]; } // GRAVURFLACHE var gravurMindestPreisAktiv='Ja'; var gravurAktiv=''; if(gravurflaeche!=0) { if(gravurpreis 0) { var frow= gca.split("###"); xs=1 for(x=0; x ENGRAVE['EMFF_MP_PF']) { fbauslage = fcrow; } else { fbauslage = ENGRAVE['EMFF_MP_PF']; farbeMinAktiv = 'Nein'; } farbtmp= '+ Farbe ' + xs +': ' + fc + ' * ' + ENGRAVE['EMFF_MP_PF'] + ' = ' + fcrow + ' > ' + ENGRAVE['EMFF_MP_PF'] + ' (' +farbeMinAktiv +')' + "\n"; farbstr = farbstr + farbtmp; farbauslage= parseFloat(farbauslage) + parseFloat(fbauslage); } xs++; } } var farbauslageDis = parseFloat(farbauslage).toFixed(2); // SERIENTEXT var serientextPreis ='0.00'; var serienTextRows='0.00'; var zeilenCount=0; var serienTextRowsMore='Nein'; var words = new Array(); var txtdata=$('#TXTDATA').val(); var xs=0; if(txtdata.length > 0) { rows = txtdata.split("|"); for (x=0; x0) { if(first==0) { serienTextRows= parseFloat(serienTextRows) + parseFloat(ENGRAVE['EM_P_ZEILE']); } else { serienTextRows= parseFloat(serienTextRows) + parseFloat(ENGRAVE['EM_P_NEXTZEILE']); } zeilenCount++; first=1; } } xs=0; words= new Array(); } } serientextPreis = serienTextRows > ENGRAVE['EM_P_MAXZEILE'] ? ENGRAVE['EM_P_MAXZEILE'] : serienTextRows; serienTextRowsMore = serienTextRows > ENGRAVE['EM_P_MAXZEILE'] ? 'Ja' : 'Nein'; serientextPreis= parseFloat((serientextPreis/$('#MENGE').val())).toFixed(2); } // BEFESTIGUNG var fxprice=0; var SIGN_FORMS = new Array(); var FIXATION= new Array(); $.each(PROD['SIGN_FORMS'],function(index, value) { if(value['SFID']==$('#FORMID').val()) { SIGN_FORMS = PROD['SIGN_FORMS'][index]; } }); if(SIGN_FORMS['SFFIXATIONS']!==null) { $.each(SIGN_FORMS['SFFIXATIONS'],function(index, value) { if(value['FXID']==$('#FIXATIONID').val()) { FIXATION = SIGN_FORMS['SFFIXATIONS'][index]; } }); if(FIXATION['FXMODE']==0) { fxprice=parseFloat(FIXATION['FXP_ST']); } else if(FIXATION['FXMODE']==1) { fxprice = parseFloat(FIXATION['FXP_CM2'] * (mflaeche/10)); if(fxprice<=FIXATION['FXMP']) { fxprice= parseFloat(FIXATION['FXMP']); } } } // ZUbEHOER / KOMPONENTEN var componentprice=0; var componentList = getComponents(); for(var key in componentList) { $.each(PROD['COMPONENTS'],function(index, value) { //console.log('cp: ' + key + ',' + index + ',' + value['CPID']); if(value['CPID'] == key) { componentprice = componentprice + (value['CPPREIS_STUECK'] * componentList[key]); } }); } // ADD PROGRAMMKOSTEN + BILDMONTAGE TO ALL (IF FRAESGRAVUR) var programmkosten = ENGRAVE['EMPK']; var bildmontage = bm==1 ? ENGRAVE['EMBILDMONTAGE'] : '0.00'; //alert(jsPrice); jsPrice = parseFloat(jsPrice) + parseFloat(gravurpreis) + parseFloat(ausschnittpreis) + parseFloat(farbauslage) + parseFloat(serientextPreis) + parseFloat(ENGRAVE['EMHANDLING']) + parseFloat(fxprice) + componentprice; jsPrice = parseFloat(jsPrice).toFixed(2); var pricePerSign = jsPrice; var priceAllSigns= (jsPrice * $('#MENGE').val()).toFixed(2); //alert(priceAllSigns + ', ' + $('#MENGE').val()); var priceFormOrSondermasz = parseFloat(priceForm) > parseFloat(priceSondermasz) ? priceForm : priceSondermasz; var priceFormDis = parseFloat(priceForm) > parseFloat(priceSondermasz) ? 'Ja' : 'Nein'; var priceSondermaszDis = parseFloat(priceForm) > parseFloat(priceSondermasz) ? 'Nein' : 'Ja'; if(priceFormOrSondermasz==0 || 0.00) { priceFormDis='Nein'; priceSondermaszDis='Nein'; } jsPrice = jsPrice * parseInt($('#MENGE').val()) + parseFloat(priceFormOrSondermasz) + parseFloat(programmkosten) + parseFloat(bildmontage); jsPrice = parseFloat(jsPrice * 1.19).toFixed(2); jsPrice = jsPrice.replace(".",","); /** PRLOG && console.log('PriceCALC: ' +width, height); PRLOG && console.log('-----------------------------------------------------------------------------') PRLOG && console.log('+ A: ' + mflaeche +' cm2 * '+ PROD['PMK_CM2'] +' = ' + mpriceDis + ' EUR'); PRLOG && console.log('+ U: ' + mumfang + ' cm * '+ PROD['PZK_CM'] + ' = ' + mzuschnittDis + ' EUR'); PRLOG && console.log('+ Materialzuschlag: ' + materialzuschlag + ' EUR (' + COLOR['CPA'] +' %)'); PRLOG && console.log('+ Rabatt auf Mat: ' + discountAdd + ' EUR (20%)'); PRLOG && console.log('+ Mengenstaffelaufschlag: ' + rabattaufschlagDis +' EUR'); PRLOG && console.log('- Gewaehrter Mengenrabatt: ' + rabattDiff + ' EUR (' + rabatt +' %)'); PRLOG && console.log('+ Form: ' + formprice+' EUR '); PRLOG && console.log('= Materialpeis: ' + materialprice + ' EUR '); PRLOG && console.log('-----------------------------------------------------------------------------'); PRLOG && console.log('+ Gravur: ' + gravurflaeche +' cm2 * ' + ENGRAVE['EMGK_CM2'] + ' = ' +gravurFlaechenPreis +' EUR '); PRLOG && console.log('+ Gravuraufschlag: ' + ENGRAVE['PEMPAPROZ'] + ' % = ' + gravurAufschlagDis + ' EUR '); PRLOG && console.log('> MinGravurPreis/Schild?: ' + minPricePerSign + ' EUR ('+gravurMindestPreisAktiv+')'); PRLOG && console.log('= Gravurpreis: ' + gravurpreisDis + ' EUR ' + gravurAktiv); PRLOG && console.log('-----------------------------------------------------------------------------'); PRLOG && console.log('+ Ausschnitte: ' + ausschnittumfang + ' cm * ' + PROD['PZK_CM'] + ' = ' +ausschnittpreisDis + ' EUR'); PRLOG && console.log('-----------------------------------------------------------------------------') PRLOG && console.log(farbstr); PRLOG && console.log('= Farbe auslegen: ' + farbauslageDis + ' EUR'); PRLOG && console.log('-----------------------------------------------------------------------------'); PRLOG && console.log('+ Befestigung: ' + fxprice + ' EUR '); PRLOG && console.log('+ Zubehoer: ' + componentprice + ' EUR '); PRLOG && console.log('+ Handling: ' + ENGRAVE['EMHANDLING'] + ' EUR'); PRLOG && console.log('= Preis pro Schild: ' + pricePerSign + ' EUR '); PRLOG && console.log('-----------------------------------------------------------------------------'); PRLOG && console.log('+ Serientext: ' + serienTextRows +' EUR ('+ zeilenCount +' Zeilen)'); PRLOG && console.log('> Maximalpreis?: ' + ENGRAVE['EM_P_MAXZEILE'] + ' EUR (' +serienTextRowsMore +')'); PRLOG && console.log('= Serientext (pro Schild): ' + serientextPreis +' EUR '); PRLOG && console.log('-----------------------------------------------------------------------------'); PRLOG && console.log('+ Preis alle Schilder: ' + priceAllSigns + ' EUR'); PRLOG && console.log('+ MinBest.Wert Schildform?: ' + priceForm + ' EUR (' +priceFormDis+')'); PRLOG && console.log('+ MinBest.Wert Sondermasse?: ' + priceSondermasz + ' EUR (' +priceSondermaszDis+ ')'); PRLOG && console.log('+ Programmkosten: ' + programmkosten + ' EUR (pro Auftrag)'); PRLOG && console.log('+ Bildmontage: ' + bildmontage + ' EUR (pro Auftrag)'); PRLOG && console.log('= Gesamtpreis: ' + jsPrice + ' EUR (Netto)'); PRLOG && console.log('-----------------------------------------------------------------------------'); **/ return jsPrice; } /** ---------------------------------------------------------------------------*/ /** UPDATE OBJECTS FROM CONTROLS */ /** Recalcs Objects size + pos from form elements like ... */ /** ---------------------------------------------------------------------------*/ function updateObjFromControls(mode) { var obj = canvas.getActiveObject(); var type = 'none'; var ratio = 1; // TEST FONT SIZE if($('#objHeight').val() <= parseFloat($('#ENGRAVEMINFONTSIZE').val())) { $('#objHeight').val(parseFloat($('#ENGRAVEMINFONTSIZE').val())); obj.scaleToHeight($('#ENGRAVEMINFONTSIZE').val()); } // SCALE OBJECT SIZE if(obj) { type = obj.get('type'); } if(mode=='scaleX') { width = $('#objWidth').val() * SIGN.scaleFac; if(obj.mmkLayerType=='layerCutForm') { // unproportional obj.set('scaleX', width /obj.width); $('#objWidth').val($('#objWidth').val()); } else { // proportional obj.scaleToWidth(width); height = obj.get('height') * obj.get('scaleY'); $('#objHeight').val((height / SIGN.scaleFac).toFixed(1)); $('#objWidth').val($('#objWidth').val()); } if(type=='i-text') { $('#textSize').val($('#objHeight').val()); } } else if(mode=='scaleY') { height = $('#objHeight').val() * SIGN.scaleFac; if(obj.mmkLayerType=='layerCutForm') { // unproportional obj.set('scaleY', height /obj.height); $('#objHeight').val($('#objHeight').val()); } else { // proportional obj.scaleToHeight(height); width = obj.get('width') * obj.get('scaleX'); $('#objWidth').val((width / SIGN.scaleFac).toFixed(1)); $('#objHeight').val($('#objHeight').val()); } if(type=='i-text') { $('#textSize').val($('#objHeight').val()); } } else if(mode=='scaleText') { height = $('#textSize').val() * SIGN.scaleFac; obj.scaleToHeight(height); width = obj.get('width') * obj.get('scaleX'); $('#objWidth').val((width / SIGN.scaleFac).toFixed(1)); $('#objHeight').val($('#textSize').val()); } switch(type) { default: if(mode=='scaleSize') { obj.set({ scaleY: scaleFac, scaleX: scaleFac }); } else if(mode=='pos') { obj.set({ left: parseInt($('#objXPos').val()), top: parseInt($('#objYPos').val()) }); } else if (mode=='angle') { obj.set({ angle: parseFloat($('#objAngle').val()) }); } break; } // RESTORE CUTFORM DISPLAYrestore cutform borders if(obj.mmkLayerType=='layerCutForm') { restoreCutFormBorder(obj); } obj.setCoords(); canvas.renderAll(); LOG && console.log('UpdateObjFromControls: Mode: ' + mode+', Type: ' +type ); } /** ---------------------------------------------------------------------------*/ /** UPDATE OBJECT CONTROLS */ /** Recalcs Objects size + pos from Canvas/Object */ /** ---------------------------------------------------------------------------*/ function updateObjControls(source) { $('#errorbar').hide(); var obj = canvas.getActiveObject(); var type =''; var strokeWidth=0; if(obj) { type = obj.get('type'); } if(source=='selection:cleared') { hideObjControls(); } $('#textSelector').hide(); LOG && console.log('UpdateObjControls: Type: ' +type+ ', Event: '+source); switch(type) { case 'i-text': $('#textSelector').is(':hidden') ? $('#textSelector').show(): ''; if(obj.mmkLayerType=='layerSerienText') { $('#textBox').val('Es ist ein Serientextfeld ausgewählt. Um den Text zu bearbeiten klicken Sie rechts auf "Bearbeiten/Importieren'); $('#textBox').prop('disabled', true); $('#textSymbols').hide(); } else { $('#textBox').val(obj.text); $('#textBox').prop('disabled', false); $('#textSymbols').show(); } if (!$('#textFontSelector option[value="' +obj.fontFamily+ '"]').prop("selected", true).length) { //$('#textFontSelector').val($("#textFontSelector option:first").val()); chooseText($("#textFontSelector option:first").val()); } else { $('#textFontSelector').val(obj.fontFamily); } $('#textFontList').hide(); // Maybe still open $('#textFontListClose').hide(); // TEXT SIZE var textSize=parseFloat(obj.get('height') * obj.get('scaleY')/SIGN.scaleFac).toFixed(1); if(textSize < parseFloat($('#ENGRAVEMINFONTSIZE').val())) { textSize=$('#ENGRAVEMINFONTSIZE').val(); $('#errorbar').html('Ups, Die Mindestschrifth\u00F6he f\u00FCr diese Gravurmethode liegt bei ' +$('#ENGRAVEMINFONTSIZE').val()+'mm!'); $('#errorbar').show(); } $('#textSize').val(textSize); // GET TEXT PROPERTIES if(obj.fontWeight=='bold') { $('#textBold').removeClass('grad').addClass('gradSelect'); } else { $('#textBold').removeClass('gradSelect').addClass('grad'); } if(obj.fontStyle =='italic') { $('#textItalic').removeClass('grad').addClass('gradSelect'); } else { $('#textItalic').removeClass('gradSelect').addClass('grad'); } if(obj.textDecoration == 'underline') { $('#textUnderline').removeClass('grad').addClass('gradSelect'); } else { $('#textUnderline').removeClass('gradSelect').addClass('grad'); } // GET TEXT ALIGNMENT var align= obj.get('textAlign'); switch(align) { case 'left' : $("#textSelector td .ttformat").each(function() { $(this).removeClass('gradSelect').addClass('grad'); }); $('#textLeft').addClass('gradSelect'); break; case 'center' : $("#textSelector td .ttformat").each(function() { $(this).removeClass('gradSelect').addClass('grad'); }); $('#textCenter').addClass('gradSelect'); break; case 'right' : $("#textSelector td .ttformat").each(function() { $(this).removeClass('gradSelect').addClass('grad'); }); $('#textRight').addClass('gradSelect'); break; } // SELECT RIGHT FONT SETTINGS + RIGHT TAB var x=0; $('#responsiveTabs').responsiveTabs('activate',2); $("#sideNav li a").each(function() { if(x!=2) { $(this).removeClass('orange').addClass('gray'); } else { $(this).removeClass('gray').addClass('orange'); } x++; }); break; case 'image': break; case 'path-group': break; // doesn't exist anymore default: } if(obj) { checkObjectWidthHeight($('#objWidth').val(),$('#objHeight').val()); // DISPLAY POSITION $('#objXPos').val(parseFloat(obj.get('left') / SIGN.scaleFac).toFixed(1)); $('#objYPos').val(parseFloat(obj.get('top') / SIGN.scaleFac).toFixed(1)); $('#objWidth').val(parseFloat(obj.get('width') * obj.get('scaleX') / SIGN.scaleFac).toFixed(1)); $('#objHeight').val(parseFloat(obj.get('height') * obj.get('scaleY') / SIGN.scaleFac).toFixed(1)); $('#objAngle').val(parseInt(obj.get('angle'))); $('#objectEdit').show(); // IF OBJECT TYPE GROUP AND layerCOMPONENT NO SCALE if(obj.mmkLayerType=='layerComponent') { $('#objWidth').prop('readonly', true); $('#objWidth').addClass('inputInactive'); $('#objHeight').prop('readonly', true); $('#objHeight').addClass('inputInactive'); } else { $('#objWidth').prop('readonly', false); $('#objWidth').removeClass('inputInactive'); $('#objHeight').prop('readonly', false); $('#objHeight').removeClass('inputInactive'); } // RESTORE CUTFORM DISPLAYrestore cutform borders if(obj.mmkLayerType=='layerCutForm') { restoreCutFormBorder(obj); } } // CHECK FOR OVERLAYING OBJECTS for(x=2; x x CHANGE MASSSTAB var max = SIGN.dimMax.split('x'); var min = SIGN.dimMin.split('x'); // CHECK MAX/MIN DIM if($("#DIMMODE1").is(':checked')) { if(x.length>=6 || x > parseInt(max[0])) { x=max[0]; $('#errorbar').html('Der Artikel kann maximal ' +max[0]+' x '+max[1]+ ' mm groß sein!'); $('#WIDTH').val(max[0]+'.0'); $('#errorbar').show(); } if(x.length<1 || x < parseInt(min[0])) { x=min[0]; $('#errorbar').html('Der Artikel muss mindestens ' +min[0]+' x '+min[1]+ ' mm groß sein!'); $('#WIDTH').val(min[0]+'.0'); $('#errorbar').show(); } if(y.length>=6 || y > parseInt(max[1])) { y=max[1]; $('#errorbar').html('Der Artikel kann maximal ' +max[0]+' x '+max[1]+ ' mm groß sein!'); $('#HEIGHT').val(max[1]+'.0'); $('#errorbar').show(); } if(y.length<1 || y < parseInt(min[1])) { y=min[1]; $('#errorbar').html('Der Ariktel muss mindestens ' +min[0]+' x '+min[1]+ ' mm groß sein!'); $('#HEIGHT').val(min[1]+'.0'); $('#errorbar').show(); } } // XAXIS CORRECT SIZE xAxisDim= parseFloat(x).toFixed(1); yAxisDim= parseFloat(y).toFixed(1); // EMMIT MAX RATIO var cw=728; // CANVAS MAX WIDTH var cy=470; // CANVAS MAX HEIGHT var xRatio = parseFloat(cw/x); var yRatio = parseFloat(cy/y); //.toPrecision(5); // GET SCALE DIM if(x > y && (xRatio*y) < cy) { SIGN.scaleFac=xRatio; //parseFloat(728/x); x = 728; //y = parseInt(y*SIGN.scaleFac); y = y*SIGN.scaleFac; } else { SIGN.scaleFac=yRatio; //parseFloat(470/y); //490 y = 470; //x = parseInt(x*SIGN.scaleFac); x = x*SIGN.scaleFac; } if(parseInt(SIGN.scaleFac)==0) { // //var scaleDec=SIGN.scaleFac.replace(/0\./g,''); //SIGN.scale='1:'+parseInt(scaleDec); if(SIGN.scaleFac==xRatio) { SIGN.scale='1:'+ Math.round(xAxisDim/cw); } else { SIGN.scale='1:'+ Math.round(yAxisDim/cy); } } else { SIGN.scale=parseInt(SIGN.scaleFac)+':1'; } // RESIZE OBJECT BY TYPE var obj = canvas.item(0); var borderobj = canvas.item(1); var type = obj.get('type'); // RECALC BORDER calculateBorder($('#BORDERID').val()); LOG && console.log('ResizeBack to: '+ x+ 'x' +y+ ' ('+SIGN.scaleFac+' / ' + SIGN.scale+')'); switch(type) { case 'rect' : //canvas.item(0)['width'] = x; canvas.item(0)['height'] = y; //canvas.item(1)['width'] = x-SIGN.borderDistance; canvas.item(1)['height'] = y-SIGN.borderDistance; obj.set({ width: x, height: y}); borderobj.set({ width: x-SIGN.borderDistance, height: y - SIGN.borderDistance}); if($('#FORMDATA').val()=='rounded') { obj.set({rx:parseInt(SIGN.cornerRadius * SIGN.scaleFac), ry: parseInt(SIGN.cornerRadius * SIGN.scaleFac)}); borderobj.set({rx:parseInt(SIGN.cornerRadius * SIGN.scaleFac), ry: parseInt(SIGN.cornerRadius * SIGN.scaleFac)}); //canvas.item(0)['rx'] = parseInt(SIGN.cornerRadius * SIGN.scaleFac); //canvas.item(0)['ry'] = parseInt(SIGN.cornerRadius * SIGN.scaleFac); //canvas.item(1)['rx'] = parseInt(SIGN.cornerRadius * SIGN.scaleFac); //canvas.item(1)['ry'] = parseInt(SIGN.cornerRadius * SIGN.scaleFac); } break; case 'circle' : alert('circle not detected'); break; case 'ellipse': obj.set({ rx: parseInt(x/2), ry: parseInt(y/2) }); borderobj.set({ rx: parseInt((x-SIGN.borderDistance)/2), ry: parseInt((y-SIGN.borderDistance)/2) }); break; case 'path': case 'group': case 'path-group': obj.set({ top: parseInt(y/2), left: parseInt(x/2), scaleY: parseInt(y)/obj.height, scaleX: parseInt(x)/obj.width }); borderobj.set({ top: parseInt((y-SIGN.borderDistance)/2), left: parseInt((x-SIGN.borderDistance)/2), scaleY: parseInt(y-SIGN.borderDistance)/borderobj.height, scaleX: parseInt(x-SIGN.borderDistance)/borderobj.width }); break; } // REDRAW BORDEROBJ redrawBorder(borderobj); // CALC OBJECTS obj.center(); obj.setCoords(); borderobj.center(); borderobj.setCoords(); // SET DIMENSION DISPLAY var xCorr = 20; $('#xDim').css('width', x+'px'); $('#xDim').css('left', xCorr+'px'); $('#xDimValue').html('Breite: '+xAxisDim+' mm, H\u00F6he: '+yAxisDim+' mm  (Ma\u00DFstab '+ SIGN.scale+')'); // SET SCALE SIGN.width=x; SIGN.height=y; // CHECK IF FIXATION IS POSSIBLE delay(function() { var startdelay = timer(0); checkFixation(); restoreComponents(); redrawStayOnTopLayer(); calculateSign('resizeBack()',0); var tdiffdelay = timer(startdelay); LOG && console.log('Delayed Object Loader in resizeBack() (25 ms) loads in: ' +tdiffdelay); }, 25); canvas.renderAll(); } /** ---------------------------------------------------------------------------*/ /** CHANGE BACK COLOR */ /** ---------------------------------------------------------------------------*/ function changeBackColor(obj,color,bgcolor,name,id,bgimage,groupid, mustCalculateSign) { // DESELECT ALL OBJECTS canvas.discardActiveObject(); hideObjControls(); // SET BG PATTERN ON SIGN if(bgimage) { loadBackgroundPattern(bgimage); } else { canvas.item(0).set({'fill':bgcolor}); } // SET FOREGROUND FOR ALL OBJECTS EXCEPT FILL COLORS IN FILLABLE MODE for(x=2; x