#358 editor js minify

This commit is contained in:
bnu 2014-01-22 13:53:49 +09:00
parent a11988e437
commit c503c57477
9 changed files with 464 additions and 422 deletions

View file

@ -63,6 +63,7 @@ module.exports = function(grunt) {
'modules/editor/tpl/js/swfupload.min.js': ['modules/editor/tpl/js/swfupload.js'], 'modules/editor/tpl/js/swfupload.min.js': ['modules/editor/tpl/js/swfupload.js'],
'modules/editor/tpl/js/uploader.min.js': ['modules/editor/tpl/js/uploader.js'], 'modules/editor/tpl/js/uploader.min.js': ['modules/editor/tpl/js/uploader.js'],
'modules/editor/tpl/js/editor.min.js': ['modules/editor/tpl/js/editor.js'], 'modules/editor/tpl/js/editor.min.js': ['modules/editor/tpl/js/editor.js'],
'modules/editor/tpl/js/editor_module_config.min.js': ['modules/editor/tpl/js/editor_module_config.js'],
// module/admin // module/admin
'modules/admin/tpl/js/admin.min.js': ['modules/admin/tpl/js/admin.js'], 'modules/admin/tpl/js/admin.min.js': ['modules/admin/tpl/js/admin.js'],
'modules/admin/tpl/js/config.min.js': ['modules/admin/tpl/js/config.js'], 'modules/admin/tpl/js/config.min.js': ['modules/admin/tpl/js/config.js'],
@ -88,6 +89,25 @@ module.exports = function(grunt) {
'addons/oembed/jquery.oembed.min.js': ['addons/oembed/jquery.oembed.js'], 'addons/oembed/jquery.oembed.min.js': ['addons/oembed/jquery.oembed.js'],
'addons/oembed/oembed.min.js': ['addons/oembed/oembed.js'], 'addons/oembed/oembed.min.js': ['addons/oembed/oembed.js'],
} }
},
'module-board': {
'common': {
files: {
'modules/board/tpl/js/board.min.js': ['modules/board/tpl/js/board.js'],
'modules/board/tpl/js/board_admin.min.js': ['modules/board/tpl/js/board_admin.js']
}
},
'skin': {
files: {
'modules/board/skins/default/board.default.min.js': ['modules/board/skins/default/board.default.js'],
}
},
'm.skin': {
files: {
'modules/board/m.skins/default/js/mboard.min.js': ['modules/board/m.skins/default/js/mboard.js'],
'modules/board/m.skins/simpleGray/js/mboard.min.js': ['modules/board/m.skins/simpleGray/js/mboard.js']
}
},
} }
}, },
cssmin: { cssmin: {
@ -134,18 +154,28 @@ module.exports = function(grunt) {
files: { files: {
'addons/oembed/jquery.oembed.min.css': ['addons/oembed/jquery.oembed.css'], 'addons/oembed/jquery.oembed.min.css': ['addons/oembed/jquery.oembed.css'],
} }
},
'module-board': {
'skin': {
files: {
'modules/board/skins/default/board.default.min.css': ['modules/board/skins/default/board.default.css'],
}
},
'm.skin': {
files: {
'modules/board/m.skins/default/css/mboard.min.css': ['modules/board/m.skins/default/css/mboard.css'],
'modules/board/m.skins/simpleGray/css/mboard.min.css': ['modules/board/m.skins/simpleGray/css/mboard.css']
}
},
} }
}, },
jshint: { jshint: {
files: [ files: [
'Gruntfile.js', 'Gruntfile.js',
'common/js/*.js', '!common/js/html5.js', '!common/js/jquery.js', '!common/js/x.js', '!common/js/xe.js', 'common/js/*.js', '!common/js/html5.js', '!common/js/jquery.js', '!common/js/x.js', '!common/js/xe.js',
'modules/widget/tpl/js/generate_code.js', 'modules/board/tpl/js/*.js',
'modules/widget/tpl/js/widget.js', 'modules/widget/tpl/js/*.js',
'modules/widget/tpl/js/widget_admin.js', 'modules/editor/tpl/js/*.js',
'!**/jquery*.js',
'!**/*.min.js',
'!**/*-packed.js'
], ],
options : { options : {
globalstrict: false, globalstrict: false,
@ -158,9 +188,10 @@ module.exports = function(grunt) {
"window" : true "window" : true
}, },
ignores : [ ignores : [
'skins/xe_2010_gallery/js/jquery.easing.1.3.js', '**/jquery*.js',
'skins/xe_2010_gallery/js/json2007.js', '**/swfupload.js',
'**/*.min.js', '**/*.min.js',
'**/*-packed.js',
'**/*.compressed.js' '**/*.compressed.js'
] ]
} }

View file

@ -65,7 +65,7 @@ function editorGetSelectedNode(editor_sequence) {
/** /**
* editor 시작 (editor_sequence로 iframe객체를 얻어서 쓰기 모드로 전환) * editor 시작 (editor_sequence로 iframe객체를 얻어서 쓰기 모드로 전환)
**/ **/
var _editorFontColor = new Array(); var _editorFontColor = [];
function editorStart(editor_sequence, primary_key, content_key, editor_height, font_color) { function editorStart(editor_sequence, primary_key, content_key, editor_height, font_color) {
if(typeof(font_color)=='undefined') font_color = '#000'; if(typeof(font_color)=='undefined') font_color = '#000';
@ -84,14 +84,13 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f
fo_obj.setAttribute('editor_sequence', editor_sequence); fo_obj.setAttribute('editor_sequence', editor_sequence);
// 모듈 연관 키 값을 세팅 // 모듈 연관 키 값을 세팅
editorRelKeys[editor_sequence] = new Array(); editorRelKeys[editor_sequence] = [];
editorRelKeys[editor_sequence]["primary"] = fo_obj[primary_key]; editorRelKeys[editor_sequence].primary = fo_obj[primary_key];
editorRelKeys[editor_sequence]["content"] = fo_obj[content_key]; editorRelKeys[editor_sequence].content = fo_obj[content_key];
editorRelKeys[editor_sequence]["func"] = editorGetContent_xe; editorRelKeys[editor_sequence].func = editorGetContent_xe;
// saved document(자동저장 문서)에 대한 확인 // saved document(자동저장 문서)에 대한 확인
if(typeof(fo_obj._saved_doc_title)!= "undefined") { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음 if(typeof(fo_obj._saved_doc_title)!= "undefined") { ///<< _saved_doc_title field가 없으면 자동저장 하지 않음
var saved_title = fo_obj._saved_doc_title.value; var saved_title = fo_obj._saved_doc_title.value;
var saved_content = fo_obj._saved_doc_content.value; var saved_content = fo_obj._saved_doc_content.value;
@ -99,12 +98,12 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f
// 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제 // 자동저장된 문서 활용여부를 물은 후 사용하지 않는다면 자동저장된 문서 삭제
if(confirm(fo_obj._saved_doc_message.value)) { if(confirm(fo_obj._saved_doc_message.value)) {
if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title; if(typeof(fo_obj.title)!='undefined') fo_obj.title.value = saved_title;
editorRelKeys[editor_sequence]['content'].value = saved_content; editorRelKeys[editor_sequence].content.value = saved_content;
var param = new Array(); var param = [];
param['editor_sequence'] = editor_sequence; param.editor_sequence = editor_sequence;
param['primary_key'] = primary_key; param.primary_key = primary_key;
param['mid'] = current_mid; param.mid = current_mid;
var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl"); var response_tags = new Array("error","message","editor_sequence","key","title","content","document_srl");
exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags); exec_xml('editor',"procEditorLoadSavedDocument", param, getAutoSavedSrl, response_tags);
} else { } else {
@ -114,7 +113,7 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f
} }
// 대상 form의 content element에서 데이터를 구함 // 대상 form의 content element에서 데이터를 구함
var content = editorRelKeys[editor_sequence]['content'].value; var content = editorRelKeys[editor_sequence].content.value;
// IE가 아니고 내용이 없으면 <br /> 추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수) // IE가 아니고 내용이 없으면 <br /> 추가 (FF등에서 iframe 선택시 focus를 주기 위한 꽁수)
if(!content && !xIE4Up) content = "<br />"; if(!content && !xIE4Up) content = "<br />";
@ -184,13 +183,15 @@ function editorStart(editor_sequence, primary_key, content_key, editor_height, f
// 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자 // 좋지는 않으나;; 스타일 변형을 막기 위해 start 할때 html이면 바꿔주자
if (xGetCookie('editor_mode') == 'html'){ if (xGetCookie('editor_mode') == 'html'){
var iframe_obj = editorGetIFrame(editor_sequence); iframe_obj = editorGetIFrame(editor_sequence);
if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block'; if(xGetElementById('fileUploader_'+editor_sequence)) xGetElementById('fileUploader_'+editor_sequence).style.display='block';
textarea_obj = editorGetTextArea(editor_sequence); textarea_obj = editorGetTextArea(editor_sequence);
textarea_obj.value = content; textarea_obj.value = content;
xWidth(textarea_obj, xWidth(iframe_obj.parentNode)); xWidth(textarea_obj, xWidth(iframe_obj.parentNode));
xHeight(textarea_obj, xHeight(iframe_obj.parentNode)); xHeight(textarea_obj, xHeight(iframe_obj.parentNode));
editorMode[editor_sequence] = 'html'; editorMode[editor_sequence] = 'html';
if(xGetElementById('xeEditor_'+editor_sequence)) { if(xGetElementById('xeEditor_'+editor_sequence)) {
xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html'; xGetElementById('xeEditor_'+editor_sequence).className = 'xeEditor html';
xGetElementById('use_rich_'+editor_sequence).className = ''; xGetElementById('use_rich_'+editor_sequence).className = '';
@ -220,6 +221,7 @@ function editorKeyPress(evt) {
var body_obj = null; var body_obj = null;
if(obj.nodeName == "BODY") body_obj = obj; if(obj.nodeName == "BODY") body_obj = obj;
else body_obj = obj.firstChild.nextSibling; else body_obj = obj.firstChild.nextSibling;
if(!body_obj) return; if(!body_obj) return;
// editor_sequence는 에디터의 body에 attribute로 정의되어 있음 // editor_sequence는 에디터의 body에 attribute로 정의되어 있음
@ -231,16 +233,13 @@ function editorKeyPress(evt) {
var iframe_obj = editorGetIFrame(editor_sequence); var iframe_obj = editorGetIFrame(editor_sequence);
if(!iframe_obj) return; if(!iframe_obj) return;
obj = contentDocument.selection.createRange();
var contentDocument = iframe_obj.contentWindow.document; var contentDocument = iframe_obj.contentWindow.document;
var obj = contentDocument.selection.createRange();
var pTag = obj.parentElement().tagName.toLowerCase(); var pTag = obj.parentElement().tagName.toLowerCase();
switch(pTag) { switch(pTag) {
case 'li' : case 'li' :
return; return;
break;
default : default :
obj.pasteHTML("<br />"); obj.pasteHTML("<br />");
break; break;
@ -248,21 +247,21 @@ function editorKeyPress(evt) {
obj.select(); obj.select();
evt.cancelBubble = true; evt.cancelBubble = true;
evt.returnValue = false; evt.returnValue = false;
return; return;
} }
// ctrl-S, alt-S 클릭시 submit하기 // ctrl-S, alt-S 클릭시 submit하기
if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) { if( e.keyCode == 115 && (e.altKey || e.ctrlKey) ) {
// iframe 에디터를 찾음 // iframe 에디터를 찾음
var iframe_obj = editorGetIFrame(editor_sequence); if(!editorGetIFrame(editor_sequence)) return;
if(!iframe_obj) return;
// 대상 form을 찾음 // 대상 form을 찾음
var fo_obj = editorGetForm(editor_sequence); var fo_obj = editorGetForm(editor_sequence);
if(!fo_obj) return; if(!fo_obj) return;
// 데이터 동기화 // 데이터 동기화
editorRelKeys[editor_sequence]['content'].value = editorGetContent(editor_sequence); editorRelKeys[editor_sequence].content.value = editorGetContent(editor_sequence);
// form문 전송 // form문 전송
if(fo_obj.onsubmit) fo_obj.onsubmit(); if(fo_obj.onsubmit) fo_obj.onsubmit();
@ -278,8 +277,7 @@ function editorKeyPress(evt) {
// ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록) // ctrl-b, i, u, s 키에 대한 처리 (파이어폭스에서도 에디터 상태에서 단축키 쓰도록)
if (e.ctrlKey) { if (e.ctrlKey) {
// iframe 에디터를 찾음 // iframe 에디터를 찾음
var iframe_obj = editorGetIFrame(editor_sequence); if(!editorGetIFrame(editor_sequence)) return;
if(!iframe_obj) return;
// html 에디터 모드일 경우 이벤트 취소 시킴 // html 에디터 모드일 경우 이벤트 취소 시킴
if(editorMode[editor_sequence]) { if(editorMode[editor_sequence]) {
@ -287,6 +285,7 @@ function editorKeyPress(evt) {
evt.returnValue = false; evt.returnValue = false;
xPreventDefault(evt); xPreventDefault(evt);
xStopPropagation(evt); xStopPropagation(evt);
return; return;
} }
@ -312,13 +311,16 @@ function editorKeyPress(evt) {
case 13 : case 13 :
if(xIE4Up) { if(xIE4Up) {
if(e.target.parentElement.document.designMode!="On") return; if(e.target.parentElement.document.designMode!="On") return;
var obj = e.target.parentElement.document.selection.createRange();
obj = e.target.parentElement.document.selection.createRange();
obj.pasteHTML('<P>'); obj.pasteHTML('<P>');
obj.select(); obj.select();
evt.cancelBubble = true; evt.cancelBubble = true;
evt.returnValue = false; evt.returnValue = false;
return; return;
} }
break;
// bold // bold
case 98 : case 98 :
editorDo('Bold',null,e.target); editorDo('Bold',null,e.target);
@ -425,7 +427,7 @@ function editorChangeHeader(obj,srl) {
**/ **/
function editorChangeMode(mode, editor_sequence) { function editorChangeMode(mode, editor_sequence) {
/* jshint -W041 */
if(mode == 'html' || mode == ''){ if(mode == 'html' || mode == ''){
var expire = new Date(); var expire = new Date();
expire.setTime(expire.getTime()+ (7000 * 24 * 3600000)); expire.setTime(expire.getTime()+ (7000 * 24 * 3600000));
@ -450,7 +452,7 @@ function editorChangeMode(mode, editor_sequence) {
// xAddEventListener(xGetElementById('editor_preview_'+editor_sequence), 'load', function(){setPreviewHeight(editor_sequence)}); // xAddEventListener(xGetElementById('editor_preview_'+editor_sequence), 'load', function(){setPreviewHeight(editor_sequence)});
} else { } else {
html = contentDocument.body.innerHTML; html = contentDocument.body.innerHTML;
textarea_obj.value = html textarea_obj.value = html;
html = html.replace(/<br>/ig,"<br />\n"); html = html.replace(/<br>/ig,"<br />\n");
html = html.replace(/<br \/>\n\n/ig,"<br />\n"); html = html.replace(/<br \/>\n\n/ig,"<br />\n");
} }
@ -557,10 +559,10 @@ function setPreviewHeight(editor_sequence){
} }
function getAutoSavedSrl(ret_obj, response_tags, c) { function getAutoSavedSrl(ret_obj, response_tags, c) {
var editor_sequence = ret_obj['editor_sequence']; var editor_sequence = ret_obj.editor_sequence;
var primary_key = ret_obj['key']; var primary_key = ret_obj.key;
var fo_obj = editorGetForm(editor_sequence); var fo_obj = editorGetForm(editor_sequence);
fo_obj[primary_key].value = ret_obj['document_srl']; fo_obj[primary_key].value = ret_obj.document_srl;
if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true); if(uploadSettingObj[editor_sequence]) editorUploadInit(uploadSettingObj[editor_sequence], true);
} }

File diff suppressed because one or more lines are too long

View file

@ -1,14 +1,14 @@
/** /**
* 에디터에서 사용하기 위한 변수 * 에디터에서 사용하기 위한 변수
**/ **/
var editorMode = new Array(); ///<< 에디터의 html편집 모드 flag 세팅 변수 (html or null) var editorMode = []; ///<< 에디터의 html편집 모드 flag 세팅 변수 (html or null)
var editorAutoSaveObj = {fo_obj:null, editor_sequence:0, title:'', content:'', locked:false} ///< 자동저장을 위한 정보를 가진 object var editorAutoSaveObj = {fo_obj:null, editor_sequence:0, title:'', content:'', locked:false}; ///< 자동저장을 위한 정보를 가진 object
var editorRelKeys = new Array(); ///< 에디터와 각 모듈과의 연동을 위한 key 값을 보관하는 변수 var editorRelKeys = []; ///< 에디터와 각 모듈과의 연동을 위한 key 값을 보관하는 변수
var editorDragObj = {isDrag:false, y:0, obj:null, id:'', det:0, source_height:0} var editorDragObj = {isDrag:false, y:0, obj:null, id:'', det:0, source_height:0};
function editorGetContent(editor_sequence) { function editorGetContent(editor_sequence) {
// 입력된 내용을 받아옴 // 입력된 내용을 받아옴
var content = editorRelKeys[editor_sequence]["func"](editor_sequence); var content = editorRelKeys[editor_sequence].func(editor_sequence);
// 첨부파일 링크시 url을 변경 // 첨부파일 링크시 url을 변경
var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' ); var reg_pattern = new RegExp( request_uri.replace(/\//g,'\\/')+"(files|common|modules|layouts|widgets)", 'ig' );
@ -33,12 +33,12 @@ function editorFocus(editor_sequence) {
// 자동 저장 활성화 시키는 함수 (50초마다 자동저장) // 자동 저장 활성화 시키는 함수 (50초마다 자동저장)
function editorEnableAutoSave(fo_obj, editor_sequence, callback) { function editorEnableAutoSave(fo_obj, editor_sequence, callback) {
var title = fo_obj.title.value; var title = fo_obj.title.value;
var content = editorRelKeys[editor_sequence]['content'].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); clearTimeout(editorEnableAutoSave.timer);
editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback)}, 50000); editorEnableAutoSave.timer = setTimeout(function(){_editorAutoSave(false, callback);}, 50000);
} }
editorEnableAutoSave.timer = null; editorEnableAutoSave.timer = null;
@ -50,11 +50,11 @@ function _editorAutoSave(exe, callback) {
// 50초마다 동기화를 시킴 강제 실행은 제외 // 50초마다 동기화를 시킴 강제 실행은 제외
if(!exe) { if(!exe) {
clearTimeout(editorEnableAutoSave.timer); clearTimeout(editorEnableAutoSave.timer);
editorEnableAutoSave.timer = setTimeout(function(){ _editorAutoSave(exe, callback) }, 50000); 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;
@ -75,7 +75,7 @@ function _editorAutoSave(exe, callback) {
title : title, title : title,
content : content, content : content,
mid : current_mid, mid : current_mid,
document_srl : editorRelKeys[editor_sequence]['primary'].value document_srl : editorRelKeys[editor_sequence].primary.value
}; };
editorAutoSaveObj.title = title; editorAutoSaveObj.title = title;
@ -106,8 +106,8 @@ function _editorAutoSave(exe, callback) {
// 자동저장된 모든 메세지를 삭제하는 루틴 // 자동저장된 모든 메세지를 삭제하는 루틴
function editorRemoveSavedDoc() { function editorRemoveSavedDoc() {
var param = new Array(); var param = [];
param['mid'] = current_mid; param.mid = current_mid;
exec_xml("editor","procEditorRemoveSavedDoc", param); exec_xml("editor","procEditorRemoveSavedDoc", param);
} }
@ -117,8 +117,10 @@ function editorRemoveSavedDoc() {
// editor_sequence값에 해당하는 iframe의 object를 return // editor_sequence값에 해당하는 iframe의 object를 return
function editorGetIFrame(editor_sequence) { 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 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) { function editorGetTextarea(editor_sequence) {
@ -217,11 +219,12 @@ function editorSearchComponent(evt) {
editorPrevNode = null; editorPrevNode = null;
var obj = e.target; var obj = e.target;
var tobj = obj;
var editor_sequence;
// 위젯인지 일단 체크 // 위젯인지 일단 체크
if(obj.getAttribute("widget")) { if(obj.getAttribute("widget")) {
// editor_sequence을 찾음 // editor_sequence을 찾음
var tobj = obj;
while(tobj && tobj.nodeName != "BODY") { while(tobj && tobj.nodeName != "BODY") {
tobj = xParent(tobj); tobj = xParent(tobj);
} }
@ -229,7 +232,7 @@ function editorSearchComponent(evt) {
editorPrevNode = null; editorPrevNode = null;
return; return;
} }
var editor_sequence = tobj.getAttribute("editor_sequence"); editor_sequence = tobj.getAttribute("editor_sequence");
var widget = obj.getAttribute("widget"); var widget = obj.getAttribute("widget");
editorPrevNode = obj; editorPrevNode = obj;
@ -268,7 +271,7 @@ function editorSearchComponent(evt) {
} }
// editor_sequence을 찾음 // editor_sequence을 찾음
var tobj = obj; tobj = obj;
while(tobj && tobj.nodeName != "BODY") { while(tobj && tobj.nodeName != "BODY") {
tobj = xParent(tobj); tobj = xParent(tobj);
} }
@ -276,7 +279,7 @@ function editorSearchComponent(evt) {
editorPrevNode = null; editorPrevNode = null;
return; return;
} }
var editor_sequence = tobj.getAttribute("editor_sequence"); editor_sequence = tobj.getAttribute("editor_sequence");
// 해당 컴포넌트를 찾아서 실행 // 해당 컴포넌트를 찾아서 실행
openComponent(editor_component, editor_sequence); openComponent(editor_component, editor_sequence);
@ -284,6 +287,7 @@ function editorSearchComponent(evt) {
// 에디터 내의 선택된 부분의 html코드를 변경 // 에디터 내의 선택된 부분의 html코드를 변경
function editorReplaceHTML(iframe_obj, html) { function editorReplaceHTML(iframe_obj, html) {
var range;
// 이미지 경로 재지정 (rewrite mod) // 이미지 경로 재지정 (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; 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"'); html = html.replace(srcPathRegx, 'src="'+request_uri+'$3/$4.$5"');
@ -296,12 +300,12 @@ function editorReplaceHTML(iframe_obj, html) {
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){}; try { iframe_obj.contentWindow.focus(); } catch(e){}
if (jQuery.isFunction(iframe_obj.replaceHTML)) { if (jQuery.isFunction(iframe_obj.replaceHTML)) {
iframe_obj.replaceHTML(html); iframe_obj.replaceHTML(html);
} else if(xIE4Up) { } else if(xIE4Up) {
var range = iframe_obj.contentWindow.document.selection.createRange(); range = iframe_obj.contentWindow.document.selection.createRange();
if(range.pasteHTML) { if(range.pasteHTML) {
range.pasteHTML(html); range.pasteHTML(html);
} else if(editorPrevNode) { } else if(editorPrevNode) {
@ -310,12 +314,12 @@ function editorReplaceHTML(iframe_obj, html) {
} else { } else {
try { try {
if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") { if(iframe_obj.contentWindow.getSelection().focusNode.tagName == "HTML") {
var range = iframe_obj.contentDocument.createRange(); range = iframe_obj.contentDocument.createRange();
range.setStart(iframe_obj.contentDocument.body,0); range.setStart(iframe_obj.contentDocument.body,0);
range.setEnd(iframe_obj.contentDocument.body,0); range.setEnd(iframe_obj.contentDocument.body,0);
range.insertNode(range.createContextualFragment(html)); range.insertNode(range.createContextualFragment(html));
} else { } else {
var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); range = iframe_obj.contentWindow.getSelection().getRangeAt(0);
range.deleteContents(); range.deleteContents();
range.insertNode(range.createContextualFragment(html)); range.insertNode(range.createContextualFragment(html));
} }
@ -327,18 +331,22 @@ function editorReplaceHTML(iframe_obj, html) {
// 에디터 내의 선택된 부분의 html 코드를 return // 에디터 내의 선택된 부분의 html 코드를 return
function editorGetSelectedHtml(editor_sequence) { function editorGetSelectedHtml(editor_sequence) {
var range, html, dummy;
var iframe_obj = editorGetIFrame(editor_sequence); var iframe_obj = editorGetIFrame(editor_sequence);
if (jQuery.isFunction(iframe_obj.getSelectedHTML)) { if (jQuery.isFunction(iframe_obj.getSelectedHTML)) {
return iframe_obj.getSelectedHTML(); return iframe_obj.getSelectedHTML();
} else if(xIE4Up) { } else if(xIE4Up) {
var range = iframe_obj.contentWindow.document.selection.createRange(); range = iframe_obj.contentWindow.document.selection.createRange();
var html = range.htmlText; html = range.htmlText;
return html; return html;
} else { } else {
var range = iframe_obj.contentWindow.getSelection().getRangeAt(0); range = iframe_obj.contentWindow.getSelection().getRangeAt(0);
var dummy = xCreateElement('div'); dummy = xCreateElement('div');
dummy.appendChild(range.cloneContents()); dummy.appendChild(range.cloneContents());
var html = xInnerHtml(dummy); html = xInnerHtml(dummy);
return html; return html;
} }
} }
@ -346,7 +354,6 @@ function editorGetSelectedHtml(editor_sequence) {
// {{{ iframe 세로 크기 조절 // {{{ iframe 세로 크기 조절
(function($){ (function($){
var dragging = false; var dragging = false;
var startY = 0; var startY = 0;
var startH = 0; var startH = 0;
@ -429,6 +436,5 @@ $(document).bind({
mouseup : editorDragStop mouseup : editorDragStop
}); });
*/ */
})(jQuery); })(jQuery);
// }}} iframe 세로 크기 조절 // }}} iframe 세로 크기 조절

File diff suppressed because one or more lines are too long

View file

@ -26,14 +26,16 @@ function resultGetEditorSkinColorList(ret_obj,response_tags, params) {
selectbox.attr('name','sel_comment_editor_colorset'); selectbox.attr('name','sel_comment_editor_colorset');
} }
if(ret_obj['error'] == 0 && ret_obj.colorset){ /* jshint -W041 */
var it = new Array(); if(ret_obj.error == 0 && ret_obj.colorset){
var items = ret_obj['colorset']['item']; var it = [];
var items = ret_obj.colorset.item;
if(typeof(items[0]) == 'undefined'){ if(typeof(items[0]) == 'undefined'){
it[0] = items; it[0] = items;
} else { } else {
it = items; it = items;
} }
var selectAttr = ""; var selectAttr = "";
for(var i=0;i<it.length;i++){ for(var i=0;i<it.length;i++){
var $options = $('<option value="'+it[i].name+'" >'+it[i].title+'</option>'); var $options = $('<option value="'+it[i].name+'" >'+it[i].title+'</option>');

View file

@ -0,0 +1 @@
function getEditorSkinColorList(a,b,c,d){if(a.length>0){c=c||"document";var e=new Array("error","message","colorset");exec_xml("editor","dispEditorSkinColorset",{skin:a},resultGetEditorSkinColorList,e,{selected_colorset:b,type:c,testid:d})}}function resultGetEditorSkinColorList(a,b,c){var d=null;jQuery(function(b){if(d=c.testid?b("#"+c.testid).next("label").children("select"):"document"==c.type?b("select[name=sel_editor_colorset]"):b("select[name=sel_comment_editor_colorset]"),d.html(""),"document"==c.type?(b("select[name=sel_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_editor_colorset")):(b("select[name=sel_comment_editor_colorset]").hide().removeAttr("name"),d.attr("name","sel_comment_editor_colorset")),0==a.error&&a.colorset){var e=[],f=a.colorset.item;"undefined"==typeof f[0]?e[0]=f:e=f;for(var g=0;g<e.length;g++){var h=b('<option value="'+e[g].name+'" >'+e[g].title+"</option>");c.selected_colorset==e[g].name&&h.attr("selected","selected"),d.append(h)}d.show()}else d.hide(),d.html("")})}

View file

@ -16,7 +16,6 @@ var uploadAutosaveChecker = false;
**/ **/
// window.load 이벤트일 경우 && 문서 번호가 가상의 번호가 아니면 기존에 저장되어 있을지도 모르는 파일 목록을 가져옴 // window.load 이벤트일 경우 && 문서 번호가 가상의 번호가 아니면 기존에 저장되어 있을지도 모르는 파일 목록을 가져옴
(function($){ (function($){
var defaultHandlers; var defaultHandlers;
function init(cfg, exe) { function init(cfg, exe) {
@ -26,7 +25,7 @@ function init(cfg, exe) {
cfg = $.extend({ cfg = $.extend({
sessionName : 'PHPSESSID', sessionName : 'PHPSESSID',
allowedFileSize : 2*1024*1024, allowedFileSize : 2097152, // byte. 2*1024*1024
allowedFileTypes : '*.*', allowedFileTypes : '*.*',
allowedFileTypesDescription : 'All Files', allowedFileTypesDescription : 'All Files',
replaceButtonID : 'swfUploadButton'+cfg.editorSequence, replaceButtonID : 'swfUploadButton'+cfg.editorSequence,
@ -34,7 +33,7 @@ function init(cfg, exe) {
}, cfg); }, cfg);
uploadSettingObj[seq] = cfg; uploadSettingObj[seq] = cfg;
$(function(){ start(cfg) }); $(function(){ start(cfg); });
} }
@ -91,7 +90,7 @@ function start(cfg) {
if(typeof(enforce_ssl)!=="undefined" && enforce_ssl) if(typeof(enforce_ssl)!=="undefined" && enforce_ssl)
{ {
settings.upload_url = request_uri+'index.php'; settings.upload_url = request_uri+'index.php';
}; }
// preview // preview
$('#'+cfg.fileListAreaID).click(previewFiles); $('#'+cfg.fileListAreaID).click(previewFiles);
@ -138,7 +137,7 @@ function start(cfg) {
if(cfg.insertedFiles || editorRelKeys[seq].primary.value) reloadFileList(cfg); if(cfg.insertedFiles || editorRelKeys[seq].primary.value) reloadFileList(cfg);
} }
function _true(){ return true }; function _true(){ return true; }
defaultHandlers = { defaultHandlers = {
onFileQueued : _true, onFileQueued : _true,
@ -238,8 +237,8 @@ defaultHandlers = {
}, },
onUploadComplete : function(file) { onUploadComplete : function(file) {
try { try {
var fileListAreaID = this.settings["fileListAreaID"]; var fileListAreaID = this.settings.fileListAreaID;
var uploadTargetSrl = this.settings["uploadTargetSrl"]; var uploadTargetSrl = this.settings.uploadTargetSrl;
reloadFileList(this.settings); reloadFileList(this.settings);
} catch(e) { } catch(e) {
this.debug(ex); this.debug(ex);
@ -311,7 +310,7 @@ function reloadFileList(cfg) {
// 문서 강제 자동저장 1번만 사용 ( 첨부파일 target_srl로 자동 저장문서를 저장하기 위한 용도일 뿐 ) // 문서 강제 자동저장 1번만 사용 ( 첨부파일 target_srl로 자동 저장문서를 저장하기 위한 용도일 뿐 )
if(!uploadAutosaveChecker) autosave(); if(!uploadAutosaveChecker) autosave();
}; }
exec_xml( exec_xml(
'file', // module 'file', // module
@ -320,7 +319,7 @@ function reloadFileList(cfg) {
on_complete, // callback on_complete, // callback
'error,message,files,upload_status,upload_target_srl,editor_sequence,left_size'.split(',') // response_tags 'error,message,files,upload_status,upload_target_srl,editor_sequence,left_size'.split(',') // response_tags
); );
}; }
window.editorUploadInit = init; window.editorUploadInit = init;
window.reloadFileList = reloadFileList; window.reloadFileList = reloadFileList;
@ -328,7 +327,6 @@ window.reloadFileList = reloadFileList;
$(function(){ $(function(){
try { document.execCommand('BackgroundImageCache',false,true); } catch(e) { } try { document.execCommand('BackgroundImageCache',false,true); } catch(e) { }
}); });
})(jQuery); })(jQuery);
function previewFiles(event, file_srl) { function previewFiles(event, file_srl) {
@ -366,13 +364,13 @@ function previewFiles(event, file_srl) {
function removeUploadedFile(editorSequence) { function removeUploadedFile(editorSequence) {
var settings = uploaderSettings[editorSequence]; var settings = uploaderSettings[editorSequence];
var fileListAreaID = settings["fileListAreaID"]; var fileListAreaID = settings.fileListAreaID;
var fileListObj = get_by_id(fileListAreaID); var fileListObj = get_by_id(fileListAreaID);
if(!fileListObj) return; if(!fileListObj) return;
if(fileListObj.selectedIndex<0) return; if(fileListObj.selectedIndex<0) return;
var file_srls = new Array(); var file_srls = [];
for(var i=0;i<fileListObj.options.length;i++) { for(var i=0;i<fileListObj.options.length;i++) {
if(!fileListObj.options[i].selected) continue; if(!fileListObj.options[i].selected) continue;
var file_srl = fileListObj.options[i].value; var file_srl = fileListObj.options[i].value;
@ -393,13 +391,15 @@ function removeUploadedFile(editorSequence) {
function insertUploadedFile(editorSequence) { function insertUploadedFile(editorSequence) {
var settings = uploaderSettings[editorSequence]; var settings = uploaderSettings[editorSequence];
var fileListAreaID = settings["fileListAreaID"]; var fileListAreaID = settings.fileListAreaID;
var fileListObj = get_by_id(fileListAreaID); var fileListObj = get_by_id(fileListAreaID);
if(!fileListObj) return; if(!fileListObj) return;
var obj;
if(editorMode[editorSequence]=='preview') return; if(editorMode[editorSequence]=='preview') return;
var text = new Array(); var text = [];
for(var i=0;i<fileListObj.options.length;i++) { for(var i=0;i<fileListObj.options.length;i++) {
if(!fileListObj.options[i].selected) continue; if(!fileListObj.options[i].selected) continue;
var file_srl = fileListObj.options[i].value; var file_srl = fileListObj.options[i].value;
@ -413,15 +413,15 @@ function insertUploadedFile(editorSequence) {
// 이미지 파일의 경우 image_link 컴포넌트 열결 // 이미지 파일의 경우 image_link 컴포넌트 열결
if(/\.(jpg|jpeg|png|gif)$/i.test(file.download_url)) { if(/\.(jpg|jpeg|png|gif)$/i.test(file.download_url)) {
if(loaded_images[file_srl]) { if(loaded_images[file_srl]) {
var obj = loaded_images[file_srl]; obj = loaded_images[file_srl];
} }
else { else {
var obj = new Image(); obj = new Image();
obj.src = file.download_url; obj.src = file.download_url;
} }
temp_code = ''; temp_code = '';
temp_code += "<img src=\""+file.download_url+"\" alt=\""+file.source_filename+"\""; temp_code += "<img src=\""+file.download_url+"\" alt=\""+file.source_filename+"\"";
if(obj.complete == true) { temp_code += " width=\""+obj.width+"\" height=\""+obj.height+"\""; } if(obj.complete === true) { temp_code += " width=\""+obj.width+"\" height=\""+obj.height+"\""; }
temp_code += " />\r\n"; temp_code += " />\r\n";
text.push(temp_code); text.push(temp_code);
} else { } else {

File diff suppressed because one or more lines are too long