function elselect(el,elclass){ if(elclass && el.parent().attr('type') == 'Page'){ if(ButCtrl){ if(el.attr('sys_select') == '1'){ el.attr('sys_select','0'); }else{ el.attr('sys_select','1'); el.find('div').attr('sys_select','0'); } }else{ attr = el.attr('sys_select'); $('div').attr('sys_select','0'); if(attr == '1'){ el.attr('sys_select','0'); $('.SYS_EditorBlockParam').css({ "display": "none" }); $('body').append($('.SYS_EditorBlockParam')); }else{ el.attr('sys_select','1'); el.append($('.SYS_EditorBlockParam')); $('.SYS_EditorBlockParam').css({ "display": "block", "width": el.css('width'), "height": el.css('height'), "padding": el.css('padding'), "margin": el.css('margin'), "border-radius": el.css('border-radius') }); $('.SYS_EditorBlockParamWidth').html(el.css('width')); $('.SYS_EditorBlockParamHeight').html(el.css('height')); } } } } function TouchFuncEditor(func,el){ if(!el.attr('class')){ el.attr('class','no'); } elclass = el.attr('class'); ButTouch = true; if(elclass == "undefined" || elclass == "" || elclass == NaN){ return; } elclass = elclass.split(' '); elclass = elclass[0]; switch (func){ case "press": el.attr('data-w',el.css('width')); el.attr('data-h',el.css('height')); el.attr('data-t',el.css('top')); el.attr('data-l',el.css('left')); el.parent().attr('data-click','none').attr('data-selected','0'); el.parent().parent().attr('data-click','none').attr('data-selected','0'); el.parent().parent().parent().attr('data-click','none').attr('data-selected','0'); $('.SYS_StructureElBlock').hide(); break; case "click": elselect(el,elclass); // Выбираем элемент //$('.SYS_ListElBlock').css('display','none'); break; case "MoveXY": if(!ButCtrl && $('body').attr('mouse') == 'down'){ el.parent().find('div[data-selected="1"]').each(function( index ) { el = $( this ); if(el.css('position') == 'absolute'){ t= parseInt(el.attr('data-t')) + parseInt(PosTouchY); l = parseInt(el.attr('data-l')) + parseInt(PosTouchX); t = Math.floor(t/10)*10; l = Math.floor(l/10)*10; el.css('top',t); el.css('left',l); } }); } break; case "holdR": if(el.attr('holdr') != 'none' && elclass.indexOf('SYS_') == -1){ el.parent().attr('holdr','none'); el.parent().parent().attr('holdr','none'); el.parent().parent().parent().attr('holdr','none'); el.parent().parent().parent().parent().attr('holdr','none'); $('.SYS_ListElBlock').hide(); $('.SYS_ListElBlock3D').hide(); $('.SYS_StructureElBlock').html('').show(); $('.SYS_StructureElBlock').css('left',el.attr('data-touchX')+'px'); topS = $("html").scrollTop()+300; $('.SYS_StructureElBlock').css('top',topS); while(el.attr('class')!='SYS_Main' && el.attr('class')){ console.log(el.attr('class')); id = Math.random(); el.attr('data-id',id); $('.SYS_StructureElBlock').append('
'+el.attr('class')+'
'); if(el.attr("data-type")=="3D"){ PosTouchX = el.attr('touchX')-parseInt($('.SYS_Main').css('margin-left')); PosTouchY = el.attr('touchY'); console.log('touchX - '+PosTouchX); console.log('touchY - '+PosTouchY); mouse3D.x = ( PosTouchX / parseInt(el.css('width')) ) * 2 - 1; mouse3D.y = (- ( PosTouchY / parseInt(el.css('height')) ) * 2 + 1); console.log('mouse3D.x - '+mouse3D.x); console.log('mouse3D.y - '+mouse3D.y); raycaster.setFromCamera( mouse3D, camera3D ); var intersects = raycaster.intersectObjects( scene.children, true ); if(intersects[0]){ //console.log(intersects[0].object); var But = []; for(var z=0; z<1; z++){ obj = intersects[z].object; for(var i=0; i<10; i++){ if(obj.name){ console.log(obj.name); $('.SYS_StructureElBlock').append('
'+obj.name+'
'); } if(obj.parent){ obj = obj.parent; } } } } } el = el.parent(); } }else{ el.removeAttr('holdr'); } break; case "clickR": if(el.attr('clickr') != 'none' && elclass.indexOf('SYS_') == -1){ console.log('clickR - '+el.attr('class')); el.parent().attr('clickr','none'); el.parent().parent().attr('clickr','none'); el.parent().parent().parent().attr('clickr','none'); el.parent().parent().parent().parent().attr('clickr','none'); $('.SYS_ListElBlock').css('display','none'); if(el.attr("data-type")=="3D"){ console.log('data-type - 3D'); PosTouchX = el.attr('touchX')-parseInt($('.SYS_Main').css('margin-left')); PosTouchY = el.attr('touchY'); console.log('touchX - '+PosTouchX); console.log('touchY - '+PosTouchY); mouse3D.x = ( PosTouchX / parseInt(el.css('width')) ) * 2 - 1; mouse3D.y = (- ( PosTouchY / parseInt(el.css('height')) ) * 2 + 1); console.log('mouse3D.x - '+mouse3D.x); console.log('mouse3D.y - '+mouse3D.y); raycaster.setFromCamera( mouse3D, camera3D ); var intersects = raycaster.intersectObjects( scene.children, true ); if(intersects[0]){ obj = intersects[0].object; for(var i=0; i<10; i++){ if(obj.name){ console.log('NAME - '+obj.name); $('.SYS_ListElBlock').css('display','none'); $('.SYS_ListElBlock[type="3D"]').css('display','block'); $('.SYS_ListElName').html(obj.name); $('.SYS_ListElBlock').attr('data-el',obj.name); return; } if(obj.parent){ obj = obj.parent; } } } }else{ //$('.SYS_StructureElBlock').hide(); id = Math.random(); el.attr('data-id',id); $('.SYS_ListElBlock').css('display','block'); $('.SYS_ListElBlock[type="3D"]').css('display','none'); $('.SYS_ListElBlock').attr('data-el',id); $('.SYS_ListElName').html(el.attr('class')); topS = $("html").scrollTop()+300; $('.SYS_ListElBlock').css('top',topS); width = $('.SYS_ListElBlock').css('width'); left = parseInt(width)/2; $('.SYS_ListElBlock').css('left','calc(50% - '+left+')'); console.log(left); } }else{ el.removeAttr('clickr'); } break; } switch (elclass){ case "SYS_StructureEl": switch (func){ case "click": $('.SYS_StructureElBlock').hide(); id = el.attr('data-el'); $('.SYS_ListElBlock').css('display','none'); if(el.attr('type') == '3D'){ SYS_ListElBlock = $('.SYS_ListElBlock[type="3D"]'); $('.SYS_ListElBlock[type="3D"]').css('display','block'); }else{ SYS_ListElBlock = $('.SYS_ListElBlock'); $('.SYS_ListElBlock').css('display','block'); $('.SYS_ListElBlock[type="3D"]').css('display','none'); } SYS_ListElBlock.attr('data-el',id); width = SYS_ListElBlock.css('width'); left = parseInt(width)/2; SYS_ListElBlock.css('left','calc(50% - '+left+'px)'); $('.SYS_ListElName').html(el.html()); ButTouch = false; break; } break; case "SYS_ListEl": switch (func){ case "click": id = el.closest('.SYS_ListElBlock').attr('data-el'); $('.SYS_ListElBlock').css('display','none'); $('.SYS_ElEditor').html('').append($('
сохранить
закрыть
')); $('div').removeAttr('data-selected'); console.log(id); if(el.closest('.SYS_ListElBlock').attr("type") == "3D"){ ele = $('div[data-type="3D"]'); $('.SYS_ElEditor').attr("type","3D"); DDD = '3D'; }else{ ele = $('div[data-id="'+id+'"]'); $('.SYS_ElEditor').attr("type","normal"); DDD = 'normal'; } funcel = el.attr('data-func'); $('.SYS_ElEditor').attr('el-funcel',funcel); switch (funcel){ case "name": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','name'); $('.SYS_ElEditor').find('textarea').val(ele.attr('data-name')).select(); break; case "Prj3D": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','Prj3D'); $('.SYS_ElEditor').find('textarea').val(ele.attr('Prj3D')).select(); break; case "class": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','class'); $('.SYS_ElEditor').find('textarea').val(ele.attr('class')).select(); break; case "ck": $('.SYS_ElEditorCK').css('display','block').attr('data-el',id).attr('data-func','ck'); $('textarea.editor').val(ele.html()); break; case "html": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','html'); $('.SYS_ElEditor').find('textarea').val(ele.html()); break; case "style": case "press": case "hold": case "release": case "click": case "move": case "infunc": case 'show': case 'hide': case 'func3D': case 'Cam3D': ElEditorStart(id,ele,funcel,DDD); break; case "in": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in'); if(el.closest('.SYS_ListElBlock').attr("type") == "3D"){ ele = $('div[data-type="3D"]'); mqtt3D = ele.attr('mqtt3D'); mqtt3Darr = JSON.parse(mqtt3D); $('.SYS_ElEditor').find('textarea').val(mqtt3Darr[id]).select(); }else{ $('.SYS_ElEditor').find('textarea').val(ele.attr('data-in')).select(); } break; case "in2": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in2'); $('.SYS_ElEditor').find('textarea').val(ele.attr('data-in2')).select(); break; case "in3": $('.SYS_ElEditor').css('display','block').attr('data-el',id).attr('data-func','in3'); $('.SYS_ElEditor').find('textarea').val(ele.attr('data-in3')).select(); break; case "del": switch (ele.attr('class')){ case 'Popup': StructurePopupView(); ele.remove(); break; case 'Page': StructurePageView(); $('.SYS_Main').append($('.Popup')); ele.remove(); break; default : ele.remove(); } break; case "clon": ele.clone().appendTo(ele.parent()); break; case "ccss": $('.SYS_BufferCss').html(ele.attr('style')); break; case "pcss": ele.attr('style',$('.SYS_BufferCss').html()); break; case "chtml": $('.SYS_BufferHtml').html(ele.html()); break; case "phtml": ele.html($('.SYS_BufferHtml').html()); break; } break; } break; case "SYS_ElEditorSave": switch (func){ case "click": $('.SYS_ElEditor').css('display','none'); $('.SYS_ElEditorCK').css('display','none'); id = el.parent().attr('data-el'); elEditor = el.closest('.SYS_ElEditor'); if(elEditor.attr("type") == "3D"){ ele = $('div[data-type="3D"]'); DDD = '3D'; }else{ ele = $('div[data-id="'+id+'"]'); DDD = 'normal'; } val = el.parent().find('textarea').val(); func2 = el.parent().attr('data-func'); switch (func2){ case 'press': case 'hold': case 'release': case 'click': case 'move': case 'style': case 'infunc': case 'visible': case 'show': case 'hide': case 'func3D': case 'Cam3D': elEditorSave(id,ele,func2,DDD); break; case 'class': ele.attr('class',val); break; case 'name': ele.attr('data-'+func2,val); if(ele.hasClass("Page")){ StructurePageView(); } if(ele.hasClass("Popup")){ StructurePopupView(); } break; case 'Prj3D': ele.attr('Prj3D',val); break; case 'in': if(ele.attr("data-type") == "3D"){ mqtt3D = ele.attr('mqtt3D'); mqtt3Darr = { }; // Объявил объект if(mqtt3D){ mqtt3Darr = JSON.parse(mqtt3D); } mqtt3Darr[id] = val; mqtt3Darrkey = { }; // Объявил объект for (key in mqtt3Darr) { mqtt3Darrkey[mqtt3Darr[key]] = key; } var mqtt3Djson = JSON.stringify(mqtt3Darr); var mqtt3Djsonkey = JSON.stringify(mqtt3Darrkey); console.log(mqtt3Djsonkey); ele.attr("mqtt3D",mqtt3Djson); ele.attr("mqtt3Dkey",mqtt3Djsonkey); }else{ ele.attr('data-'+func2,val.replace(/!\n/g, '!')); } break; case 'in2': case 'in3': ele.attr('data-'+func2,val.replace(/!\n/g, '!')); break; case 'ck': ele.html(val); break; case 'html': ele.html(val); break; } break; } break; case "SYS_SelValImage": switch (func){ case "click": $('.SYS_CssImageSelectBlock').css('display','block'); topS = $("html").scrollTop()+100; $('.SYS_CssImageSelectBlock').css('top',topS); img = el.find('.SYS_Select').val(); img = img.replace(/"/g, ''); $('.SYS_CssImageSelectBlock').attr('data-image',img); $('.SYS_CssImageSelectBlockImage').css('background-image',img); break; } break; case "SYS_CssImageSelectBlockListGet": switch (func){ case "click": $('.SYS_CssImageSelectBlockList').html(''); var hname = el.html(); $.post("GetImages.php", {LOGIN: Login, HNAME: hname}, function(data) { for(var i=0; i< data.length; i++){ imgel = $('
'); $('.SYS_CssImageSelectBlockList').append(imgel); } },"json"); break; } break; case "SYS_CssImageSelectBlockListEl": switch (func){ case "click": img = el.attr('data-image'); $('.SYS_CssImageSelectBlock').attr('data-image',img); $('.SYS_CssImageSelectBlockImage').css('background-image','url('+img+')'); break; } break; case "SYS_CssImageSelectBlockClose": switch (func){ case "click": el.parent().css('display','none'); break; } break; case "SYS_CssImageSelectBlockSave": switch (func){ case "click": img = $('.SYS_CssImageSelectBlock').attr('data-image'); img = img.replace(/"/g, '') console.log(img); if(img.indexOf("url(") == -1){ img = 'url('+img+')'; } $('.SYS_SelValImage').find('.SYS_Select').val(img); $('.SYS_SelValImage').css('background-image',img); el.parent().css('display','none'); break; } break; case "SYS_EditorAdd": switch (func){ case "click": SElECT = el.attr('data-SElECT'); sel = $('.Select_'+SElECT).clone().removeClass('Select_'+SElECT).addClass('SYS_Select').show(); sel.val(''); SYS_SelBlock = $('.SelBlock').clone().removeClass('SelBlock').addClass('SYS_SelBlock'); SYS_SelBlock.append(sel); SYS_SelBlock.append($('')); SYS_SelBlock.append($('
-
')); $('.SYS_EditorBlock').append(SYS_SelBlock); break; } break; case "SYS_SelBlockDel": switch (func){ case "click": el.parent().remove(); break; } break; case "SYS_SelectCSS": switch (func){ case "change": ival = el.parent().find('.SYS_SelVal'); ival.attr('data-val',el.val()); console.log(el.val()); switch (el.val()){ case "background-color": case "color": ival.attr('type','color'); break; default: ival.attr('type','text'); break; } break; } break; case "SYS_ElEditorClose": switch (func){ case "click": el.parent().hide(); break; } break; case "SYS_CssEditorSave": switch (func){ case "click": $('.SYS_CssEditor').css('display','none'); id = el.parent().attr('data-el'); ele = $('div[data-id="'+id+'"]'); css = el.parent().find('textarea').val(); ele.attr('style',css); break; } break; case "SYS_StyleEditorSave": switch (func){ case "click": $('.SYS_StyleEditor').css('display','none'); style = el.parent().find('textarea').val(); $('.SYS_Main').find('style#CSS').html(style); break; } break; case "SYS_FuncEditorSave": switch (func){ case "click": $('.SYS_FuncEditor').css('display','none'); func = el.parent().find('textarea').val(); $('.SYS_FuncSave').attr('data-func',func.replace(/!\n/g, '!')); break; } break; case "SYS_PSBBut": switch (func){ case "click": PSBButFunc = el.attr('data-func'); switch (PSBButFunc){ case "SYS_PageDel": $('.Page[data-select="1"]').remove(); $('.Page:eq(0)').attr('data-select','1'); $('.SYS_PageSettingBlock').css('display','none'); StructurePageView(); break; case "Ok": PageName = $('input[data-func="PageName"').val(); $('.Page[data-select="1"]').attr('data-name',PageName); $('.SYS_PageSettingBlock').css('display','none'); StructurePopupView(); break; } break; } ButTouch = false; break; case "SYS_StructurePage": Index = $('.SYS_StructurePage').index(el); Page = $('.Page:eq('+Index+')'); switch (func){ case "click": $('.Page').css('display','none').attr('data-select','0'); $('.SYS_StructurePage').attr('data-select','0'); el.attr('data-select','1'); Page.css('display','block').attr('data-select','1'); Page.append($('.Popup')); break; } ButTouch = false; break; case "SYS_StructurePopup": Index = $('.SYS_StructurePopup').index(el); Popup = $('.Popup:eq('+Index+')'); switch (func){ case "click": if(Popup.css('display') == 'none'){ el.attr('data-select','1'); Popup.css('display','block'); }else{ el.attr('data-select','0'); Popup.css('display','none'); } Pw = $('.Page[data-select="1"').css('width'); if(parseInt(Popup.css('left'))> parseInt(Pw)){ Popup.css('left',(Pw-100)+'px'); } break; } ButTouch = false; break; case "SYS_PSBIBImage": switch (func){ case "click": $('.SYS_PageSettingBlock').css('display','none'); $('.Page[data-select="1"]').css("background-image",el.css("background-image")); break; } break; case "SYS_MainMenuAddEl": switch (func){ case "click": PageFunc = el.attr('data-func'); switch (PageFunc){ case "PageAdd": $('.Page').css('display','none').attr('data-select','0'); $('.SYS_Main').append('
'); StructurePageView(); break; case "BlockAdd": $('.Page[data-select="1"]').append('
'); break; case "PopupAdd": $('.SYS_Main').append(''); StructurePopupView(); break; case "Func": $('.SYS_FuncEditor').css('display','block'); if($('.SYS_FuncSave').length == 0){ $('.SYS_Main').append('
'); } $('.SYS_FuncEditor').find('textarea').val($('.SYS_FuncSave').attr('data-func')); break; case "Style": $('.SYS_StyleEditor').css('display','block'); ele = $('.SYS_Main').find('style#CSS'); if(ele.length == 0){ $('.SYS_Main').append(''); } ele = $('.SYS_Main').find('style#CSS'); $('.SYS_StyleEditor').find('textarea').val(ele.html()); break; case "Save": $('.SYS_Block').removeAttr('data-selected'); $('.Popup').removeAttr('data-selected'); $('div').removeAttr('opacity'); $('div').removeAttr('data-rotate360'); $('div').removeAttr('touch'); $('div').removeAttr('touch2'); $('div').removeAttr('data-touchxend'); $('div').removeAttr('data-touchyend'); $('div').removeAttr('data-touchxstart'); $('div').removeAttr('data-touchystart'); $('div').removeAttr('touchx'); $('div').removeAttr('touchy'); $('div').removeAttr('ttop'); $('div').removeAttr('data-w'); $('div').removeAttr('data-h'); $('div').removeAttr('data-t'); $('div').removeAttr('data-l'); $('div').removeAttr('data-selected'); $('div').removeAttr('data-release'); // устаревший вариант $('div').removeAttr('sys_select'); $('.Page').attr('type','Page'); $('.SYS_EditorBlockParam').hide(); $('body').append($('.SYS_EditorBlockParam')); //$('.Popup').css('display','none'); $('.SYS_BlockSetting').remove(); $('div[data-type="3D"]').html(''); $('div').removeAttr('data-left'); save = $('.SYS_Main').html(); SaveJson = JSON.stringify(save); project = $('body').attr('project'); $.post("SaveStructure.php", {JSON: SaveJson, LOGIN: Login, FILE: project}, function(mess) { alert(mess); },"json"); break; } break; } ButTouch = false; break; default: ButTouch = false; } console.log('TOUCH - '+el.attr('class')+' FUNC - '+func); el.attr('touch',func); }