modules/widget/tpl 코드 정리 및 minify 설정 추가.

This commit is contained in:
bnu 2013-11-23 21:36:06 +09:00
parent bf85de4e26
commit 80fa661fc7
5 changed files with 1446 additions and 1226 deletions

View file

@ -44,18 +44,13 @@ module.exports = function(grunt) {
uglify: { uglify: {
'common-js': { 'common-js': {
options: { options: {
banner: banner_xe_js, banner: banner_xe_js
report: 'min'
}, },
files: { files: {
'common/js/xe.min.js': ['common/js/xe.js'] 'common/js/xe.min.js': ['common/js/xe.js']
} }
}, },
'modules': { 'modules': {
options: {
banner: banner,
report: 'min'
},
files: { files: {
// addon // addon
'addons/captcha/captcha.min.js' : ['addons/captcha/captcha.js'], 'addons/captcha/captcha.min.js' : ['addons/captcha/captcha.js'],
@ -80,6 +75,10 @@ module.exports = function(grunt) {
'modules/editor/components/image_gallery/tpl/slide_gallery.min.js' : ['modules/editor/components/image_gallery/tpl/slide_gallery.js'], 'modules/editor/components/image_gallery/tpl/slide_gallery.min.js' : ['modules/editor/components/image_gallery/tpl/slide_gallery.js'],
// module/importer // module/importer
'modules/importer/tpl/js/importer_admin.min.js': ['modules/importer/tpl/js/importer_admin.js'], 'modules/importer/tpl/js/importer_admin.min.js': ['modules/importer/tpl/js/importer_admin.js'],
// modules/widget
'modules/widget/tpl/js/generate_code.min.js': ['modules/widget/tpl/js/generate_code.js'],
'modules/widget/tpl/js/widget.min.js': ['modules/widget/tpl/js/widget.js'],
'modules/widget/tpl/js/widget_admin.min.js': ['modules/widget/tpl/js/widget_admin.js'],
} }
} }
}, },
@ -105,12 +104,20 @@ module.exports = function(grunt) {
files: { files: {
'modules/editor/components/multimedia_link/tpl/popup.min.css': ['modules/editor/components/multimedia_link/tpl/popup.css'], 'modules/editor/components/multimedia_link/tpl/popup.min.css': ['modules/editor/components/multimedia_link/tpl/popup.css'],
} }
},
'moudle-widget-tpl': {
files: {
'modules/widget/tpl/css/widget.min.css': ['modules/widget/tpl/css/widget.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/widget/tpl/js/widget.js',
'modules/widget/tpl/js/widget_admin.js',
'!**/*.min.js', '!**/*.min.js',
'!**/*-packed.js' '!**/*-packed.js'
], ],

View file

@ -1,38 +1,210 @@
@charset "utf-8"; @charset "utf-8";
.widget_title{border:1px solid #ddd;margin:10px 5px 5px 0;padding:3px}
.widget_mid_list{margin:0 0 5px 10px}
.widget_description{color:#aaa;border-top:1px dotted #eee;margin:5px 0 0 0;padding:5px 0 0 0} .widget_title {
#colorset_area{margin-top:.5em} margin: 10px 5px 5px 0;
#colorset_area .header{float:left;margin-right:.5em;padding-top:.2em} padding: 3px;
#colorset_area .footer{float:left} border: 1px solid #ddd;
#zonePageContent{overflow:hidden;width:100%;padding:0 !important;margin:0 !important} }
.pageAddContent{width:700px} .widget_mid_list {
.widgetOutput{float:left;cursor:move;z-index:998;overflow:hidden;position:relative;width:100%;min-height:24px} margin: 0 0 5px 10px;
}
.widget_description {
margin: 5px 0 0 0;
padding: 5px 0 0 0;
border-top: 1px dotted #eee;
color: #aaa;
}
#colorset_area {
margin-top: .5em;
}
#colorset_area .header {
float: left;
margin-right: .5em;
padding-top: .2em;
}
#colorset_area .footer {
float: left;
}
#zonePageContent {
overflow: hidden;
margin: 0 !important;
padding: 0 !important;
width: 100%;
}
.pageAddContent {
width: 700px;
}
.widgetOutput {
float: left;
z-index: 998;
position: relative;
overflow: hidden;
width: 100%;
min-height: 24px;
cursor: move;
}
.widgetOutput .widgetBorder, .widgetOutput .widgetBorder,
.widgetOutput .widgetBoxBorder{height:100%;border:1px dashed #ccc;z-index:999;box-sizing:border-box;min-height:24px} .widgetOutput .widgetBoxBorder {
.widgetOutput .widgetResize {border:0;background:transparent url("../images/btn_resize.gif") no-repeat left bottom;width:12px;height:12px;position:absolute;bottom:1px;right:1px;cursor:pointer;z-index:1000} z-index: 999;
.widgetOutput .widgetResizeLeft {border:0;background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom;width:12px;height:12px;position:absolute;bottom:1px;left:1px;cursor:pointer;z-index:1000} box-sizing: border-box;
.widgetOutput .widgetBoxResize {border:0;background:transparent url("../images/btn_resize.gif") no-repeat left bottom;width:12px;height:12px;position:absolute;bottom:1px;right:1px;cursor:pointer;z-index:1000} height: 100%;
.widgetOutput .widgetBoxResizeLeft{border:0;background:transparent url("../images/btn_resize_left.gif") no-repeat left bottom;width:12px;height:12px;position:absolute;bottom:0;left:1px;cursor:pointer;z-index:1000} min-height: 24px;
.widgetButtons{z-index:1000;overflow:hidden;*zoom:1;float:left;padding:0 10px;line-height:24px;position:absolute;top:0;visibility:hidden;box-shadow:0 0 3px #333 inset} border: 1px dashed #ccc;
.widgetButtons#widgetButton{background-color:#C7DBE9;left:0} }
.widgetButtons#widgetBoxButton{background-color:#D2E9C7;right:0} .widgetOutput .widgetResize {
.widgetButtons>button{border:0;width:14px;height:14px;padding:14px 0 0 0;overflow:hidden;cursor:pointer;z-index:99;background:transparent url("../../../admin/tpl/img/glyphicons-halflings.png") no-repeat} z-index: 1000;
.widgetButtons .widgetSetup{background-position:-432px 0} position: absolute;
bottom: 1px;
right: 1px;
width: 12px;
height: 12px;
border: 0;
cursor: pointer;
background: transparent url("../images/btn_resize.gif") no-repeat left bottom;
}
.widgetOutput .widgetResizeLeft {
height: 12px;
bottom: 1px;
position: absolute;
border: 0;
width: 12px;
z-index: 1000;
left: 1px;
cursor: pointer;
background: transparent url("../images/btn_resize_left.gif") no-repeat left bottom;
}
.widgetOutput .widgetBoxResize {
z-index: 1000;
position: absolute;
right: 1px;
bottom: 1px;
width: 12px;
height: 12px;
border: 0;
cursor: pointer;
background: transparent url("../images/btn_resize.gif") no-repeat left bottom;
}
.widgetOutput .widgetBoxResizeLeft {
z-index: 1000;
position: absolute;
left: 1px;
bottom: 0;
width: 12px;
height: 12px;
border: 0;
cursor: pointer;
background: transparent url("../images/btn_resize_left.gif") no-repeat left bottom;
}
.widgetButtons {
float: left;
z-index: 1000;
visibility: hidden;
position: absolute;
top: 0;
overflow: hidden;
padding: 0 10px;
line-height: 24px;
box-shadow: 0 0 3px #333 inset;
*zoom: 1;
}
.widgetButtons#widgetButton {
left: 0;
background-color: #C7DBE9;
}
.widgetButtons#widgetBoxButton {
right: 0;
background-color: #D2E9C7;
}
.widgetButtons>button {
z-index: 99;
padding: 14px 0 0 0;
overflow: hidden;
width: 14px;
height: 14px;
border: 0;
cursor: pointer;
background: transparent url("../../../admin/tpl/img/glyphicons-halflings.png") no-repeat;
}
.widgetButtons .widgetSetup {
background-position: -432px 0;
}
.widgetButtons .widgetSize, .widgetButtons .widgetSize,
.widgetButtons .widgetBoxSize{background-position:-96px -120px} .widgetButtons .widgetBoxSize {
.widgetButtons .widgetStyle{background-position:-456px -144px} background-position: -96px -120px;
}
.widgetButtons .widgetStyle {
background-position: -456px -144px;
}
.widgetButtons .widgetCopy, .widgetButtons .widgetCopy,
.widgetButtons .widgetBoxCopy{background-position:0 -96px} .widgetButtons .widgetBoxCopy {
background-position: 0 -96px;
}
.widgetButtons .widgetRemove, .widgetButtons .widgetRemove,
.widgetButtons .widgetBoxRemove{background-position:-456px 0} .widgetButtons .widgetBoxRemove {
.help{padding:5px 0;background-color:#EFEFEF;border-top:1px solid #ccc} background-position: -456px 0;
ul.midCommand{float:left;margin:0 0 0 10px;;padding:0;*zoom:1} }
ul.midCommand li{display:block;margin-bottom:5px;list-style:none}
a.widgetStyle{display:inline-block;margin:0 10px 10px 0;border:1px solid #fff;overflow:hidden;*zoom:1;width:96px;height:96px;position:relative;text-decoration:none} .help {
a.widgetStyle:hover{border:1px dashed #ccc} padding: 5px 0;
a.widgetStyle:hover span{display:none} border-top: 1px solid #ccc;
a.widgetStyle.selected{border:1px dashed #999} background-color: #EFEFEF;
a.widgetStyle img {width:96px;height:96px;margin:1px} }
a.widgetStyle span{position:absolute;left:0;bottom:0;display:block;width:96px;background-color:#888;color:#fff;padding:4px 3px 3px 3px;opacity:.8;filter:alpha(opacity=80);text-align:center;font-family:tahoma} ul.midCommand {
#zonePageContent .widgetContainer{min-height:20px} float: left;
margin: 0 0 0 10px;
padding: 0;
*zoom: 1;
}
ul.midCommand li {
display: block;
margin-bottom: 5px;
list-style: none;
}
a.widgetStyle {
display: inline-block;
position: relative;
margin: 0 10px 10px 0;
overflow: hidden;
width: 96px;
height: 96px;
border: 1px solid #fff;
text-decoration: none;
*zoom: 1;
}
a.widgetStyle:hover {
border: 1px dashed #ccc;
}
a.widgetStyle:hover span {
display: none;
}
a.widgetStyle.selected {
border: 1px dashed #999;
}
a.widgetStyle img {
margin: 1px;
width: 96px;
height: 96px;
}
a.widgetStyle span {
display: block;
position: absolute;
left: 0;
bottom: 0;
width: 96px;
padding: 4px 3px 3px 3px;
text-align: center;
font-family: tahoma;
color: #fff;
filter: alpha(opacity=80);
opacity: .8;
background-color: #888;
}
#zonePageContent .widgetContainer {
min-height: 20px;
}

View file

@ -8,16 +8,17 @@ function doDisplaySkinColorset(colorset)
function completeGetSkinColorset(ret_obj) function completeGetSkinColorset(ret_obj)
{ {
/*jshint -W004*/
var sel = jQuery("select[name=colorset]").get(0); var sel = jQuery("select[name=colorset]").get(0);
var length = sel.options.length; var length = sel.options.length;
var selected_colorset = colorset; var selected_colorset = colorset;
for(var i=0;i<length;i++) sel.remove(0); for(var i = 0; i < length; i++) sel.remove(0);
if(!ret_obj["colorset_list"]) return; if(!ret_obj.colorset_list) return;
var colorset_list = ret_obj["colorset_list"].split("\n"); var colorset_list = ret_obj.colorset_list.split("\n");
var selected_index = 0; var selected_index = 0;
for(var i=0;i<colorset_list.length;i++) { for(var i = 0; i < colorset_list.length; i++) {
var tmp = colorset_list[i].split("|@|"); var tmp = colorset_list[i].split("|@|");
if(selected_colorset && selected_colorset==tmp[0]) selected_index = i; if(selected_colorset && selected_colorset==tmp[0]) selected_index = i;
var opt = new Option(tmp[1], tmp[0], false, false); var opt = new Option(tmp[1], tmp[0], false, false);
@ -29,12 +30,12 @@ function doDisplaySkinColorset(colorset)
doShowSkinColorset(); doShowSkinColorset();
} }
var params = new Array(); var params = [];
params["selected_widget"] = jQuery('input[name=selected_widget]').val(); params.selected_widget = jQuery('input[name=selected_widget]').val();
params["skin"] = skin; params.skin = skin;
params["colorset"] = colorset; params.colorset = colorset;
var response_tags = new Array("error","message","colorset_list"); var response_tags = ["error", "message", "colorset_list"];
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params); exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
} }
@ -50,138 +51,155 @@ function doShowSkinColorset()
} }
function completeGenerateCodeInPage(widget_code) { function completeGenerateCodeInPage(widget_code) {
if(!opener || !widget_code) { if(!opener || !widget_code) {
window.close(); window.close();
return; return;
} }
opener.doAddWidgetCode(widget_code); opener.doAddWidgetCode(widget_code);
window.close(); window.close();
} }
var selected_node = null; var selected_node = null;
function getWidgetVars() { function getWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return; if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget; selected_node = opener.selectedWidget;
if(!xGetElementById('fo_widget').widgetstyle.value) { if(!xGetElementById('fo_widget').widgetstyle.value) {
xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle'); xGetElementById('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
} }
doFillWidgetVars(); doFillWidgetVars();
} }
function doFillWidgetVars() { function doFillWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return; if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget; selected_node = opener.selectedWidget;
// 스킨과 컬러셋은 기본 // 스킨과 컬러셋은 기본
var skin = selected_node.getAttribute("skin"); var skin = selected_node.getAttribute("skin");
var colorset = selected_node.getAttribute("colorset"); var colorset = selected_node.getAttribute("colorset");
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10); var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
var fo_widget = jQuery("#fo_widget"); var fo_widget = jQuery("#fo_widget");
var fo_obj = xGetElementById("fo_widget"); var fo_obj = xGetElementById("fo_widget");
jQuery('#widget_skin').val(skin); jQuery('#widget_skin').val(skin);
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장 // 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
var attrs = selected_node.attributes; var attrs = selected_node.attributes;
// IE7에서 발생하는 jQuery 용 attribute를 걸러내기 위해 추가 // IE7에서 발생하는 jQuery 용 attribute를 걸러내기 위해 추가
var attrFilters = ['style', 'sizset', 'draggable', 'class']; var attrFilters = ['style', 'sizset', 'draggable', 'class'];
for (i=0; i< attrs.length ; i++){ for(i = 0; i < attrs.length ; i++){
var name = attrs[i].name; var name = attrs[i].name;
var value = jQuery(selected_node).attr(name); var value = jQuery(selected_node).attr(name);
if(value=='Array') continue;
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value) continue; if(value == 'Array') continue;
if(name.indexOf('sizcache') == 0) continue; if(jQuery("[name="+name+"]", fo_widget).size() > 0 || !value) continue;
if(name.indexOf('sizcache') === 0) continue;
if(jQuery.inArray(name, attrFilters) > -1) continue; if(jQuery.inArray(name, attrFilters) > -1) continue;
var dummy = jQuery('<input type="hidden" name="'+name+'" />').val(value).appendTo("#fo_widget").get(0); var dummy = jQuery('<input type="hidden" name="'+name+'" />').val(value).appendTo("#fo_widget").get(0);
} }
// 위젯의 속성 설정 // 위젯의 속성 설정
var obj_list = new Array(); var obj_list = [];
jQuery('input,select,textarea','#fo_widget').each( function() { jQuery('input,select,textarea','#fo_widget').each(function() {
obj_list.push(this); obj_list.push(this);
}); });
for(var j=0;j<obj_list.length;j++) { for(var j = 0; j < obj_list.length; j++) {
var node = obj_list[j]; /*jshint -W004*/
if(node.name.indexOf('_')==0) continue; var node = obj_list[j];
if(node.name == 'widgetstyle') continue;
if(node.type == 'button') continue;
if(node.name == '') continue;
var length = node.length; if(node.name.indexOf('_') === 0) continue;
var type = node.type; if(node.name == 'widgetstyle') continue;
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type; if(node.type == 'button') continue;
else length = 0; if(node.name === '') continue;
var name = node.name;
var length = node.length;
var type = node.type;
if((typeof(type) == 'undefined' || !type) && typeof(length) != 'undefined' && typeof(node[0]) != 'undefined' && length > 0) {
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;
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;
jQuery('#'+name).val(node.value); jQuery('#'+name).val(node.value);
break; break;
case "radio" : case "radio" :
case "checkbox" : case "checkbox" :
if(selected_node.getAttribute(name)) { if(selected_node.getAttribute(name)) {
var val = selected_node.getAttribute(name).split(','); var val = selected_node.getAttribute(name).split(',');
if(fo_obj[name].length) {
for(var i=0;i<fo_obj[name].length;i++) {
var v = fo_obj[name][i].value;
for(var k=0;k<val.length;k++) {
if(v == val[k]) {
fo_obj[name][i].checked=true;
break;
}
}
}
} else {
if(fo_obj[name].value == val) fo_obj[name].checked =true;
}
}
break;
case "select" :
case "select-one" :
var val = selected_node.getAttribute(name);
var sel = fo_obj[name];
if(!val) break;
for(var i=0;i<sel.options.length;i++) {
if(sel.options[i].value == val) sel.options[i].selected = true;
else sel.options[i].selected = false;
}
break;
}
} if(fo_obj[name].length) {
for(var i = 0; i < fo_obj[name].length; i++) {
var v = fo_obj[name][i].value;
var style = selected_node.getAttribute("style"); for(var k = 0; k <val.length; k++) {
if(typeof(style)=="object") style = style["cssText"]; if(v == val[k]) {
fo_obj.style.value = style; fo_obj[name][i].checked = true;
break;
}
}
}
} else {
if(fo_obj[name].value == val) fo_obj[name].checked =true;
}
}
break;
case "select" :
case "select-one" :
var val = selected_node.getAttribute(name);
var sel = fo_obj[name];
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left"); if(!val) break;
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom"); for(var i = 0; i < sel.options.length; i++) {
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top"); if(sel.options[i].value == val) sel.options[i].selected = true;
else sel.options[i].selected = false;
}
break;
}
}
var style = selected_node.getAttribute("style");
if(typeof(style) == "object") style = style.cssText;
fo_obj.style.value = style;
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
// 컬러셋 설정 // 컬러셋 설정
if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length<1 && colorset) { if(skin && xGetElementById("widget_colorset") && xGetElementById("widget_colorset").options.length < 1 && colorset) {
doDisplaySkinColorset(colorset); doDisplaySkinColorset(colorset);
} }
// widget sequence 설정 // widget sequence 설정
fo_obj.widget_sequence.value = widget_sequence; fo_obj.widget_sequence.value = widget_sequence;
xe.broadcast('MULTIORDER_SYNC'); xe.broadcast('MULTIORDER_SYNC');
xe.broadcast('MODULELIST_SYNC'); xe.broadcast('MODULELIST_SYNC');
@ -192,9 +210,9 @@ function doFillWidgetVars() {
.each(function(){ .each(function(){
var $this = jQuery(this); var $this = jQuery(this);
var src = $this.siblings('input').eq(0).val().split(','); var src = $this.siblings('input').eq(0).val().split(',');
if (src) $this.trigger('filebox.selected', [src]); if(src) $this.trigger('filebox.selected', [src]);
}) });
} }
var $current_filebox; var $current_filebox;
@ -218,20 +236,22 @@ jQuery(document).ready(function($){
.remove(); .remove();
var htmlCode = ""; var htmlCode = "";
if(src instanceof Object ) { if(src instanceof Object ) {
for(var i=0;i<src.length;i++){ /*jshint -W004*/
for(var i = 0; i < src.length; i++){
if(src[i].id) { if(src[i].id) {
htmlCode += '<img src="'+src[i].id+'" alt="" style="border:1px solid #ccc;padding:5px;max-height:200px;max-width:200px"> <button type="button" class="filebox_del x_icon-remove">'+xe.lang.cmd_delete+'</button> '; htmlCode += '<img src="'+src[i].id+'" alt="" style="border:1px solid #ccc;padding:5px;max-height:200px;max-width:200px"> <button type="button" class="filebox_del x_icon-remove">'+xe.lang.cmd_delete+'</button> ';
if(i==0) $(this).siblings('input').val(src[i].id); if(i === 0) {
else { $(this).siblings('input').val(src[i].id);
} else {
var aux = $(this).siblings('input').val(); var aux = $(this).siblings('input').val();
$(this).siblings('input').val(aux+","+src[i].id); $(this).siblings('input').val(aux+","+src[i].id);
} }
} } else {
else { if(src[i]) {
if(src[i]){
htmlCode += '<img src="'+src[i]+'" alt="" style="border:1px solid #ccc;padding:5px;max-height:200px;max-width:200px"> <button type="button" class="filebox_del x_icon-remove">'+xe.lang.cmd_delete+'</button> '; htmlCode += '<img src="'+src[i]+'" alt="" style="border:1px solid #ccc;padding:5px;max-height:200px;max-width:200px"> <button type="button" class="filebox_del x_icon-remove">'+xe.lang.cmd_delete+'</button> ';
if(i==0) $(this).siblings('input').val(src[i]); if(i === 0) {
else { $(this).siblings('input').val(src[i]);
} else {
var aux = $(this).siblings('input').val(); var aux = $(this).siblings('input').val();
$(this).siblings('input').val(aux+","+src[i]); $(this).siblings('input').val(aux+","+src[i]);
} }
@ -244,16 +264,15 @@ jQuery(document).ready(function($){
} }
$(this).before(htmlCode); $(this).before(htmlCode);
$('.filebox_del').bind('click', function(){ $('.filebox_del').bind('click', function(){
var filename = $(this).prev('img').attr("src"); var filename = $(this).prev('img').attr("src");
var files = $(this).siblings('input').val().split(","); var files = $(this).siblings('input').val().split(",");
var newInput = ""; var newInput = "";
for(var i=0;i<files.length;i++){
for(var i = 0; i < files.length; i++){
if(files[i] != filename) { if(files[i] != filename) {
if(!newInput.length) newInput = files[i]; if(!newInput.length) newInput = files[i];
else newInput += ","+files[i]; else newInput += "," +files[i];
} }
} }
$(this).siblings('input').val(newInput); $(this).siblings('input').val(newInput);
@ -267,16 +286,17 @@ jQuery(document).ready(function($){
}); });
$('#filebox_upload').find('input[type=submit]').click(function(){ $('#filebox_upload').find('input[type=submit]').click(function(){
if ($('iframe[name=iframeTarget]').length < 1){ if($('iframe[name=iframeTarget]').length < 1){
var $iframe = $(document.createElement('iframe')); var $iframe = $(document.createElement('iframe'));
$iframe.css('display', 'none'); $iframe.css('display', 'none');
$iframe.attr('src', '#'); $iframe.attr('src', '#');
$iframe.attr('name', 'iframeTarget'); $iframe.attr('name', 'iframeTarget');
$iframe.load(function(){ $iframe.load(function() {
/*jshint -W061*/
var data = eval('(' + $(window.iframeTarget.document.getElementsByTagName("body")[0]).html() + ')'); var data = eval('(' + $(window.iframeTarget.document.getElementsByTagName("body")[0]).html() + ')');
if (data.error){ if(data.error) {
alert(data.message); alert(data.message);
return; return;
} }
@ -293,7 +313,7 @@ jQuery(document).ready(function($){
$('#widget_code_form').bind('submit', function(){ $('#widget_code_form').bind('submit', function(){
function on_complete(data){ function on_complete(data){
if (data.error){ if(data.error) {
alert(data.message); alert(data.message);
return; return;
} }
@ -302,13 +322,20 @@ jQuery(document).ready(function($){
} }
var datas = $(this).serializeArray(); var datas = $(this).serializeArray();
var params = new Object(); var params = {};
for(var i in datas){
for(var i in datas) {
var data = datas[i]; var data = datas[i];
if(/\[\]$/.test(data.name)) data.name = data.name.replace(/\[\]$/, ''); if(/\[\]$/.test(data.name)) {
if(params[data.name]) params[data.name] += '|@|' + data.value; data.name = data.name.replace(/\[\]$/, '');
else params[data.name] = data.value; }
if(params[data.name]) {
params[data.name] += '|@|' + data.value;
} else {
params[data.name] = data.value;
}
} }
$.exec_json('widget.procWidgetGenerateCode', params, on_complete); $.exec_json('widget.procWidgetGenerateCode', params, on_complete);
@ -318,22 +345,28 @@ jQuery(document).ready(function($){
$('#fo_widget').bind('submit', function(){ $('#fo_widget').bind('submit', function(){
function on_complete(data){ function on_complete(data){
if (data['error'] != '0'){ if(data.error != '0'){
alert(data['message']); alert(data.message);
return; return;
} }
completeGenerateCodeInPage(data['widget_code']); completeGenerateCodeInPage(data.widget_code);
} }
var datas = $(this).serializeArray(); var datas = $(this).serializeArray();
var params = new Object(); var params = {};
for(var i in datas){
for(var i in datas) {
var data = datas[i]; var data = datas[i];
if(/\[\]$/.test(data.name)) data.name = data.name.replace(/\[\]$/, ''); if(/\[\]$/.test(data.name)) {
if(params[data.name]) params[data.name] += '|@|' + data.value; data.name = data.name.replace(/\[\]$/, '');
else params[data.name] = data.value; }
if(params[data.name]) {
params[data.name] += '|@|' + data.value;
} else {
params[data.name] = data.value;
}
} }
exec_xml('widget', 'procWidgetGenerateCodeInPage', params, on_complete, ['error', 'message', 'widget_code']); exec_xml('widget', 'procWidgetGenerateCodeInPage', params, on_complete, ['error', 'message', 'widget_code']);

File diff suppressed because it is too large Load diff

View file

@ -6,465 +6,468 @@
/* 생성된 코드를 textarea에 출력 */ /* 생성된 코드를 textarea에 출력 */
function completeGenerateCode(ret_obj) { function completeGenerateCode(ret_obj) {
var widget_code = ret_obj["widget_code"]; var widget_code = ret_obj.widget_code;
widget_code = widget_code.replace(/&/g, "&amp;"); widget_code = widget_code.replace(/&/g, "&amp;");
widget_code = widget_code.replace(/\'/g, "&apos;"); widget_code = widget_code.replace(/\'/g, "&apos;");
var zone = get_by_id("widget_code"); var zone = get_by_id("widget_code");
zone.value = widget_code; zone.value = widget_code;
} }
/* 생성된 코드를 페이지 zone에 출력 */ /* 생성된 코드를 페이지 zone에 출력 */
function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) { function completeGenerateCodeInPage(ret_obj,response_tags,params,fo_obj) {
var widget_code = ret_obj["widget_code"]; var widget_code = ret_obj.widget_code;
if(!opener || !widget_code) { if(!opener || !widget_code) {
window.close(); window.close();
return; return;
} }
opener.doAddWidgetCode(widget_code); opener.doAddWidgetCode(widget_code);
window.close(); window.close();
} }
/* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */ /* 위젯 코드 생성시 스킨을 고르면 컬러셋의 정보를 표시 */
function doDisplaySkinColorset(sel, colorset) { function doDisplaySkinColorset(sel, colorset) {
var skin = sel.options[sel.selectedIndex].value; var skin = sel.options[sel.selectedIndex].value;
if(!skin) { if(!skin) {
get_by_id("colorset_area").style.display = "none"; get_by_id("colorset_area").style.display = "none";
setFixedPopupSize(); setFixedPopupSize();
return; return;
} }
var params = new Array(); var params = [];
params["selected_widget"] = get_by_id("fo_widget").selected_widget.value; params.selected_widget = get_by_id("fo_widget").selected_widget.value;
params["skin"] = skin; params.skin = skin;
params["colorset"] = colorset; params.colorset = colorset;
var response_tags = new Array("error","message","colorset_list"); var response_tags = new Array("error","message","colorset_list");
exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params); exec_xml("widget", "procWidgetGetColorsetList", params, completeGetSkinColorset, response_tags, params);
} }
/* 서버에서 받아온 컬러셋을 표시 */ /* 서버에서 받아온 컬러셋을 표시 */
function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) { function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
var sel = jQuery("#fo_widget")[0].widget_colorset; /*jshint -W004*/
var length = sel.options.length; var sel = jQuery("#fo_widget")[0].widget_colorset;
var selected_colorset = params["colorset"]; var length = sel.options.length;
for(var i=0;i<length;i++) sel.remove(0); var selected_colorset = params.colorset;
for(var i=0;i<length;i++) sel.remove(0);
if(!ret_obj["colorset_list"]) return; if(!ret_obj.colorset_list) return;
var colorset_list = ret_obj["colorset_list"].split("\n"); var colorset_list = ret_obj.colorset_list.split("\n");
var selected_index = 0; var selected_index = 0;
for(var i=0;i<colorset_list.length;i++) { for(var i=0;i<colorset_list.length;i++) {
var tmp = colorset_list[i].split("|@|"); var tmp = colorset_list[i].split("|@|");
if(selected_colorset && selected_colorset==tmp[0]) selected_index = i; if(selected_colorset && selected_colorset==tmp[0]) selected_index = i;
var opt = new Option(tmp[1], tmp[0], false, false); var opt = new Option(tmp[1], tmp[0], false, false);
sel.options.add(opt); sel.options.add(opt);
} }
sel.selectedIndex = selected_index; sel.selectedIndex = selected_index;
jQuery("#colorset_area").show(); jQuery("#colorset_area").show();
setFixedPopupSize(); setFixedPopupSize();
} }
var selected_node = null; var selected_node = null;
/* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */ /* 페이지 모듈에서 위젯스타일 수정하려고 할 경우 */
function getWidgetVars() { function getWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return; if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget; selected_node = opener.selectedWidget;
if(!get_by_id('fo_widget').widgetstyle.value) { if(!get_by_id('fo_widget').widgetstyle.value) {
get_by_id('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle'); get_by_id('fo_widget').widgetstyle.value = selected_node.getAttribute('widgetstyle');
} }
doFillWidgetVars(); doFillWidgetVars();
} }
/* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */ /* 페이지 모듈에서 내용의 위젯을 더블클릭하여 수정하려고 할 경우 */
function doFillWidgetVars() { function doFillWidgetVars() {
if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return; if(!opener || !opener.selectedWidget || !opener.selectedWidget.getAttribute("widget")) return;
selected_node = opener.selectedWidget; selected_node = opener.selectedWidget;
// 스킨과 컬러셋은 기본 // 스킨과 컬러셋은 기본
var skin = selected_node.getAttribute("skin"); var skin = selected_node.getAttribute("skin");
var colorset = selected_node.getAttribute("colorset"); var colorset = selected_node.getAttribute("colorset");
var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10); var widget_sequence = parseInt(selected_node.getAttribute("widget_sequence"),10);
var fo_widget = jQuery("#fo_widget"); var fo_widget = jQuery("#fo_widget");
var fo_obj = get_by_id("fo_widget"); var fo_obj = get_by_id("fo_widget");
jQuery('#widget_skin').val(skin); jQuery('#widget_skin').val(skin);
// 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장 // 위젯 스타일 유지를 위한 hidden input 추가하고 값을 저장
var attrs = selected_node.attributes; var attrs = selected_node.attributes;
for (i=0; i< attrs.length ; i++){ for (i=0; i< attrs.length ; i++){
var name = attrs[i].name; var name = attrs[i].name;
var value = jQuery(selected_node).attr(name); var value = jQuery(selected_node).attr(name);
if(value=='Array') continue; if(value=='Array') continue;
if(jQuery("[name="+name+"]",fo_widget).size()>0 || !value || name == 'style') 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); var dummy = jQuery('<input type="hidden" name="'+name+'" >').val(value).appendTo("#fo_widget").get(0);
} }
// 위젯의 속성 설정 // 위젯의 속성 설정
var obj_list = new Array(); var obj_list = [];
jQuery('input,select,textarea','#fo_widget').each( function() { jQuery('input,select,textarea','#fo_widget').each( function() {
obj_list.push(this); obj_list.push(this);
}); });
for(var j=0;j<obj_list.length;j++) { for(var j=0;j<obj_list.length;j++) {
var node = obj_list[j]; /*jshint -W004*/
if(node.name.indexOf('_')==0) continue; var node = obj_list[j];
if(node.name == 'widgetstyle') continue; if(node.name.indexOf('_') === 0) continue;
if(node.name == 'widgetstyle') continue;
var length = node.length; var length = node.length;
var type = node.type; var type = node.type;
if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type; if((typeof(type)=='undefined'||!type) && typeof(length)!='undefined' && typeof(node[0])!='undefined' && length>0) type = node[0].type;
else length = 0; else length = 0;
var name = node.name; var name = node.name;
switch(type) { switch(type) {
case "hidden" : case "hidden" :
case "text" : case "text" :
case "textarea" : case "textarea" :
var val = selected_node.getAttribute(name); var val = selected_node.getAttribute(name);
if(!val) continue; if(!val) continue;
var unescaped_val = unescape(val); var unescaped_val = unescape(val);
if(!unescaped_val) node.value = val; if(!unescaped_val) node.value = val;
else node.value = unescaped_val; else node.value = unescaped_val;
break; break;
case "checkbox" : case "checkbox" :
if(selected_node.getAttribute(name)) { if(selected_node.getAttribute(name)) {
var val = selected_node.getAttribute(name).split(','); var val = selected_node.getAttribute(name).split(',');
if(fo_obj[name].length) { if(fo_obj[name].length) {
for(var i=0;i<fo_obj[name].length;i++) { for(var i=0;i<fo_obj[name].length;i++) {
var v = fo_obj[name][i].value; var v = fo_obj[name][i].value;
for(var k=0;k<val.length;k++) { for(var k=0;k<val.length;k++) {
if(v == val[k]) { if(v == val[k]) {
fo_obj[name][i].checked=true; fo_obj[name][i].checked=true;
break; break;
} }
} }
} }
} else { } else {
if(fo_obj[name].value == val) fo_obj[name].checked =true; if(fo_obj[name].value == val) fo_obj[name].checked =true;
} }
} }
break; break;
case "select" : case "select" :
case "select-one" : case "select-one" :
var val = selected_node.getAttribute(name); var val = selected_node.getAttribute(name);
var sel = fo_obj[name]; var sel = fo_obj[name];
if(!val) break; if(!val) break;
for(var i=0;i<sel.options.length;i++) { for(var i=0;i<sel.options.length;i++) {
if(sel.options[i].value == val) sel.options[i].selected = true; if(sel.options[i].value == val) sel.options[i].selected = true;
else sel.options[i].selected = false; else sel.options[i].selected = false;
} }
break; break;
} }
} }
var style = selected_node.getAttribute("style"); var style = selected_node.getAttribute("style");
if(typeof(style)=="object") style = style["cssText"]; if(typeof(style)=="object") style = style.cssText;
fo_obj.style.value = style; fo_obj.style.value = style;
fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left"); fo_obj.widget_padding_left.value = selected_node.getAttribute("widget_padding_left");
fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right"); fo_obj.widget_padding_right.value = selected_node.getAttribute("widget_padding_right");
fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom"); fo_obj.widget_padding_bottom.value = selected_node.getAttribute("widget_padding_bottom");
fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top"); fo_obj.widget_padding_top.value = selected_node.getAttribute("widget_padding_top");
// 컬러셋 설정 // 컬러셋 설정
if(skin && get_by_id("widget_colorset") && get_by_id("widget_colorset").options.length<1 && colorset) { if(skin && get_by_id("widget_colorset") && get_by_id("widget_colorset").options.length<1 && colorset) {
doDisplaySkinColorset(get_by_id("widget_skin"), colorset); doDisplaySkinColorset(get_by_id("widget_skin"), colorset);
} }
// widget sequence 설정 // widget sequence 설정
fo_obj.widget_sequence.value = widget_sequence; fo_obj.widget_sequence.value = widget_sequence;
} }
function checkFixType(obj) { function checkFixType(obj) {
var val = obj.options[obj.selectedIndex].value; var val = obj.options[obj.selectedIndex].value;
if(val != "px") { if(val != "px") {
var fo_obj = get_by_id("fo_widget"); var fo_obj = get_by_id("fo_widget");
var width = fo_obj.widget_width.value; var width = fo_obj.widget_width.value;
if(width>100) fo_obj.widget_width.value = 100; if(width>100) fo_obj.widget_width.value = 100;
} }
} }
// 위젯의 대상 모듈 입력기 (단일 선택) // 위젯의 대상 모듈 입력기 (단일 선택)
function insertSelectedModule(id, module_srl, mid, browser_title) { function insertSelectedModule(id, module_srl, mid, browser_title) {
var obj= get_by_id('_'+id); var obj= get_by_id('_'+id);
var sObj = get_by_id(id); var sObj = get_by_id(id);
sObj.value = module_srl; sObj.value = module_srl;
obj.value = browser_title+' ('+mid+')'; obj.value = browser_title+' ('+mid+')';
} }
// 위젯의 대상 모듈 입력기 (다중 선택) // 위젯의 대상 모듈 입력기 (다중 선택)
function insertSelectedModules(id, module_srl, mid, browser_title) { function insertSelectedModules(id, module_srl, mid, browser_title) {
var sel_obj = jQuery('#_'+id)[0]; var sel_obj = jQuery('#_'+id)[0];
for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return; for(var i=0;i<sel_obj.options.length;i++) if(sel_obj.options[i].value==module_srl) return;
var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false); var opt = new Option(browser_title+' ('+mid+')', module_srl, false, false);
sel_obj.options[sel_obj.options.length] = opt; sel_obj.options[sel_obj.options.length] = opt;
if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length; if(sel_obj.options.length>8) sel_obj.size = sel_obj.options.length;
syncMid(id); syncMid(id);
} }
function midMoveUp(id) { function midMoveUp(id) {
var sel_obj = get_by_id('_'+id); var sel_obj = get_by_id('_'+id);
if(sel_obj.selectedIndex<0) return; if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex; var idx = sel_obj.selectedIndex;
if(idx < 1) return; if(idx < 1) return;
var s_obj = sel_obj.options[idx]; var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx-1]; var t_obj = sel_obj.options[idx-1];
var value = s_obj.value; var value = s_obj.value;
var text = s_obj.text; var text = s_obj.text;
s_obj.value = t_obj.value; s_obj.value = t_obj.value;
s_obj.text = t_obj.text; s_obj.text = t_obj.text;
t_obj.value = value; t_obj.value = value;
t_obj.text = text; t_obj.text = text;
sel_obj.selectedIndex = idx-1; sel_obj.selectedIndex = idx-1;
syncMid(id); syncMid(id);
} }
function midMoveDown(id) { function midMoveDown(id) {
var sel_obj = get_by_id('_'+id); var sel_obj = get_by_id('_'+id);
if(sel_obj.selectedIndex<0) return; if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex; var idx = sel_obj.selectedIndex;
if(idx == sel_obj.options.length-1) return; if(idx == sel_obj.options.length-1) return;
var s_obj = sel_obj.options[idx]; var s_obj = sel_obj.options[idx];
var t_obj = sel_obj.options[idx+1]; var t_obj = sel_obj.options[idx+1];
var value = s_obj.value; var value = s_obj.value;
var text = s_obj.text; var text = s_obj.text;
s_obj.value = t_obj.value; s_obj.value = t_obj.value;
s_obj.text = t_obj.text; s_obj.text = t_obj.text;
t_obj.value = value; t_obj.value = value;
t_obj.text = text; t_obj.text = text;
sel_obj.selectedIndex = idx+1; sel_obj.selectedIndex = idx+1;
syncMid(id); syncMid(id);
} }
function midRemove(id) { function midRemove(id) {
var sel_obj = get_by_id('_'+id); var sel_obj = get_by_id('_'+id);
if(sel_obj.selectedIndex<0) return; if(sel_obj.selectedIndex<0) return;
var idx = sel_obj.selectedIndex; var idx = sel_obj.selectedIndex;
sel_obj.remove(idx); sel_obj.remove(idx);
idx = idx-1; idx = idx-1;
if(idx < 0) idx = 0; if(idx < 0) idx = 0;
if(sel_obj.options.length) sel_obj.selectedIndex = idx; if(sel_obj.options.length) sel_obj.selectedIndex = idx;
syncMid(id); syncMid(id);
} }
function syncMid(id) { function syncMid(id) {
var sel_obj = jQuery('#_'+id)[0]; var sel_obj = jQuery('#_'+id)[0];
var valueArray = []; var valueArray = [];
for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value; for(var i=0;i<sel_obj.options.length;i++) valueArray[valueArray.length] = sel_obj.options[i].value;
jQuery('#'+id).val( valueArray.join(',') ); jQuery('#'+id).val( valueArray.join(',') );
} }
function getModuleSrlList(id) { function getModuleSrlList(id) {
var obj = jQuery('#'+id); var obj = jQuery('#'+id);
if(!obj[0] || !obj.val()) return; if(!obj[0] || !obj.val()) return;
var params = []; var params = [];
params["module_srls"] = obj.val(); params.module_srls = obj.val();
params["id"] = id; params.id = id;
var response_tags = ["error","message","module_list","id"]; var response_tags = ["error","message","module_list","id"];
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params); exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrlList, response_tags, params);
} }
function completeGetModuleSrlList(ret_obj, response_tags) { function completeGetModuleSrlList(ret_obj, response_tags) {
var id = ret_obj['id']; var id = ret_obj.id;
var sel_obj = jQuery('#_'+id); var sel_obj = jQuery('#_'+id);
if(!sel_obj[0]) return; if(!sel_obj[0]) return;
var module_list = ret_obj['module_list']; var module_list = ret_obj.module_list;
if(!module_list) return; if(!module_list) return;
var item = module_list['item']; var item = module_list.item;
if(typeof(item.length)=='undefined' || item.length<1) item = [item]; if(typeof(item.length)=='undefined' || item.length<1) item = [item];
for(var i=0;i<item.length;i++) { for(var i=0;i<item.length;i++) {
var module_srl = item[i].module_srl; var module_srl = item[i].module_srl;
var mid = item[i].mid; var mid = item[i].mid;
var browser_title = item[i].browser_title; var browser_title = item[i].browser_title;
var opt = new Option(browser_title+' ('+mid+')', module_srl); var opt = new Option(browser_title+' ('+mid+')', module_srl);
sel_obj[0].options.add(opt); sel_obj[0].options.add(opt);
} }
} }
function getModuleSrl(id) { function getModuleSrl(id) {
var obj = get_by_id(id); var obj = get_by_id(id);
if(!obj.value) return; if(!obj.value) return;
var value = obj.value; var value = obj.value;
var params = new Array(); var params = [];
params["module_srls"] = obj.value; params.module_srls = obj.value;
params["id"] = id; params.id = id;
var response_tags = new Array("error","message","module_list","id"); var response_tags = new Array("error","message","module_list","id");
exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params); exec_xml("module", "getModuleAdminModuleList", params, completeGetModuleSrl, response_tags, params);
} }
function completeGetModuleSrl(ret_obj, response_tags) { function completeGetModuleSrl(ret_obj, response_tags) {
var id = ret_obj['id']; var id = ret_obj.id;
var obj = get_by_id('_'+id); var obj = get_by_id('_'+id);
var sObj = get_by_id(id); var sObj = get_by_id(id);
if(!sObj || !obj) return; if(!sObj || !obj) return;
var module_list = ret_obj['module_list']; var module_list = ret_obj.module_list;
if(!module_list) return; if(!module_list) return;
var item = module_list['item']; var item = module_list.item;
if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item); if(typeof(item.length)=='undefined' || item.length<1) item = new Array(item);
sObj.value = item[0].module_srl; sObj.value = item[0].module_srl;
obj.value = item[0].browser_title+' ('+item[0].mid+')'; obj.value = item[0].browser_title+' ('+item[0].mid+')';
} }
var windowLoadEventLoader = new Array(); var windowLoadEventLoader = [];
function doAddWindowLoadEventLoader(func) { function doAddWindowLoadEventLoader(func) {
windowLoadEventLoader.push(func); windowLoadEventLoader.push(func);
} }
function excuteWindowLoadEvent() { function excuteWindowLoadEvent() {
for(var i=0;i<windowLoadEventLoader.length;i++) { for(var i=0;i<windowLoadEventLoader.length;i++) {
windowLoadEventLoader[i](); windowLoadEventLoader[i]();
} }
} }
jQuery(window).load(excuteWindowLoadEvent); jQuery(window).load(excuteWindowLoadEvent);
function selectWidget(val){ function selectWidget(val){
var url =current_url.setQuery('selected_widget', val); var url =current_url.setQuery('selected_widget', val);
document.location.href = url; document.location.href = url;
} }
function widgetstyle_extra_image_upload(f){ function widgetstyle_extra_image_upload(f){
f.act.value='procWidgetStyleExtraImageUpload'; f.act.value='procWidgetStyleExtraImageUpload';
f.submit(); f.submit();
} }
function MultiOrderSet(id){ function MultiOrderSet(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var value = []; var value = [];
for(i=0;i<selectedObj.options.length;i++){ for(i=0;i<selectedObj.options.length;i++){
value.push(selectedObj.options[i].value); value.push(selectedObj.options[i].value);
} }
jQuery("[name='"+id+"']").val(value.join(',')); jQuery("[name='"+id+"']").val(value.join(','));
} }
function MultiOrderAdd(id){ function MultiOrderAdd(id){
var showObj = jQuery("[name='show_"+id+"']").get(0); var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(','); var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
if(showObj.selectedIndex<0) return; if(showObj.selectedIndex<0) return;
var idx = showObj.selectedIndex; var idx = showObj.selectedIndex;
var svalue = showObj.options[idx].value; var svalue = showObj.options[idx].value;
for(i=0;i<selectedObj.options.length;i++){ for(i=0;i<selectedObj.options.length;i++){
if(selectedObj.options[i].value == svalue) return; if(selectedObj.options[i].value == svalue) return;
} }
selectedObj.options.add(new Option(svalue, svalue, false, false)); selectedObj.options.add(new Option(svalue, svalue, false, false));
MultiOrderSet(id); MultiOrderSet(id);
} }
function MultiOrderDelete(id){ function MultiOrderDelete(id){
var showObj = jQuery("[name='show_"+id+"']").get(0); var showObj = jQuery("[name='show_"+id+"']").get(0);
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var defaultObj = jQuery("[name='default_"+id+"']").val().split(','); var defaultObj = jQuery("[name='default_"+id+"']").val().split(',');
var idx = selectedObj.selectedIndex; var idx = selectedObj.selectedIndex;
if(idx<0) return; if(idx<0) return;
for(i=0;i<defaultObj.length;i++){ for(i=0;i<defaultObj.length;i++){
if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return; if(jQuery.inArray(selectedObj.options[idx].value, defaultObj) > -1) return;
} }
selectedObj.remove(idx); selectedObj.remove(idx);
idx = idx-1; idx = idx-1;
if(idx < 0) idx = 0; if(idx < 0) idx = 0;
if(selectedObj.options.length) selectedObj.selectedIndex = idx; if(selectedObj.options.length) selectedObj.selectedIndex = idx;
MultiOrderSet(id); MultiOrderSet(id);
} }
function MultiOrderUp(id){ function MultiOrderUp(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return; if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex; var idx = selectedObj.selectedIndex;
if(idx < 1) return; if(idx < 1) return;
var s_obj = selectedObj.options[idx]; var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx-1]; var t_obj = selectedObj.options[idx-1];
var value = s_obj.value; var value = s_obj.value;
var text = s_obj.text; var text = s_obj.text;
s_obj.value = t_obj.value; s_obj.value = t_obj.value;
s_obj.text = t_obj.text; s_obj.text = t_obj.text;
t_obj.value = value; t_obj.value = value;
t_obj.text = text; t_obj.text = text;
selectedObj.selectedIndex = idx-1; selectedObj.selectedIndex = idx-1;
MultiOrderSet(id); MultiOrderSet(id);
} }
function MultiOrderDown(id){ function MultiOrderDown(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
if(selectedObj.selectedIndex<0) return; if(selectedObj.selectedIndex<0) return;
var idx = selectedObj.selectedIndex; var idx = selectedObj.selectedIndex;
if(idx == selectedObj.options.length-1) return; if(idx == selectedObj.options.length-1) return;
var s_obj = selectedObj.options[idx]; var s_obj = selectedObj.options[idx];
var t_obj = selectedObj.options[idx+1]; var t_obj = selectedObj.options[idx+1];
var value = s_obj.value; var value = s_obj.value;
var text = s_obj.text; var text = s_obj.text;
s_obj.value = t_obj.value; s_obj.value = t_obj.value;
s_obj.text = t_obj.text; s_obj.text = t_obj.text;
t_obj.value = value; t_obj.value = value;
t_obj.text = text; t_obj.text = text;
selectedObj.selectedIndex = idx+1; selectedObj.selectedIndex = idx+1;
MultiOrderSet(id); MultiOrderSet(id);
} }
function initMultiOrder(id){ function initMultiOrder(id){
var selectedObj = jQuery("[name='selected_"+id+"']").get(0); var selectedObj = jQuery("[name='selected_"+id+"']").get(0);
var init_value = jQuery("[name='init_"+id+"']").val(); var init_value = jQuery("[name='init_"+id+"']").val();
var save_value = jQuery("[name='"+id+"']").val(); var save_value = jQuery("[name='"+id+"']").val();
if(save_value){ if(save_value){
var arr_save_value = save_value.split(','); var arr_save_value = save_value.split(',');
for(i=0;i<arr_save_value.length;i++){ for(i=0;i<arr_save_value.length;i++){
if(arr_save_value[i].length>0){ if(arr_save_value[i].length>0){
var opt = new Option(arr_save_value[i], arr_save_value[i]); var opt = new Option(arr_save_value[i], arr_save_value[i]);
selectedObj.options.add(opt); selectedObj.options.add(opt);
} }
} }
}else{ }else{
var arr_init_value = init_value.split(','); /*jshint -W004*/
for(i=0;i<arr_init_value.length;i++){ var arr_init_value = init_value.split(',');
if(arr_init_value[i].length>0){ for(i=0;i<arr_init_value.length;i++){
var opt = new Option(arr_init_value[i], arr_init_value[i]); if(arr_init_value[i].length>0){
selectedObj.options.add(opt); var opt = new Option(arr_init_value[i], arr_init_value[i]);
} selectedObj.options.add(opt);
} }
}
} }
MultiOrderSet(id); MultiOrderSet(id);
} }