From 63b87ce1f091febf5e7373bcc36cab2db871fb2e Mon Sep 17 00:00:00 2001 From: misol Date: Mon, 26 Mar 2012 12:38:29 +0000 Subject: [PATCH] Converting four spaces indent to tab indent at editor template javascripts. According to http://code.google.com/p/xe-core/wiki/PHPCodingConvension#Code_Indenting git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10475 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/editor/tpl/js/editor.js | 788 +++++++++--------- modules/editor/tpl/js/editor_admin.js | 14 +- modules/editor/tpl/js/editor_common.js | 424 +++++----- modules/editor/tpl/js/editor_module_config.js | 12 +- modules/editor/tpl/js/uploader.js | 107 +-- 5 files changed, 676 insertions(+), 669 deletions(-) diff --git a/modules/editor/tpl/js/editor.js b/modules/editor/tpl/js/editor.js index 72d8ef4dc..470dd7057 100755 --- a/modules/editor/tpl/js/editor.js +++ b/modules/editor/tpl/js/editor.js @@ -14,52 +14,52 @@ // editor_sequence값에 해당하는 textarea object를 return function editorGetTextArea(editor_sequence) { - return jQuery('#editor_textarea_' + editor_sequence)[0]; + return jQuery('#editor_textarea_' + editor_sequence)[0]; } function editorGetPreviewArea(editor_sequence) { - return jQuery( '#editor_preview_' + editor_sequence )[0]; + return jQuery( '#editor_preview_' + editor_sequence )[0]; } // editor_sequence에 해당하는 form문 구함 function editorGetForm(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - var fo_obj = iframe_obj.parentNode; - while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } - if(fo_obj.nodeName == 'FORM') return fo_obj; - return; + var fo_obj = iframe_obj.parentNode; + while(fo_obj.nodeName != 'FORM') { fo_obj = fo_obj.parentNode; } + if(fo_obj.nodeName == 'FORM') return fo_obj; + return; } // 에디터의 전체 내용 return function editorGetContent_xe(editor_sequence) { - var html = ""; - if(editorMode[editor_sequence]=='html') { - var textarea_obj = editorGetTextArea(editor_sequence); - if(!textarea_obj) return ""; - html = textarea_obj.value; - } else { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return ""; - html = jQuery(iframe_obj.contentWindow.document.body).html().replace(/^]*)>$/i,''); - } - return html; + var html = ""; + if(editorMode[editor_sequence]=='html') { + var textarea_obj = editorGetTextArea(editor_sequence); + if(!textarea_obj) return ""; + html = textarea_obj.value; + } else { + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return ""; + html = jQuery(iframe_obj.contentWindow.document.body).html().replace(/^]*)>$/i,''); + } + return html; } // 에디터 내의 선택된 부분의 NODE를 return function editorGetSelectedNode(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence), w, range; + var iframe_obj = editorGetIFrame(editor_sequence), w, range; w = iframe_obj.contentWindow; - if(w.document.selection) { - range = w.document.selection.createRange(); - return jQuery('
').html(range.htmlText)[0].firstChild; - } else { - range = w.getSelection().getRangeAt(0); - return jQuery('
').append(range.cloneContents())[0].firstChild; - } + if(w.document.selection) { + range = w.document.selection.createRange(); + return jQuery('
').html(range.htmlText)[0].firstChild; + } else { + range = w.getSelection().getRangeAt(0); + return jQuery('
').append(range.cloneContents())[0].firstChild; + } } /** @@ -68,136 +68,136 @@ function editorGetSelectedNode(editor_sequence) { var _editorFontColor = new Array(); function editorStart(editor_sequence, primary_key, content_key, editor_height, font_color) { - if(typeof(font_color)=='undefined') font_color = '#000'; - _editorFontColor[editor_sequence] = font_color; + if(typeof(font_color)=='undefined') font_color = '#000'; + _editorFontColor[editor_sequence] = font_color; - // iframe obj를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + // iframe obj를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; jQuery(iframe_obj).css('width', '100%').parent().css('width', '100%'); - // 현 에디터를 감싸고 있는 form문을 찾음 - var fo_obj = editorGetForm(editor_sequence); - if(!fo_obj) return; + // 현 에디터를 감싸고 있는 form문을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; - // fo_obj에 editor_sequence 값 지정 - fo_obj.setAttribute('editor_sequence', editor_sequence); + // fo_obj에 editor_sequence 값 지정 + fo_obj.setAttribute('editor_sequence', editor_sequence); - // 모듈 연관 키 값을 세팅 - editorRelKeys[editor_sequence] = new Array(); - editorRelKeys[editor_sequence]["primary"] = fo_obj[primary_key]; - editorRelKeys[editor_sequence]["content"] = fo_obj[content_key]; - editorRelKeys[editor_sequence]["func"] = editorGetContent_xe; + // 모듈 연관 키 값을 세팅 + editorRelKeys[editor_sequence] = new Array(); + editorRelKeys[editor_sequence]["primary"] = fo_obj[primary_key]; + editorRelKeys[editor_sequence]["content"] = fo_obj[content_key]; + editorRelKeys[editor_sequence]["func"] = editorGetContent_xe; - // saved document(자동저장 문서)에 대한 확인 - if(typeof(fo_obj._saved_doc_title)!="undefined" ) { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음 + // saved document(자동저장 문서)에 대한 확인 + if(typeof(fo_obj._saved_doc_title)!="undefined" ) { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음 - var saved_title = fo_obj._saved_doc_title.value; - var saved_content = fo_obj._saved_doc_content.value; + var saved_title = fo_obj._saved_doc_title.value; + var saved_content = fo_obj._saved_doc_content.value; - if(saved_title || saved_content) { - // 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제 - if(confirm(fo_obj._saved_doc_message.value)) { - if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title; - editorRelKeys[editor_sequence]['content'].value = saved_content; + if(saved_title || saved_content) { + // 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제 + if(confirm(fo_obj._saved_doc_message.value)) { + if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title; + editorRelKeys[editor_sequence]['content'].value = saved_content; - var param = new Array(); - param['editor_sequence'] = editor_sequence; - param['primary_key'] = primary_key; - param['mid'] = current_mid; - var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl"); - exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags); - } else { - editorRemoveSavedDoc(); - } - } - } + var param = new Array(); + param['editor_sequence'] = editor_sequence; + param['primary_key'] = primary_key; + param['mid'] = current_mid; + var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl"); + exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags); + } else { + editorRemoveSavedDoc(); + } + } + } - // 대상 form의 content element에서 데이터를 구함 - var content = editorRelKeys[editor_sequence]['content'].value; + // 대상 form의 content element에서 데이터를 구함 + var content = editorRelKeys[editor_sequence]['content'].value; - // IE가 아니고 내용이 없으면
추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) - if(!content && !xIE4Up) content = "
"; + // IE가 아니고 내용이 없으면
추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) + if(!content && !xIE4Up) content = "
"; - // IE일 경우 ctrl-Enter 안내 문구를 노출 - var ieHelpObj = xGetElementById("for_ie_help_"+editor_sequence); - if(xIE4Up && ieHelpObj) { - ieHelpObj.style.display = "block"; - } + // IE일 경우 ctrl-Enter 안내 문구를 노출 + var ieHelpObj = xGetElementById("for_ie_help_"+editor_sequence); + if(xIE4Up && ieHelpObj) { + ieHelpObj.style.display = "block"; + } - // content 생성 - editor_path = editor_path.replace(/^\.\//ig, ''); - var contentHtml = ''+ - ''+ - ''+ - ''+ - ''+ - content+ - ''+ - ''; - iframe_obj.contentWindow.document.open("text/html","replace"); - iframe_obj.contentWindow.document.write(contentHtml); - iframe_obj.contentWindow.document.close(); + // content 생성 + editor_path = editor_path.replace(/^\.\//ig, ''); + var contentHtml = ''+ + ''+ + ''+ + ''+ + ''+ + content+ + ''+ + ''; + iframe_obj.contentWindow.document.open("text/html","replace"); + iframe_obj.contentWindow.document.write(contentHtml); + iframe_obj.contentWindow.document.close(); - // editorMode를 기본으로 설정 - editorMode[editor_sequence] = null; + // editorMode를 기본으로 설정 + editorMode[editor_sequence] = null; - // 에디터를 시작 시킴 - try { - iframe_obj.contentWindow.document.designMode = 'On'; - } catch(e) { - } + // 에디터를 시작 시킴 + try { + iframe_obj.contentWindow.document.designMode = 'On'; + } catch(e) { + } - try { - iframe_obj.contentWindow.document.execCommand("undo", false, null); - iframe_obj.contentWindow.document.execCommand("useCSS", false, true); - } catch (e) { - } + try { + iframe_obj.contentWindow.document.execCommand("undo", false, null); + iframe_obj.contentWindow.document.execCommand("useCSS", false, true); + } catch (e) { + } - /** - * 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가 - * 작성시 필요한 이벤트 체크 - * 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서 - * 에러를 무시하도록 해야 함. - **/ + /** + * 더블클릭이나 키눌림등의 각종 이벤트에 대해 listener 추가 + * 작성시 필요한 이벤트 체크 + * 이 이벤트의 경우 윈도우 sp1 (NT or xp sp1) 에서 iframe_obj.contentWindow.document에 대한 권한이 없기에 try 문으로 감싸서 + * 에러를 무시하도록 해야 함. + **/ - // 위젯 감시를 위한 더블클릭 이벤트 걸기 - try { + // 위젯 감시를 위한 더블클릭 이벤트 걸기 + try { jQuery(iframe_obj.contentWindow.document) .unbind('dblclick.widget') .bind('dblclick.widget', editorSearchComponent); - } catch(e) { - } + } catch(e) { + } - // 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리) - try { - if(xIE4Up) xAddEventListener(iframe_obj.contentWindow.document, 'keydown',editorKeyPress); - else xAddEventListener(iframe_obj.contentWindow.document, 'keypress',editorKeyPress); - } catch(e) { - } + // 에디터에서 키가 눌러질때마다 이벤트를 체크함 (enter키의 처리나 FF에서 alt-s등을 처리) + try { + if(xIE4Up) xAddEventListener(iframe_obj.contentWindow.document, 'keydown',editorKeyPress); + else xAddEventListener(iframe_obj.contentWindow.document, 'keypress',editorKeyPress); + } catch(e) { + } - // 자동저장 필드가 있다면 자동 저장 기능 활성화 - if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); + // 자동저장 필드가 있다면 자동 저장 기능 활성화 + if(typeof(fo_obj._saved_doc_title)!="undefined" ) editorEnableAutoSave(fo_obj, editor_sequence); - // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 - if (xGetCookie('editor_mode') == 'html'){ - var iframe_obj = editorGetIFrame(editor_sequence); - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - textarea_obj = editorGetTextArea(editor_sequence); - textarea_obj.value = content; - xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); - xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'html'; - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = ''; - xGetElementById('use_html_'+editor_sequence).className = 'active'; - } - } + // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 + if (xGetCookie('editor_mode') == 'html'){ + var iframe_obj = editorGetIFrame(editor_sequence); + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + textarea_obj = editorGetTextArea(editor_sequence); + textarea_obj.value = content; + xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); + xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'html'; + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = ''; + xGetElementById('use_html_'+editor_sequence).className = 'active'; + } + } } @@ -213,211 +213,211 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f // 입력 키에 대한 이벤트 체크 function editorKeyPress(evt) { - var e = new xEvent(evt); + var e = new xEvent(evt); - // 대상을 구함 - var obj = e.target; - var body_obj = null; - if(obj.nodeName == "BODY") body_obj = obj; - else body_obj = obj.firstChild.nextSibling; - if(!body_obj) return; + // 대상을 구함 + var obj = e.target; + var body_obj = null; + if(obj.nodeName == "BODY") body_obj = obj; + else body_obj = obj.firstChild.nextSibling; + if(!body_obj) return; - // editor_sequence는 에디터의 body에 attribute로 정의되어 있음 - var editor_sequence = body_obj.getAttribute("editor_sequence"); - if(!editor_sequence) return; + // editor_sequence는 에디터의 body에 attribute로 정의되어 있음 + var editor_sequence = body_obj.getAttribute("editor_sequence"); + if(!editor_sequence) return; - // IE에서 enter키를 눌렀을때 P 태그 대신 BR 태그 입력 - if (xIE4Up && !e.ctrlKey && !e.shiftKey && e.keyCode == 13 && !editorMode[editor_sequence]) { - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + // IE에서 enter키를 눌렀을때 P 태그 대신 BR 태그 입력 + if (xIE4Up && !e.ctrlKey && !e.shiftKey && e.keyCode == 13 && !editorMode[editor_sequence]) { + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - var contentDocument = iframe_obj.contentWindow.document; + var contentDocument = iframe_obj.contentWindow.document; - var obj = contentDocument.selection.createRange(); + var obj = contentDocument.selection.createRange(); - var pTag = obj.parentElement().tagName.toLowerCase(); + var pTag = obj.parentElement().tagName.toLowerCase(); - switch(pTag) { - case 'li' : - return; - break; - default : - obj.pasteHTML("
"); - break; - } - obj.select(); - evt.cancelBubble = true; - evt.returnValue = false; - return; - } + switch(pTag) { + case 'li' : + return; + break; + default : + obj.pasteHTML("
"); + break; + } + obj.select(); + evt.cancelBubble = true; + evt.returnValue = false; + return; + } - // ctrl-S, alt-S 클릭시 submit하기 - if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) { - // iframe 에디터를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + // ctrl-S, alt-S 클릭시 submit하기 + if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) { + // iframe 에디터를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - // 대상 form을 찾음 - var fo_obj = editorGetForm(editor_sequence); - if(!fo_obj) return; + // 대상 form을 찾음 + var fo_obj = editorGetForm(editor_sequence); + if(!fo_obj) return; - // 데이터 동기화 - editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); + // 데이터 동기화 + editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); - // form문 전송 - if(fo_obj.onsubmit) fo_obj.onsubmit(); + // form문 전송 + if(fo_obj.onsubmit) fo_obj.onsubmit(); - // 이벤트 중단 - evt.cancelBubble = true; - evt.returnValue = false; - xPreventDefault(evt); - xStopPropagation(evt); - return; - } + // 이벤트 중단 + evt.cancelBubble = true; + evt.returnValue = false; + xPreventDefault(evt); + xStopPropagation(evt); + return; + } - // ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록) - if (e.ctrlKey) { - // iframe 에디터를 찾음 - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + // ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록) + if (e.ctrlKey) { + // iframe 에디터를 찾음 + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - // html 에디터 모드일 경우 이벤트 취소 시킴 - if(editorMode[editor_sequence]) { - evt.cancelBubble = true; - evt.returnValue = false; - xPreventDefault(evt); - xStopPropagation(evt); - return; - } + // html 에디터 모드일 경우 이벤트 취소 시킴 + if(editorMode[editor_sequence]) { + evt.cancelBubble = true; + evt.returnValue = false; + xPreventDefault(evt); + xStopPropagation(evt); + return; + } - switch(e.keyCode) { - // ctrl+1~6 - case 49 : - case 50 : - case 51 : - case 52 : - case 53 : - case 54 : - editorDo('formatblock',"",e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // ctrl+7 - case 55 : - editorDo('formatblock',"

",e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // ie에서 ctrlKey + enter일 경우 P 태그 입력 - case 13 : - if(xIE4Up) { - if(e.target.parentElement.document.designMode!="On") return; - var obj = e.target.parentElement.document.selection.createRange(); - obj.pasteHTML('

'); - obj.select(); - evt.cancelBubble = true; - evt.returnValue = false; - return; - } - // bold - case 98 : - editorDo('Bold',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // italic - case 105 : - editorDo('Italic',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - // underline - case 117 : - editorDo('Underline',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - //RemoveFormat - case 100 : - editorDo('RemoveFormat',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; + switch(e.keyCode) { + // ctrl+1~6 + case 49 : + case 50 : + case 51 : + case 52 : + case 53 : + case 54 : + editorDo('formatblock',"",e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // ctrl+7 + case 55 : + editorDo('formatblock',"

",e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // ie에서 ctrlKey + enter일 경우 P 태그 입력 + case 13 : + if(xIE4Up) { + if(e.target.parentElement.document.designMode!="On") return; + var obj = e.target.parentElement.document.selection.createRange(); + obj.pasteHTML('

'); + obj.select(); + evt.cancelBubble = true; + evt.returnValue = false; + return; + } + // bold + case 98 : + editorDo('Bold',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // italic + case 105 : + editorDo('Italic',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + // underline + case 117 : + editorDo('Underline',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + //RemoveFormat + case 100 : + editorDo('RemoveFormat',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; - // strike - /* - case 83 : - case 115 : - editorDo('StrikeThrough',null,e.target); - xPreventDefault(evt); - xStopPropagation(evt); - break; - */ - } - } + // strike + /* + case 83 : + case 115 : + editorDo('StrikeThrough',null,e.target); + xPreventDefault(evt); + xStopPropagation(evt); + break; + */ + } + } } // 편집 기능 실행 function editorDo(command, value, target) { - var doc = null; + var doc = null; - // target이 object인지 editor_sequence인지에 따라 document를 구함 - if(typeof(target)=="object") { - if(xIE4Up) doc = target.parentElement.document; - else doc = target.parentNode; - } else { - var iframe_obj = editorGetIFrame(target); - doc = iframe_obj.contentWindow.document; - } + // target이 object인지 editor_sequence인지에 따라 document를 구함 + if(typeof(target)=="object") { + if(xIE4Up) doc = target.parentElement.document; + else doc = target.parentNode; + } else { + var iframe_obj = editorGetIFrame(target); + doc = iframe_obj.contentWindow.document; + } - var editor_sequence = doc.body.getAttribute('editor_sequence'); - if(editorMode[editor_sequence]) return; + var editor_sequence = doc.body.getAttribute('editor_sequence'); + if(editorMode[editor_sequence]) return; - // 포커스 - if(typeof(target)=="object") target.focus(); - else editorFocus(target); + // 포커스 + if(typeof(target)=="object") target.focus(); + else editorFocus(target); - // 실행 - doc.execCommand(command, false, value); + // 실행 + doc.execCommand(command, false, value); - // 포커스 - if(typeof(target)=="object") target.focus(); - else editorFocus(target); + // 포커스 + if(typeof(target)=="object") target.focus(); + else editorFocus(target); } // 폰트를 변경 function editorChangeFontName(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - editorDo('FontName',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + editorDo('FontName',value,srl); + obj.selectedIndex = 0; } function editorChangeFontSize(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - editorDo('FontSize',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + editorDo('FontSize',value,srl); + obj.selectedIndex = 0; } function editorUnDo(obj,srl) { - editorDo('undo','',srl); - obj.selectedIndex = 0; + editorDo('undo','',srl); + obj.selectedIndex = 0; } function editorReDo(obj,srl) { - editorDo('redo','',srl); - obj.selectedIndex = 0; + editorDo('redo','',srl); + obj.selectedIndex = 0; } function editorChangeHeader(obj,srl) { - var value = obj.options[obj.selectedIndex].value; - if(!value) return; - value = "<"+value+">"; - editorDo('formatblock',value,srl); - obj.selectedIndex = 0; + var value = obj.options[obj.selectedIndex].value; + if(!value) return; + value = "<"+value+">"; + editorDo('formatblock',value,srl); + obj.selectedIndex = 0; } /** @@ -426,100 +426,100 @@ function editorChangeHeader(obj,srl) { function editorChangeMode(mode, editor_sequence) { - if(mode == 'html' || mode ==''){ - var expire = new Date(); - expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); - xSetCookie('editor_mode', mode, expire); - } + if(mode == 'html' || mode ==''){ + var expire = new Date(); + expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); + xSetCookie('editor_mode', mode, expire); + } - var iframe_obj = editorGetIFrame(editor_sequence); - if(!iframe_obj) return; + var iframe_obj = editorGetIFrame(editor_sequence); + if(!iframe_obj) return; - var textarea_obj = editorGetTextArea(editor_sequence); - var preview_obj = editorGetPreviewArea(editor_sequence); - var contentDocument = iframe_obj.contentWindow.document; + var textarea_obj = editorGetTextArea(editor_sequence); + var preview_obj = editorGetPreviewArea(editor_sequence); + var contentDocument = iframe_obj.contentWindow.document; - var html = null; - if(editorMode[editor_sequence]=='html') { - html = textarea_obj.value; - contentDocument.body.innerHTML = textarea_obj.value; - } else if (editorMode[editor_sequence]=='preview') { -// html = xInnerHtml(preview_obj); - html = textarea_obj.value; - preview_obj.contentWindow.document.body.innerHTML = ''; -// xAddEventListener(xGetElementById('editor_preview_'+editor_sequence), 'load', function(){setPreviewHeight(editor_sequence)}); - } else { - html = contentDocument.body.innerHTML; - textarea_obj.value = html - html = html.replace(/
/ig,"
\n"); - html = html.replace(/
\n\n/ig,"
\n"); - } + var html = null; + if(editorMode[editor_sequence]=='html') { + html = textarea_obj.value; + contentDocument.body.innerHTML = textarea_obj.value; + } else if (editorMode[editor_sequence]=='preview') { +// html = xInnerHtml(preview_obj); + html = textarea_obj.value; + preview_obj.contentWindow.document.body.innerHTML = ''; +// xAddEventListener(xGetElementById('editor_preview_'+editor_sequence), 'load', function(){setPreviewHeight(editor_sequence)}); + } else { + html = contentDocument.body.innerHTML; + textarea_obj.value = html + html = html.replace(/
/ig,"
\n"); + html = html.replace(/
\n\n/ig,"
\n"); + } - // html 편집 사용시 - if(mode == 'html' && textarea_obj) { - preview_obj.style.display='none'; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - textarea_obj.value = html; - xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); - xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'html'; + // html 편집 사용시 + if(mode == 'html' && textarea_obj) { + preview_obj.style.display='none'; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + textarea_obj.value = html; + xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); + xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'html'; - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = ''; - xGetElementById('use_html_'+editor_sequence).className = 'active'; - } - // 미리보기 - } else if(mode == 'preview' && preview_obj) { - preview_obj.style.display=''; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='none'; + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = ''; + xGetElementById('use_html_'+editor_sequence).className = 'active'; + } + // 미리보기 + } else if(mode == 'preview' && preview_obj) { + preview_obj.style.display=''; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='none'; - var fo_obj = xGetElementById("preview_form"); - if(!fo_obj) { - fo_obj = xCreateElement('form'); - fo_obj.id = "preview_form"; - fo_obj.method = "post"; - fo_obj.action = request_uri; - fo_obj.target = "editor_preview_"+editor_sequence; - xInnerHtml(fo_obj,''); - document.body.appendChild(fo_obj); - } - fo_obj.content.value = html; - fo_obj.submit(); + var fo_obj = xGetElementById("preview_form"); + if(!fo_obj) { + fo_obj = xCreateElement('form'); + fo_obj.id = "preview_form"; + fo_obj.method = "post"; + fo_obj.action = request_uri; + fo_obj.target = "editor_preview_"+editor_sequence; + xInnerHtml(fo_obj,''); + document.body.appendChild(fo_obj); + } + fo_obj.content.value = html; + fo_obj.submit(); - xWidth(preview_obj, xWidth(iframe_obj.parentNode)); - editorMode[editor_sequence] = 'preview'; + xWidth(preview_obj, xWidth(iframe_obj.parentNode)); + editorMode[editor_sequence] = 'preview'; - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor preview'; - xGetElementById('use_rich_'+editor_sequence).className = ''; - xGetElementById('preview_html_'+editor_sequence).className = 'active'; - if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; - } - // 위지윅 모드 사용시 - } else { - preview_obj.style.display='none'; - if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; - contentDocument.body.innerHTML = html; - editorMode[editor_sequence] = null; + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor preview'; + xGetElementById('use_rich_'+editor_sequence).className = ''; + xGetElementById('preview_html_'+editor_sequence).className = 'active'; + if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; + } + // 위지윅 모드 사용시 + } else { + preview_obj.style.display='none'; + if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; + contentDocument.body.innerHTML = html; + editorMode[editor_sequence] = null; - if(xGetElementById('xeEditor_'+editor_sequence)) { - xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor rich'; - xGetElementById('use_rich_'+editor_sequence).className = 'active'; - xGetElementById('preview_html_'+editor_sequence).className = ''; - if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; - } - } + if(xGetElementById('xeEditor_'+editor_sequence)) { + xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor rich'; + xGetElementById('use_rich_'+editor_sequence).className = 'active'; + xGetElementById('preview_html_'+editor_sequence).className = ''; + if(xGetElementById('use_html_'+editor_sequence)) xGetElementById('use_html_'+editor_sequence).className = ''; + } + } } // Editor Info Close function closeEditorInfo(editor_sequence) { - xGetElementById('editorInfo_'+editor_sequence).style.display='none'; - var expire = new Date(); - expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); - xSetCookie('EditorInfo', '1', expire); + xGetElementById('editorInfo_'+editor_sequence).style.display='none'; + var expire = new Date(); + expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); + xSetCookie('EditorInfo', '1', expire); } @@ -528,39 +528,39 @@ function showEditorHelp(e,editor_sequence){ } function showEditorExtension(evt,editor_sequence){ - var oid = '#editorExtension_'+editor_sequence; - var e = new xEvent(evt); - if(jQuery(oid).hasClass('extension2')){ + var oid = '#editorExtension_'+editor_sequence; + var e = new xEvent(evt); + if(jQuery(oid).hasClass('extension2')){ jQuery(oid).addClass('open'); - if(e.pageX <= xWidth('editor_component_'+editor_sequence)){ + if(e.pageX <= xWidth('editor_component_'+editor_sequence)){ jQuery('#editor_component_'+editor_sequence).css('right','auto').css('left', 0); - }else{ + }else{ jQuery('#editor_component_'+editor_sequence).css('right', 0).css('left', 'auto'); - } - }else{ + } + }else{ jQuery(oid).attr('class', 'extension2'); - } + } } function showPreviewContent(editor_sequence) { - if(typeof(editor_sequence)=='undefined') return; - if(typeof(_editorFontColor[editor_sequence])=='undefined') return; - var preview_obj = editorGetPreviewArea(editor_sequence); - preview_obj.contentWindow.document.body.style.color = _editorFontColor[editor_sequence]; + if(typeof(editor_sequence)=='undefined') return; + if(typeof(_editorFontColor[editor_sequence])=='undefined') return; + var preview_obj = editorGetPreviewArea(editor_sequence); + preview_obj.contentWindow.document.body.style.color = _editorFontColor[editor_sequence]; } function setPreviewHeight(editor_sequence){ - var h = xGetElementById('editor_preview_'+editor_sequence).contentWindow.document.body.scrollHeight; - if(h < 400) h=400; - xHeight('editor_preview_'+editor_sequence,h+20); + var h = xGetElementById('editor_preview_'+editor_sequence).contentWindow.document.body.scrollHeight; + if(h < 400) h=400; + xHeight('editor_preview_'+editor_sequence,h+20); } function getAutoSavedSrl(ret_obj, response_tags, c) { - var editor_sequence = ret_obj['editor_sequence']; - var primary_key = ret_obj['key']; - var fo_obj = editorGetForm(editor_sequence); + var editor_sequence = ret_obj['editor_sequence']; + var primary_key = ret_obj['key']; + var fo_obj = editorGetForm(editor_sequence); - fo_obj[primary_key].value = ret_obj['document_srl']; - if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true); + fo_obj[primary_key].value = ret_obj['document_srl']; + if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true); } diff --git a/modules/editor/tpl/js/editor_admin.js b/modules/editor/tpl/js/editor_admin.js index 1c8966f7a..b213af0b1 100644 --- a/modules/editor/tpl/js/editor_admin.js +++ b/modules/editor/tpl/js/editor_admin.js @@ -5,13 +5,13 @@ **/ function doSetupComponent(component_name) { - popopen(request_uri.setQuery('module','editor').setQuery('act','dispEditorAdminSetupComponent').setQuery('component_name',component_name), 'SetupComponent'); + popopen(request_uri.setQuery('module','editor').setQuery('act','dispEditorAdminSetupComponent').setQuery('component_name',component_name), 'SetupComponent'); } function toggleSectionCheckBox(obj, id) { - var box_list = xGetElementsByTagName('input', xGetElementById(id)); - if(typeof(box_list.length)=='undefined') return; - for(var i in box_list) { - box_list[i].checked = obj.checked; - } -} + var box_list = xGetElementsByTagName('input', xGetElementById(id)); + if(typeof(box_list.length)=='undefined') return; + for(var i in box_list) { + box_list[i].checked = obj.checked; + } +} \ No newline at end of file diff --git a/modules/editor/tpl/js/editor_common.js b/modules/editor/tpl/js/editor_common.js index 5d79974a0..758bac524 100644 --- a/modules/editor/tpl/js/editor_common.js +++ b/modules/editor/tpl/js/editor_common.js @@ -7,12 +7,12 @@ var editorRelKeys = new Array(); ///< 에디터와 각 모듈과의 연동을 var editorDragObj = {isDrag:false, y:0, obj:null, id:'', det:0, source_height:0} function editorGetContent(editor_sequence) { - // 입력된 내용을 받아옴 - var content = editorRelKeys[editor_sequence]["func"](editor_sequence); + // 입력된 내용을 받아옴 + var content = editorRelKeys[editor_sequence]["func"](editor_sequence); - // 첨부파일 링크시 url을 변경 - var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' ); - return content.replace(reg_pattern, "$1"); + // 첨부파일 링크시 url을 변경 + var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' ); + return content.replace(reg_pattern, "$1"); } // 에디터에 포커스를 줌 @@ -32,64 +32,64 @@ function editorFocus(editor_sequence) { **/ // 자동 저장 활성화 시키는 함수 (50초마다 자동저장) function editorEnableAutoSave(fo_obj, editor_sequence, callback) { - var title = fo_obj.title.value; - var content = editorRelKeys[editor_sequence]['content'].value; + var title = fo_obj.title.value; + var content = editorRelKeys[editor_sequence]['content'].value; - editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false}; + editorAutoSaveObj = {"fo_obj":fo_obj, "editor_sequence":editor_sequence, "title":title, "content":content, locked:false}; clearTimeout(editorEnableAutoSave.timer); - editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback)}, 50000); + editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback)}, 50000); } editorEnableAutoSave.timer = null; // ajax를 이용하여 editor.procEditorSaveDoc 호출하여 자동 저장시킴 exe는 강제 코드 function _editorAutoSave(exe, callback) { - var fo_obj = editorAutoSaveObj.fo_obj; - var editor_sequence = editorAutoSaveObj.editor_sequence; + var fo_obj = editorAutoSaveObj.fo_obj; + var editor_sequence = editorAutoSaveObj.editor_sequence; - // 50초마다 동기화를 시킴 강제 실행은 제외 - if(!exe) { + // 50초마다 동기화를 시킴 강제 실행은 제외 + if(!exe) { clearTimeout(editorEnableAutoSave.timer); editorEnableAutoSave.timer = setTimeout(function(){ _editorAutoSave(exe, callback) }, 50000); } - // 현재 자동저장중이면 중지 - if(editorAutoSaveObj.locked == true) return; + // 현재 자동저장중이면 중지 + if(editorAutoSaveObj.locked == true) return; - // 대상이 없으면 자동저장 시키는 기능 자체를 중지 - if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return; + // 대상이 없으면 자동저장 시키는 기능 자체를 중지 + if(!fo_obj || typeof(fo_obj.title)=='undefined' || !editor_sequence) return; - // 자동저장을 위한 준비 - var title = fo_obj.title.value; + // 자동저장을 위한 준비 + var title = fo_obj.title.value; var content = ''; try{ content = editorGetContent(editor_sequence); }catch(e){ } - // 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함 또는 강제 저장 설정시 자동 저장 - if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content || exe) { - var params, oDate = new Date(); + // 내용이 이전에 저장하였던 것과 다르면 자동 저장을 함 또는 강제 저장 설정시 자동 저장 + if(title != editorAutoSaveObj.title || content != editorAutoSaveObj.content || exe) { + var params, oDate = new Date(); - params = { + params = { title : title, content : content, - mid : current_mid, + mid : current_mid, document_srl : editorRelKeys[editor_sequence]['primary'].value }; - editorAutoSaveObj.title = title; - editorAutoSaveObj.content = content; + editorAutoSaveObj.title = title; + editorAutoSaveObj.content = content; - // 메시지 만들어서 보여줌 - jQuery("#editor_autosaved_message_"+editor_sequence).text(oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg).show(300); + // 메시지 만들어서 보여줌 + jQuery("#editor_autosaved_message_"+editor_sequence).text(oDate.getHours()+':'+oDate.getMinutes()+' '+auto_saved_msg).show(300); - // 현재 자동저장중임을 설정 - editorAutoSaveObj.locked = true; + // 현재 자동저장중임을 설정 + editorAutoSaveObj.locked = true; - // 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함) - show_waiting_message = false; - exec_xml( + // 서버 호출 (서버와 교신중이라는 메세지를 보이지 않도록 함) + show_waiting_message = false; + exec_xml( "editor", "procEditorSaveDoc", params, @@ -100,15 +100,15 @@ function _editorAutoSave(exe, callback) { if(jQuery.isFunction(callback)) callback(arg); } ); - show_waiting_message = true; - } + show_waiting_message = true; + } } // 자동저장된 모든 메세지를 삭제하는 루틴 function editorRemoveSavedDoc() { - var param = new Array(); - param['mid'] = current_mid; - exec_xml("editor","procEditorRemoveSavedDoc", param); + var param = new Array(); + param['mid'] = current_mid; + exec_xml("editor","procEditorRemoveSavedDoc", param); } /** @@ -117,26 +117,26 @@ function editorRemoveSavedDoc() { // editor_sequence값에 해당하는 iframe의 object를 return function editorGetIFrame(editor_sequence) { - if(editorRelKeys != undefined && editorRelKeys[editor_sequence] != undefined && editorRelKeys[editor_sequence]['editor'] != undefined) + if(editorRelKeys != undefined && editorRelKeys[editor_sequence] != undefined && editorRelKeys[editor_sequence]['editor'] != undefined) return editorRelKeys[editor_sequence]['editor'].getFrame(editor_sequence); - return document.getElementById( 'editor_iframe_'+ editor_sequence ); + return document.getElementById( 'editor_iframe_'+ editor_sequence ); } function editorGetTextarea(editor_sequence) { - return document.getElementById( 'editor_textarea_'+ editor_sequence ); + return document.getElementById( 'editor_textarea_'+ editor_sequence ); } // Editor Option Button function eOptionOver(obj) { - obj.style.marginTop='-21px'; - obj.style.zIndex='99'; + obj.style.marginTop='-21px'; + obj.style.zIndex='99'; } function eOptionOut(obj) { - obj.style.marginTop='0'; - obj.style.zIndex='1'; + obj.style.marginTop='0'; + obj.style.zIndex='1'; } function eOptionClick(obj) { - obj.style.marginTop='-42px'; - obj.style.zIndex='99'; + obj.style.marginTop='-42px'; + obj.style.zIndex='99'; } /** @@ -146,201 +146,201 @@ function eOptionClick(obj) { // 에디터 상단의 컴포넌트 버튼 클릭시 action 처리 (마우스다운 이벤트 발생시마다 요청이 됨) var editorPrevSrl = null; function editorEventCheck(e) { - editorPrevNode = null; + editorPrevNode = null; - // 이벤트가 발생한 object의 ID를 구함 - var target_id = e.target.id; - if(!target_id) return; + // 이벤트가 발생한 object의 ID를 구함 + var target_id = e.target.id; + if(!target_id) return; - // editor_sequence와 component name을 구함 (id가 포맷과 다르면 return) - var info = target_id.split('_'); - if(info[0]!="component") return; - var editor_sequence = info[1]; - var component_name = target_id.replace(/^component_[0-9]+_/,''); + // editor_sequence와 component name을 구함 (id가 포맷과 다르면 return) + var info = target_id.split('_'); + if(info[0]!="component") return; + var editor_sequence = info[1]; + var component_name = target_id.replace(/^component_[0-9]+_/,''); - if(!editor_sequence || !component_name) return; - if(editorMode[editor_sequence]=='html') return; + if(!editor_sequence || !component_name) return; + if(editorMode[editor_sequence]=='html') return; - switch(component_name) { + switch(component_name) { - // 기본 기능에 대한 동작 (바로 실행) - case 'Bold' : - case 'Italic' : - case 'Underline' : - case 'StrikeThrough' : - case 'undo' : - case 'redo' : - case 'JustifyLeft' : - case 'JustifyCenter' : - case 'JustifyRight' : - case 'JustifyFull' : - case 'Indent' : - case 'Outdent' : - case 'InsertOrderedList' : - case 'InsertUnorderedList' : - case 'SaveAs' : - case 'Print' : - case 'Copy' : - case 'Cut' : - case 'Paste' : - case 'RemoveFormat' : - case 'Subscript' : - case 'Superscript' : - editorDo(component_name, '', editor_sequence); - break; + // 기본 기능에 대한 동작 (바로 실행) + case 'Bold' : + case 'Italic' : + case 'Underline' : + case 'StrikeThrough' : + case 'undo' : + case 'redo' : + case 'JustifyLeft' : + case 'JustifyCenter' : + case 'JustifyRight' : + case 'JustifyFull' : + case 'Indent' : + case 'Outdent' : + case 'InsertOrderedList' : + case 'InsertUnorderedList' : + case 'SaveAs' : + case 'Print' : + case 'Copy' : + case 'Cut' : + case 'Paste' : + case 'RemoveFormat' : + case 'Subscript' : + case 'Superscript' : + editorDo(component_name, '', editor_sequence); + break; - // 추가 컴포넌트의 경우 서버에 요청을 시도 - default : + // 추가 컴포넌트의 경우 서버에 요청을 시도 + default : openComponent(component_name, editor_sequence); return false; - } + } - return; + return; } jQuery(document).click(editorEventCheck); // 컴포넌트 팝업 열기 function openComponent(component_name, editor_sequence, manual_url) { - editorPrevSrl = editor_sequence; - if(editorMode[editor_sequence]=='html') return; + editorPrevSrl = editor_sequence; + if(editorMode[editor_sequence]=='html') return; - var popup_url = request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+editor_sequence+"&component="+component_name; - if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url); + var popup_url = request_uri+"?module=editor&act=dispEditorPopup&editor_sequence="+editor_sequence+"&component="+component_name; + if(typeof(manual_url)!="undefined" && manual_url) popup_url += "&manual_url="+escape(manual_url); - popopen(popup_url, 'editorComponent'); + popopen(popup_url, 'editorComponent'); } // 더블클릭 이벤트 발생시에 본문내에 포함된 컴포넌트를 찾는 함수 var editorPrevNode = null; function editorSearchComponent(evt) { - var e = new xEvent(evt); + var e = new xEvent(evt); - editorPrevNode = null; - var obj = e.target; + editorPrevNode = null; + var obj = e.target; - // 위젯인지 일단 체크 - if(obj.getAttribute("widget")) { - // editor_sequence을 찾음 - var tobj = obj; - while(tobj && tobj.nodeName != "BODY") { - tobj = xParent(tobj); - } - if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { - editorPrevNode = null; - return; - } - var editor_sequence = tobj.getAttribute("editor_sequence"); - var widget = obj.getAttribute("widget"); - editorPrevNode = obj; + // 위젯인지 일단 체크 + if(obj.getAttribute("widget")) { + // editor_sequence을 찾음 + var tobj = obj; + while(tobj && tobj.nodeName != "BODY") { + tobj = xParent(tobj); + } + if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { + editorPrevNode = null; + return; + } + var editor_sequence = tobj.getAttribute("editor_sequence"); + var widget = obj.getAttribute("widget"); + editorPrevNode = obj; - if(editorMode[editor_sequence]=='html') return; - popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence,'GenerateCodeInPage'); - return; - } + if(editorMode[editor_sequence]=='html') return; + popopen(request_uri+"?module=widget&act=dispWidgetGenerateCodeInPage&selected_widget="+widget+"&module_srl="+editor_sequence,'GenerateCodeInPage'); + return; + } - // 선택되어진 object부터 상단으로 이동하면서 editor_component attribute가 있는지 검사 - if(!obj.getAttribute("editor_component")) { - while(obj && !obj.getAttribute("editor_component")) { - if(obj.parentElement) obj = obj.parentElement; - else obj = xParent(obj); - } - } + // 선택되어진 object부터 상단으로 이동하면서 editor_component attribute가 있는지 검사 + if(!obj.getAttribute("editor_component")) { + while(obj && !obj.getAttribute("editor_component")) { + if(obj.parentElement) obj = obj.parentElement; + else obj = xParent(obj); + } + } - if(!obj) obj = e.target; + if(!obj) obj = e.target; - var editor_component = obj.getAttribute("editor_component"); + var editor_component = obj.getAttribute("editor_component"); - // editor_component를 찾지 못했을 경우에 이미지/텍스트/링크의 경우 기본 컴포넌트와 연결 - if(!editor_component) { - // 이미지일 경우 - if(obj.nodeName == "IMG" && !obj.getAttribute("widget")) { - editor_component = "image_link"; - editorPrevNode = obj; - } - } else { - editorPrevNode = obj; - } + // editor_component를 찾지 못했을 경우에 이미지/텍스트/링크의 경우 기본 컴포넌트와 연결 + if(!editor_component) { + // 이미지일 경우 + if(obj.nodeName == "IMG" && !obj.getAttribute("widget")) { + editor_component = "image_link"; + editorPrevNode = obj; + } + } else { + editorPrevNode = obj; + } - // 아무런 editor_component가 없다면 return - if(!editor_component) { - editorPrevNode = null; - return; - } + // 아무런 editor_component가 없다면 return + if(!editor_component) { + editorPrevNode = null; + return; + } - // editor_sequence을 찾음 - var tobj = obj; - while(tobj && tobj.nodeName != "BODY") { - tobj = xParent(tobj); - } - if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { - editorPrevNode = null; - return; - } - var editor_sequence = tobj.getAttribute("editor_sequence"); + // editor_sequence을 찾음 + var tobj = obj; + while(tobj && tobj.nodeName != "BODY") { + tobj = xParent(tobj); + } + if(!tobj || tobj.nodeName != "BODY" || !tobj.getAttribute("editor_sequence")) { + editorPrevNode = null; + return; + } + var editor_sequence = tobj.getAttribute("editor_sequence"); - // 해당 컴포넌트를 찾아서 실행 - openComponent(editor_component, editor_sequence); + // 해당 컴포넌트를 찾아서 실행 + openComponent(editor_component, editor_sequence); } // 에디터 내의 선택된 부분의 html코드를 변경 function editorReplaceHTML(iframe_obj, html) { - // 이미지 경로 재지정 (rewrite mod) - var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; - html = html.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); + // 이미지 경로 재지정 (rewrite mod) + var srcPathRegx = /src=("|\'){1}(\.\/)?(files\/attach|files\/cache|files\/faceOff|files\/member_extra_info|modules|common|widgets|widgetstyle|layouts|addons)\/([^"\']+)\.(jpg|jpeg|png|gif)("|\'){1}/g; + html = html.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"'); - // href 경로 재지정 (rewrite mod) - var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; - html = html.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); + // href 경로 재지정 (rewrite mod) + var hrefPathRegx = /href=("|\'){1}(\.\/)?\?([^"\']+)("|\'){1}/g; + html = html.replace(hrefPathRegx, 'href="'+request_uri+'?$3"'); - // 에디터가 활성화 되어 있는지 확인 후 비활성화시 활성화 - var editor_sequence = iframe_obj.editor_sequence || iframe_obj.contentWindow.document.body.getAttribute("editor_sequence"); + // 에디터가 활성화 되어 있는지 확인 후 비활성화시 활성화 + var editor_sequence = iframe_obj.editor_sequence || iframe_obj.contentWindow.document.body.getAttribute("editor_sequence"); - // iframe 에디터에 포커스를 둠 + // iframe 에디터에 포커스를 둠 try { iframe_obj.contentWindow.focus(); }catch(e){}; if (jQuery.isFunction(iframe_obj.replaceHTML)) { iframe_obj.replaceHTML(html); } else if(xIE4Up) { - var range = iframe_obj.contentWindow.document.selection.createRange(); - if(range.pasteHTML) { - range.pasteHTML(html); - } else if(editorPrevNode) { - editorPrevNode.outerHTML = html; - } - } else { - try { - if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") { - var range = iframe_obj.contentDocument.createRange(); - range.setStart(iframe_obj.contentDocument.body,0); - range.setEnd(iframe_obj.contentDocument.body,0); - range.insertNode(range.createContextualFragment(html)); - } else { - var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); - range.deleteContents(); - range.insertNode(range.createContextualFragment(html)); - } - } catch(e) { - xInnerHtml(iframe_obj.contentWindow.document.body, html+xInnerHtml(iframe_obj.contentWindow.document.body)); - } - } + var range = iframe_obj.contentWindow.document.selection.createRange(); + if(range.pasteHTML) { + range.pasteHTML(html); + } else if(editorPrevNode) { + editorPrevNode.outerHTML = html; + } + } else { + try { + if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") { + var range = iframe_obj.contentDocument.createRange(); + range.setStart(iframe_obj.contentDocument.body,0); + range.setEnd(iframe_obj.contentDocument.body,0); + range.insertNode(range.createContextualFragment(html)); + } else { + var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); + range.deleteContents(); + range.insertNode(range.createContextualFragment(html)); + } + } catch(e) { + xInnerHtml(iframe_obj.contentWindow.document.body, html+xInnerHtml(iframe_obj.contentWindow.document.body)); + } + } } // 에디터 내의 선택된 부분의 html 코드를 return function editorGetSelectedHtml(editor_sequence) { - var iframe_obj = editorGetIFrame(editor_sequence); + var iframe_obj = editorGetIFrame(editor_sequence); if (jQuery.isFunction(iframe_obj.getSelectedHTML)) { return iframe_obj.getSelectedHTML(); - } else if(xIE4Up) { - var range = iframe_obj.contentWindow.document.selection.createRange(); - var html = range.htmlText; - return html; - } else { - var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); - var dummy = xCreateElement('div'); - dummy.appendChild(range.cloneContents()); - var html = xInnerHtml(dummy); - return html; - } + } else if(xIE4Up) { + var range = iframe_obj.contentWindow.document.selection.createRange(); + var html = range.htmlText; + return html; + } else { + var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); + var dummy = xCreateElement('div'); + dummy.appendChild(range.cloneContents()); + var html = xInnerHtml(dummy); + return html; + } } @@ -348,26 +348,26 @@ function editorGetSelectedHtml(editor_sequence) { (function($){ var dragging = false; -var startY = 0; -var startH = 0; +var startY = 0; +var startH = 0; var editorId = ''; var eventObj = null; // event target object var targetObj = null; // elements to be resized function editorDragStart(e) { - var obj = $(e.target); + var obj = $(e.target); var id = obj.attr('id'); - if(!id || !/^editor_drag_bar_(.+)$/.test(id)) return; + if(!id || !/^editor_drag_bar_(.+)$/.test(id)) return; - dragging = true; - startY = e.pageY; - eventObj = obj; + dragging = true; + startY = e.pageY; + eventObj = obj; editorId = RegExp.$1; - var iframe_obj = $( editorGetIFrame(editorId) ); - var textarea_obj = $( editorGetTextarea(editorId) ); - var preview_obj = $('#editor_preview_'+editorId); + var iframe_obj = $( editorGetIFrame(editorId) ); + var textarea_obj = $( editorGetTextarea(editorId) ); + var preview_obj = $('#editor_preview_'+editorId); var visible_obj = iframe_obj.is(':visible')?iframe_obj:textarea_obj; startH = parseInt(visible_obj.css('height')); @@ -391,12 +391,12 @@ function editorDragStart(e) { } function editorDragMove(e) { - if(!dragging) { - $('#xeEditorMask_' + editorId).hide(); - return; - } + if(!dragging) { + $('#xeEditorMask_' + editorId).hide(); + return; + } - var diff = e.pageY - startY; + var diff = e.pageY - startY; targetObj.css('height', (startH + diff)+'px'); return false; @@ -404,7 +404,7 @@ function editorDragMove(e) { function editorDragStop(e) { $('#xeEditorMask_' + editorId).hide(); - if(!dragging) return; + if(!dragging) return; $(document).unbind('mousemove', editorDragMove); @@ -414,9 +414,9 @@ function editorDragStop(e) { fixAdminLayoutFooter( diff ); } - dragging = false; - startY = 0; - eventObj = null; + dragging = false; + startY = 0; + eventObj = null; targetObj = null; editorId = ''; diff --git a/modules/editor/tpl/js/editor_module_config.js b/modules/editor/tpl/js/editor_module_config.js index 614619284..7f44062dd 100644 --- a/modules/editor/tpl/js/editor_module_config.js +++ b/modules/editor/tpl/js/editor_module_config.js @@ -1,13 +1,13 @@ function getEditorSkinColorList(skin_name,selected_colorset,type,testid){ - if(skin_name.length>0){ - type = type || 'document'; - var response_tags = new Array('error','message','colorset'); - exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type,'testid':testid}); - } + if(skin_name.length>0){ + type = type || 'document'; + var response_tags = new Array('error','message','colorset'); + exec_xml('editor','dispEditorSkinColorset',{skin:skin_name},resultGetEditorSkinColorList,response_tags,{'selected_colorset':selected_colorset,'type':type,'testid':testid}); + } } function resultGetEditorSkinColorList(ret_obj,response_tags, params) { - var selectbox = null; + var selectbox = null; jQuery(function($){ if(params.testid){ selectbox = $("#"+params.testid).next('label').next('select'); diff --git a/modules/editor/tpl/js/uploader.js b/modules/editor/tpl/js/uploader.js index f9482dc55..96f6afe05 100755 --- a/modules/editor/tpl/js/uploader.js +++ b/modules/editor/tpl/js/uploader.js @@ -21,7 +21,7 @@ var defaultHandlers; function init(cfg, exe) { var seq = cfg.editorSequence; - + if(!is_def(seq)) return; cfg = $.extend({ @@ -33,7 +33,7 @@ function init(cfg, exe) { insertedFiles : 0 }, cfg); - uploadSettingObj[seq] = cfg; + uploadSettingObj[seq] = cfg; $(function(){ start(cfg) }); } @@ -50,7 +50,6 @@ function start(cfg) { settings = { flash_url : request_uri + 'modules/editor/tpl/images/SWFUpload.swf', - upload_url : request_uri.replace(/^https/i, 'http')+'index.php', post_params : { mid : current_mid, act : 'procFileUpload', @@ -87,6 +86,14 @@ function start(cfg) { previewAreaID : cfg.previewAreaID, uploaderStatusID : cfg.uploaderStatusID }; + if(typeof(enforce_ssl) != "undefined" && enforce_ssl == TRUE) + { + settings.upload_url = request_uri+'index.php'; + } + else + { + settings.upload_url = request_uri.replace(/^https/i, 'http')+'index.php'; + } // preview $('#'+cfg.fileListAreaID).click(previewFiles); @@ -347,7 +354,7 @@ function previewFiles(event, file_srl) { if(fileinfo.direct_download != 'Y' || !match) { html = ''; } else if(match[1]) { // flash video file - html = ''; + html = ''; } else if(match[2]) { // shockwave flash file html = ''; } else if(match[3]) { // movie file @@ -387,57 +394,57 @@ function removeUploadedFile(editorSequence) { function insertUploadedFile(editorSequence) { - var settings = uploaderSettings[editorSequence]; - var fileListAreaID = settings["fileListAreaID"]; - var fileListObj = get_by_id(fileListAreaID); - if(!fileListObj) return; + var settings = uploaderSettings[editorSequence]; + var fileListAreaID = settings["fileListAreaID"]; + var fileListObj = get_by_id(fileListAreaID); + if(!fileListObj) return; - if(editorMode[editorSequence]=='preview') return; + if(editorMode[editorSequence]=='preview') return; - var text = new Array(); - for(var i=0;i"); - } + // 바로 링크 가능한 파일의 경우 (이미지, 플래쉬, 동영상 등..) + if(file.direct_download == 'Y') { + // 이미지 파일의 경우 image_link 컴포넌트 열결 + if(/\.(jpg|jpeg|png|gif)$/i.test(file.download_url)) { + if(loaded_images[file_srl]) { + var obj = loaded_images[file_srl]; + } + else { + var obj = new Image(); + obj.src = file.download_url; + } + temp_code = ''; + temp_code += "\""+file.source_filename+"\"";"); + } - // binary파일의 경우 url_link 컴포넌트 연결 - } else { - text.push(""+file.source_filename+"\n"); - } - } + // binary파일의 경우 url_link 컴포넌트 연결 + } else { + text.push(""+file.source_filename+"\n"); + } + } - // html 모드 - if(editorMode[editorSequence]=='html'){ - if(text.length>0) get_by_id('editor_textarea_'+editorSequence).value += text.join(''); + // html 모드 + if(editorMode[editorSequence]=='html'){ + if(text.length>0) get_by_id('editor_textarea_'+editorSequence).value += text.join(''); - // 위지윅 모드 - }else{ - var iframe_obj = editorGetIFrame(editorSequence); - if(!iframe_obj) return; - if(text.length>0) editorReplaceHTML(iframe_obj, text.join('')); - } + // 위지윅 모드 + }else{ + var iframe_obj = editorGetIFrame(editorSequence); + if(!iframe_obj) return; + if(text.length>0) editorReplaceHTML(iframe_obj, text.join('')); + } }