+
+
diff --git a/modules/editor/components/table_maker/tpl/popup.js b/modules/editor/components/table_maker/tpl/popup.js
index 6e2f543ae..3bf098922 100644
--- a/modules/editor/components/table_maker/tpl/popup.js
+++ b/modules/editor/components/table_maker/tpl/popup.js
@@ -7,52 +7,189 @@ function getTable() {
// 부모 위지윅 에디터에서 선택된 영역이 있는지 확인
if(typeof(opener)=="undefined") return;
+ var node = opener.editorPrevNode;
+ selected_node = node;
+
+ // 선택된 객체가 없으면 테이블 새로 추가
+ if(!selected_node) {
+ doSelectOption('table');
+ } else {
+ doSelectOption('cell');
+ }
+
+ setFixedPopupSize();
+}
+
+/* 테이블, 셀 선택 옵션의 처리 */
+function doSelectOption(type) {
+
+ // 셀 변경
+ if(selected_node && type == "cell") {
+ xGetElementById("table_option").style.display = "block";
+ xGetElementById("cell_attribute").style.display = "block";
+
+ var cell_width = selected_node.style.width.replace(/px$/,'');
+ var cell_height = selected_node.style.height.replace(/px$/,'');
+
+ var border_color = selected_node.style.borderColor.replace(/^#/,'');
+ if(border_color.indexOf('rgb')>-1) {
+ var tmp_color = border_color.replace(/([a-z\(\) ]*)/ig,'').split(',');
+ border_color = xHex(tmp_color[0], 2, '')+xHex(tmp_color[1], 2, '')+xHex(tmp_color[2], 2, '');
+ }
+
+ var bg_color = selected_node.style.backgroundColor.replace(/^#/,'');
+ if(bg_color.indexOf('rgb')>-1) {
+ var tmp_color = bg_color.replace(/([a-z\(\) ]*)/ig,'').split(',');
+ bg_color = xHex(tmp_color[0], 2, '')+xHex(tmp_color[1], 2, '')+xHex(tmp_color[2], 2, '');
+ }
+ if(!bg_color) bg_color = "FFFFFF";
+
+ xGetElementById("cell_width").value = cell_width?cell_width:0;
+ xGetElementById("cell_height").value = cell_height?cell_height:0;
+
+ xGetElementById("border_color_input").value = border_color;
+ manual_select_color("border", xGetElementById("border_color_input"))
+ xGetElementById("bg_color_input").value = bg_color;
+ manual_select_color("bg", xGetElementById("bg_color_input"))
+
+ xGetElementById("table_attribute").style.display = "none";
+ xGetElementById("cell_attribute").style.display = "block";
+ xGetElementById("cell_attribute_select").checked = true;
+ xGetElementById("border_color_area").style.display = "none";
+ xGetElementById("bg_color_area").style.display = "block";
+
+ // 테이블 변경
+ } else {
+ var table_obj = xParent(selected_node);
+ while(table_obj && table_obj.nodeName != "TABLE") { table_obj = xParent(table_obj); }
+ if(!table_obj) xGetElementById("col_row_area").style.display = "block";
+ else {
+ xGetElementById("col_row_area").style.display = "none";
+
+ var width = xWidth(table_obj);
+ var border = table_obj.style.borderLeftWidth.replace(/px$/,'');
+ if(!border) border = 0;
+ var inner_border = table_obj.getAttribute("border");
+ if(!inner_border) inner_border = 0;
+ var cellspacing = table_obj.getAttribute("cellspacing");
+ if(!cellspacing) cellspacing = 0;
+ var cellpadding = table_obj.getAttribute("cellpadding");
+ if(!cellpadding) cellpadding = 1;
+
+ var border_color = table_obj.style.backgroundColor.replace(/^#/,'');
+ if(border_color.indexOf('rgb')>-1) {
+ var tmp_color = border_color.replace(/([a-z\(\) ]*)/ig,'').split(',');
+ border_color = xHex(tmp_color[0], 2, '')+xHex(tmp_color[1], 2, '')+xHex(tmp_color[2], 2, '');
+ }
+
+ var bg_color = table_obj.style.backgroundColor.replace(/^#/,'');
+ if(bg_color.indexOf('rgb')>-1) {
+ var tmp_color = bg_color.replace(/([a-z\(\) ]*)/ig,'').split(',');
+ bg_color = xHex(tmp_color[0], 2, '')+xHex(tmp_color[1], 2, '')+xHex(tmp_color[2], 2, '');
+ }
+
+ xGetElementById("border_color_input").value = border_color;
+ manual_select_color("border", xGetElementById("border_color_input"))
+ xGetElementById("bg_color_input").value = bg_color;
+ manual_select_color("bg", xGetElementById("bg_color_input"))
+
+ xGetElementById("width").value = width;
+ xGetElementById("border").value = border;
+ xGetElementById("inner_border").value = inner_border;
+ xGetElementById("cellspacing").value = cellspacing;
+ xGetElementById("cellpadding").value = cellpadding
+ }
+ xGetElementById("table_attribute").style.display = "block";
+ xGetElementById("cell_attribute").style.display = "none";
+ xGetElementById("table_attribute_select").checked = true;
+ xGetElementById("border_color_area").style.display = "block";
+ xGetElementById("bg_color_area").style.display = "block";
+ }
+
+ setFixedPopupSize();
}
/* 추가 버튼 클릭시 부모창의 위지윅 에디터에 인용구 추가 */
function insertTable() {
if(typeof(opener)=="undefined") return;
- var cols_count = parseInt(xGetElementById("cols_count").value,10);
- if(!cols_count) cols_count = 1;
+ var table_obj = null;
- var rows_count = parseInt(xGetElementById("rows_count").value,10);
- if(!rows_count) rows_count = 1;
-
- var width = parseInt(xGetElementById("width").value,10);
-
- var border = parseInt(xGetElementById("border").value,10);
-
- var inner_border = parseInt(xGetElementById("inner_border").value,10);
-
- var cellspacing = parseInt(xGetElementById("cellspacing").value,10);
-
- var cellpadding = parseInt(xGetElementById("cellpadding").value,10);
-
- var border_color = xGetElementById("border_color_input").value;
- if(border_color.length!=6) border_color = "000000";
-
- var bg_color = xGetElementById("bg_color_input").value;
- if(bg_color.length!=6) bg_color = "FFFFFF";
-
- var text = "";
- text += "
0) text += " style=\"border:"+border+"px solid #"+border_color+";background-color:#"+bg_color+"\" ";
- text +=">";
-
- for(var row=0; row";
- for(var col=0; col ";
- }
- text += "";
+ if(selected_node) {
+ table_obj = xParent(selected_node);
+ while(table_obj && table_obj.nodeName != "TABLE") { table_obj = xParent(table_obj); }
}
- text += "
\n
";
- opener.editorFocus(opener.editorPrevSrl);
- var iframe_obj = opener.editorGetIFrame(opener.editorPrevSrl)
- opener.editorReplaceHTML(iframe_obj, text);
- opener.editorFocus(opener.editorPrevSrl);
+ // 테이블 생성일 경우
+ if(xGetElementById("table_attribute_select").checked && !table_obj) {
+ var cols_count = parseInt(xGetElementById("cols_count").value,10);
+ if(!cols_count) cols_count = 1;
+
+ var rows_count = parseInt(xGetElementById("rows_count").value,10);
+ if(!rows_count) rows_count = 1;
+
+ var width = parseInt(xGetElementById("width").value,10);
+ var border = parseInt(xGetElementById("border").value,10);
+ var inner_border = parseInt(xGetElementById("inner_border").value,10);
+ var cellspacing = parseInt(xGetElementById("cellspacing").value,10);
+ var cellpadding = parseInt(xGetElementById("cellpadding").value,10);
+ var border_color = xGetElementById("border_color_input").value;
+ if(border_color.length!=6) border_color = "000000";
+
+ var bg_color = xGetElementById("bg_color_input").value;
+ if(bg_color.length!=6) bg_color = "FFFFFF";
+
+ var text = "";
+ text += "
0) text += " style=\"border:"+border+"px solid #"+border_color+";background-color:#"+bg_color+"\" ";
+ text +=">";
+
+ for(var row=0; row";
+ for(var col=0; col ";
+ }
+ text += "";
+ }
+ text += "
\n
";
+
+ opener.editorFocus(opener.editorPrevSrl);
+ var iframe_obj = opener.editorGetIFrame(opener.editorPrevSrl)
+ opener.editorReplaceHTML(iframe_obj, text);
+ opener.editorFocus(opener.editorPrevSrl);
+
+ // 테이블 수정일 경우
+ } else if(xGetElementById("table_attribute_select").checked && table_obj) {
+ var width = parseInt(xGetElementById("width").value,10);
+ var border = parseInt(xGetElementById("border").value,10);
+ var inner_border = parseInt(xGetElementById("inner_border").value,10);
+ var cellspacing = parseInt(xGetElementById("cellspacing").value,10);
+ var cellpadding = parseInt(xGetElementById("cellpadding").value,10);
+ var border_color = xGetElementById("border_color_input").value;
+ if(border_color.length!=6) border_color = "000000";
+
+ var bg_color = xGetElementById("bg_color_input").value;
+ if(bg_color.length!=6) bg_color = "FFFFFF";
+
+ table_obj.style.width = width+"px";
+ table_obj.setAttribute("border", inner_border);
+ table_obj.setAttribute("cellspacing", cellspacing);
+ table_obj.setAttribute("cellpadding", cellpadding);
+ table_obj.style.border = border+"px solid #"+border_color;
+ table_obj.style.backgroundColor = "#"+bg_color;
+
+ // cell의 수정일 경우
+ } if(xGetElementById("cell_attribute_select").checked && selected_node) {
+ var cell_width = parseInt(xGetElementById("cell_width").value,10);
+ var cell_height = parseInt(xGetElementById("cell_height").value,10);
+
+ var bg_color = xGetElementById("bg_color_input").value;
+ if(bg_color.length!=6) bg_color = "FFFFFF";
+
+ selected_node.style.width = cell_width+"px";
+ selected_node.style.height = cell_height+"px";
+ selected_node.style.backgroundColor = "#"+bg_color;
+ }
window.close();
}
@@ -68,13 +205,6 @@ function manual_select_color(type, obj) {
if(obj.value.length!=6) return;
code = obj.value;
xGetElementById(type+"_preview_color").style.backgroundColor = "#"+code;
-
- if(type=="border") {
- xGetElementById("border_style_solid_icon").style.backgroundColor = "#"+code;
- xGetElementById("border_style_dotted_icon").style.backgroundColor = "#"+code;
- xGetElementById("border_style_left_solid_icon").style.backgroundColor = "#"+code;
- xGetElementById("border_style_left_dotted_icon").style.backgroundColor = "#"+code;
- }
}
/* 색상표를 출력 */
@@ -108,3 +238,4 @@ function printColorBlock(type, code, blank_img_src) {
}
xAddEventListener(window, "load", getTable);
+