/** * @file modules/widget/js/widget_admin.js * @author zero (zero@nzeo.com) * @brief widget 모듈의 관리자용 javascript **/ /* 생성된 코드를 textarea에 출력 */ function completeGenerateCode(ret_obj) { var widget_code = ret_obj["widget_code"]; widget_code = widget_code.replace(/&/g, "&"); widget_code = widget_code.replace(/\'/g, "'"); var zone = xGetElementById("widget_code"); zone.value = widget_code; } /* 생성된 코드를 페이지 zone에 출력 */ function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) { var widget_code = ret_obj["widget_code"]; if(!opener || !widget_code) { window.close(); return; } opener.doAddWidgetCode(widget_code); window.close(); } /* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */ function doDisplaySkinColorset(sel, colorset) { var skin = sel.options[sel.selectedIndex].value; if(!skin) { xGetElementById("colorset_area").style.display = "none"; setFixedPopupSize(); return; } var params = new Array(); params["selected_widget"] = xGetElementById("fo_widget").selected_widget.value; params["skin"] = skin; params["colorset"] = colorset; var response_tags = new Array("error","message","colorset_list"); exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params); } /* 서버에서 받아온 컬러셋을 표시 */ function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) { var sel = xGetElementById("fo_widget").widget_colorset; var length = sel.options.length; var selected_colorset = params["colorset"]; for(var i=0;i').val(attrs[i].value).prependTo(fo_widget); }else{ if(!input.val() && attrs[i].value ){ input.val(attrs[i].value); } } } */ } /* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */ function doFillWidgetVars() { if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return; selected_node = opener.selectedWidget; // 스킨과 컬러셋은 기본 var skin = selected_node.getAttribute("skin"); var colorset = selected_node.getAttribute("colorset"); var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10); var fo_widget = jQuery("#fo_widget"); var fo_obj = xGetElementById("fo_widget"); jQuery('#widget_skin').val(skin); // 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장 var attrs = selected_node.attributes; for (i=0; i< attrs.length ; i++){ var name = attrs[i].name; var value = jQuery(selected_node).attr(name); if(value=='Array') continue; if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') continue; var dummy = jQuery('').val(value).appendTo("#fo_widget").get(0); } // 위젯의 속성 설정 var obj_list = new Array(); jQuery('input,select,textarea','#fo_widget').each( function() { obj_list.push(this); }); for(var j=0;j0) type = node[0].type; else length = 0; var name = node.name; switch(type) { case "hidden" : case "text" : case "textarea" : var val = selected_node.getAttribute(name); if(!val) continue; var unescaped_val = unescape(val); if(!unescaped_val) node.value = val; else node.value = unescaped_val; break; case "checkbox" : if(selected_node.getAttribute(name)) { var val = selected_node.getAttribute(name).split(','); if(fo_obj[name].length) { for(var i=0;i100) fo_obj.widget_width.value = 100; } } // 위젯의 대상 모듈 입력기 (단일 선택) function insertSelectedModule(id, module_srl, mid, browser_title) { var obj= xGetElementById('_'+id); var sObj = xGetElementById(id); sObj.value = module_srl; obj.value = browser_title+' ('+mid+')'; } // 위젯의 대상 모듈 입력기 (다중 선택) function insertSelectedModules(id, module_srl, mid, browser_title) { var sel_obj = xGetElementById('_'+id); for(var i=0;i8) sel_obj.size = sel_obj.options.length; syncMid(id); } function midMoveUp(id) { var sel_obj = xGetElementById('_'+id); if(sel_obj.selectedIndex<0) return; var idx = sel_obj.selectedIndex; if(idx < 1) return; var s_obj = sel_obj.options[idx]; var t_obj = sel_obj.options[idx-1]; var value = s_obj.value; var text = s_obj.text; s_obj.value = t_obj.value; s_obj.text = t_obj.text; t_obj.value = value; t_obj.text = text; sel_obj.selectedIndex = idx-1; syncMid(id); } function midMoveDown(id) { var sel_obj = xGetElementById('_'+id); if(sel_obj.selectedIndex<0) return; var idx = sel_obj.selectedIndex; if(idx == sel_obj.options.length-1) return; var s_obj = sel_obj.options[idx]; var t_obj = sel_obj.options[idx+1]; var value = s_obj.value; var text = s_obj.text; s_obj.value = t_obj.value; s_obj.text = t_obj.text; t_obj.value = value; t_obj.text = text; sel_obj.selectedIndex = idx+1; syncMid(id); } function midRemove(id) { var sel_obj = xGetElementById('_'+id); if(sel_obj.selectedIndex<0) return; var idx = sel_obj.selectedIndex; sel_obj.remove(idx); idx = idx-1; if(idx < 0) idx = 0; if(sel_obj.options.length) sel_obj.selectedIndex = idx; syncMid(id); } function syncMid(id) { var sel_obj = xGetElementById('_'+id); var valueArray = new Array(); for(var i=0;i -1) return; } selectedObj.remove(idx); idx = idx-1; if(idx < 0) idx = 0; if(selectedObj.options.length) selectedObj.selectedIndex = idx; MultiOrderSet(id); } function MultiOrderUp(id){ var selectedObj = jQuery("[name='selected_"+id+"']").get(0); if(selectedObj.selectedIndex<0) return; var idx = selectedObj.selectedIndex; if(idx < 1) return; var s_obj = selectedObj.options[idx]; var t_obj = selectedObj.options[idx-1]; var value = s_obj.value; var text = s_obj.text; s_obj.value = t_obj.value; s_obj.text = t_obj.text; t_obj.value = value; t_obj.text = text; selectedObj.selectedIndex = idx-1; MultiOrderSet(id); } function MultiOrderDown(id){ var selectedObj = jQuery("[name='selected_"+id+"']").get(0); if(selectedObj.selectedIndex<0) return; var idx = selectedObj.selectedIndex; if(idx == selectedObj.options.length-1) return; var s_obj = selectedObj.options[idx]; var t_obj = selectedObj.options[idx+1]; var value = s_obj.value; var text = s_obj.text; s_obj.value = t_obj.value; s_obj.text = t_obj.text; t_obj.value = value; t_obj.text = text; selectedObj.selectedIndex = idx+1; MultiOrderSet(id); } function initMultiOrder(id){ var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var init_value = jQuery("[name='init_"+id+"']").val(); var save_value = jQuery("[name='"+id+"']").val(); if(save_value){ var arr_save_value = save_value.split(','); for(i=0;i0){ var opt = new Option(arr_save_value[i], arr_save_value[i]); selectedObj.options.add(opt); } } }else{ var arr_init_value = init_value.split(','); for(i=0;i0){ var opt = new Option(arr_init_value[i], arr_init_value[i]); selectedObj.options.add(opt); } } } MultiOrderSet(id); }