issue 2130

1. added init_options null check.
2. added attrFilter list check.
3. modified target of event listner.


git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.3@10862 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
devjin 2012-07-10 09:25:39 +00:00
parent 30ad13026f
commit 7db2d72906
3 changed files with 20 additions and 10 deletions

View file

@ -87,14 +87,20 @@ function doFillWidgetVars() {
// 위젯 스타일 유지를 위한 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('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
}
// IE7에서 발생하는 jQuery 용 attribute를 걸러내기 위해 추가
var attrFilters = ['style', 'sizset', 'draggable', 'class'];
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) continue;
if(name.indexOf('sizcache') == 0) continue;
if(jQuery.inArray(name, attrFilters) > -1) continue;
var dummy = jQuery('<input type="hidden" name="'+name+'" />').val(value).appendTo("#fo_widget").get(0);
}
// 위젯의 속성 설정
var obj_list = new Array();

View file

@ -53,9 +53,9 @@ function doStartPageModify(zoneID, module_srl) {
doFitBorderSize();
// 드래그와 리사이즈와 관련된 이벤트 리스너 생성
xAddEventListener(document,"click",doCheckWidget);
xAddEventListener(document,"mousedown",doCheckWidgetDrag);
xAddEventListener(document,'mouseover',widgetSetup);
xAddEventListener(document.getElementById('zonePageContent'), "click",doCheckWidget);
xAddEventListener(document.getElementById('zonePageContent'), "mousedown",doCheckWidgetDrag);
xAddEventListener(document.getElementById('zonePageContent'), 'mouseover',widgetSetup);
}

View file

@ -67,8 +67,12 @@
<option loop="$var->options => $key, $val" value="{$key}">{$val}</option>
</select>
<block cond="$var->type == 'select-multi-order'">
<!--@if($var->init_options && is_array($var->init_options))-->
{@$inits = array_keys($var->init_options)}
<input type="hidden" name="{$id}" value="{implode(',', $inits)}" />
<!--@else-->
<input type="hidden" name="{$id}" value="" />
<!--@end-->
<select class="multiorder_show" size="8" multiple="multiple" style="width:290px;vertical-align:top">
<option loop="$var->options => $key, $val" cond="!$var->init_options[$key]" value="{$key}" default="true"|cond="$var->default_options[$key]">{$val}</option>
</select>