mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
4062 lines
127 KiB
HTML
4062 lines
127 KiB
HTML
<load target="./css/sitemap.css" index="11" />
|
||
<load target="./js/_lib/jquery.cookie.js" />
|
||
<load target="./js/jquery.scrollTo-1.4.2.js" />
|
||
<div cond="$XE_VALIDATOR_MESSAGE" class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||
</div>
|
||
|
||
<div class="_quick_help x_alert">
|
||
<p class="_quick_help_msg">msg</p>
|
||
<label><input class="_quick_help_nomore" type="checkbox"/> {$lang->do_not_display_again}</label>
|
||
</div>
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
<div id="site" class="_siteMap" style="word-wrap:normal">
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
<div id="site" class="_siteDesign">
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
<div class="col map" id="site_map">
|
||
<h1>{$lang->menu_gnb_sub['siteMap']}</h1>
|
||
<form id="menu_find">
|
||
<input name="keyword" type="text"></input>
|
||
<button class="x_btn x_btn-inverse btn-find">{$lang->cmd_find}</button>
|
||
<button class="x_btn x_btn-inverse btn-next" type="button">{$lang->cmd_next}</button>
|
||
</form>
|
||
<div class="cnt">
|
||
<section class="mapi" id="siteMapTree">
|
||
<script id="tmpl_menuTree" type="text/x-jquery-tmpl">
|
||
<ul>
|
||
{{html Nodes}}
|
||
</ul>
|
||
</script>
|
||
<script id="tmpl_menuTreeNode" type="text/x-jquery-tmpl">
|
||
<li id="menu${MenuId}">
|
||
<a href="#" data-param='{ "sMenuId":"${MenuId}" }'>${MenuTitleWithHome}</a>
|
||
{{html SubTree}}
|
||
</li>
|
||
</script>
|
||
|
||
<script id="tmpl_menuSelector_menuTree" type="text/x-jquery-tmpl">
|
||
<ul>
|
||
{{html Nodes}}
|
||
</ul>
|
||
</script>
|
||
<script id="tmpl_menuSelector_menuTreeNode" type="text/x-jquery-tmpl">
|
||
<li>
|
||
<a href="#" class="_nodeType_${NodeType} _menu_url_${MenuUrl}" data-param='{ "sMenuId":"${MenuId}", "sMenuUrl":"${MenuUrl}", "eMenuTitle":"${eMenuTitle}" }'>${MenuTitle}</a>
|
||
{{html SubTree}}
|
||
</li>
|
||
</script>
|
||
</section>
|
||
</div>
|
||
<button type="button" class="x_btn x_btn-link _addSiteMap1" data-admin-show="#add_sitemap" style="position:absolute;right:6px;bottom:6px;color:#000"><i class="x_icon-plus-sign"></i> {$lang->add_new_sitemap}</button>
|
||
</div>
|
||
<div class="col" id="add_sitemap" style="display:none">
|
||
<section>
|
||
<h1>
|
||
{$lang->add_new_sitemap}
|
||
</h1>
|
||
<div class="cnt">
|
||
<ul class="_itemList">
|
||
<li>
|
||
<label for="sitemapName">{$lang->sitemap_name}</label>
|
||
<input id="sitemapName" class="_sitemapName lang_code" type="text" required>
|
||
</li>
|
||
</ul>
|
||
<div class="btnBoth">
|
||
<button type="reset" class="x_btn x_pull-left" data-admin-hide="#sitemap_general">{$lang->cmd_cancel}</button>
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#add_sitemap">×</button>
|
||
</div>
|
||
<div class="col" id="propertiesRoot" style="display:none">
|
||
<section>
|
||
<h1 class="title"><!--사이트맵 이름--></h1>
|
||
<div class="cnt">
|
||
<ul class="nav">
|
||
<li><a href="#sitemap_general" data-admin-show="#sitemap_general">{$lang->edit_sitemap} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><a href="#add" data-admin-show="#add">{$lang->add_menu} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><a href="#sitemap_batch_design" data-admin-show="#sitemap_batch_design">{$lang->sitemap_batch_design} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><button type="button" class="_edit_paste" disabled>{$lang->paste}</button></li>
|
||
<li><button class="_delSiteMap" type="button">{$lang->cmd_delete}</button></li>
|
||
<li><button class="_renameSiteMap" type="button">{$lang->change_name}</button></li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#propertiesRoot">×</button>
|
||
</div>
|
||
<div class="col" id="sitemap_general" style="display:none">
|
||
<section>
|
||
<h1>{$lang->edit_sitemap}</h1>
|
||
<div class="cnt">
|
||
<ul class="_itemList">
|
||
<li>
|
||
<label for="sitemapName2">{$lang->sitemap_name}</label>
|
||
<input id="sitemapName2" class="_sitemapName lang_code" type="text" required>
|
||
</li>
|
||
</ul>
|
||
<div class="btnBoth">
|
||
<button type="reset" class="x_btn x_pull-left" data-admin-hide="#sitemap_general">{$lang->cmd_cancel}</button>
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#sitemap_general">×</button>
|
||
</div>
|
||
<div class="col prop-general" id="properties" style="display:none;">
|
||
<section>
|
||
<h1><a href="" target="_blank" class="title"><!--메뉴 이름--></a></h1>
|
||
<div class="cnt">
|
||
<ul>
|
||
<li class="type"><strong>{$lang->menu_type}</strong>: <span class="module_type"></span></li>
|
||
<li><a href="#default" data-admin-show="#default">{$lang->general_settings} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<!--li><strong>{$lang->menu_id}</strong>: <span class="url"></span></li-->
|
||
<li><a href="#add" data-admin-show="#add">{$lang->add_menu} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><button type="button" class="_edit_cut">{$lang->cut}</button></li>
|
||
<li class="ex"><button type="button" class="_edit_copy">{$lang->copy}</button></li>
|
||
<li class="ex"><button type="button" class="_edit_paste" disabled>{$lang->paste}</button></li>
|
||
<li class="ex"><button type="button" class="_deleteMenu">{$lang->cmd_delete}</button></li>
|
||
<li><a href="#imgbtn" data-admin-show="#imgbtn">{$lang->menu_img_btn} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li class="design"><a href="#design" data-admin-show="#design">{$lang->design} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><a href="#auth" data-admin-show="#auth">{$lang->grant} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li class="_hasFullSetupX details"><a href="#" class="_openFullSetup">{$lang->full_settings} <i class="x_icon-cog"></i></a></li>
|
||
<li class="_hasFullSetupO details"><a href="#fullSetup" data-admin-show="#fullSetup">{$lang->full_settings} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#properties">×</button>
|
||
</div>
|
||
<div class="col" id="sitemap_batch_design" style="display:none">
|
||
<section>
|
||
<h1>{$lang->sitemap_batch_design}</h1>
|
||
<div class="cnt">
|
||
<ul class="_itemList">
|
||
<li>
|
||
<label for="layout_P">{$lang->pc} {$lang->layout}</label>
|
||
<select name="layout_P" id="layout_P">
|
||
<option value="0"></option>
|
||
<!--@foreach($layouts_P as $layout_i)-->
|
||
<option value="{$layout_i->layout_srl}">{$layout_i->title}</option>
|
||
<!--@endforeach-->
|
||
</select>
|
||
</li>
|
||
<li>
|
||
<label for="layout_M">{$lang->mobile} {$lang->layout}</label>
|
||
<select name="layout_M" id="layout_M">
|
||
<option value="0"></option>
|
||
<!--@foreach($layouts_M as $layout_i)-->
|
||
<option value="{$layout_i->layout_srl}">{$layout_i->title}</option>
|
||
<!--@endforeach-->
|
||
</select>
|
||
</li>
|
||
</ul>
|
||
<div class="btnBoth">
|
||
<button type="reset" class="x_btn x_pull-left" data-admin-hide="#sitemap_batch_design">{$lang->cmd_cancel}</button>
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#sitemap_batch_design">×</button>
|
||
</div>
|
||
<div class="col" id="add" style="display:none">
|
||
<section>
|
||
<h1>{$lang->add_menu}</h1>
|
||
<div class="cnt">
|
||
<ul class="nav _itemList">
|
||
<script id="tmpl_menuTypeItem" type="text/x-jquery-tmpl">
|
||
<li><a href="#add_menu" data-admin-show="#add_menu" data-param='{ "moduleName" : "${ModuleName}", "moduleTitle": "${ModuleTitle}" }'>${ModuleTitle} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
</script>
|
||
</ul>
|
||
</div>
|
||
</section>
|
||
<a href="#download" class="x_btn x_btn-link" data-admin-show="#download" style="position:absolute;right:6px;bottom:6px;color:#000"><i class="x_icon-plus-sign"></i> {$lang->install_other_menu_types}</a>
|
||
<button type="button" class="x_close" data-admin-hide="#add">×</button>
|
||
</div>
|
||
<div class="col url" id="add_menu" style="display:none">
|
||
<fieldset>
|
||
<h1 class="_title"></h1>
|
||
<div class="cnt">
|
||
<p class="desc"><dfn class="_description"></dfn> <a class='_link'><i class="xi-link"></i>{$lang->details}</a></p>
|
||
<ul>
|
||
<li>
|
||
<div class="multilingual x_input-append">
|
||
<label for="lang_menuName2">{$lang->menu_name}</label>
|
||
<input id="menuName2" class="_menuName lang_code" type="text" required>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<label for="menuIcon2">{$lang->menu_icon} <a href="#help_menuIcon2" class="x_icon-question-sign" data-admin-toggle="#help_menuIcon2">{$lang->help}</a></label>
|
||
<div id="help_menuIcon2" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#help_menuIcon2">×</button>
|
||
<p>{$lang->about_menu_icon}</p>
|
||
</div>
|
||
<input id="menuIcon2" class="_menuIcon" type="text" />
|
||
</li>
|
||
<li>
|
||
<label for="menuClass2">{$lang->menu_class} <a href="#help_menuClass2" class="x_icon-question-sign" data-admin-toggle="#help_menuClass2">{$lang->help}</a></label>
|
||
<div id="help_menuClass2" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#help_menuClass2">×</button>
|
||
<p>{$lang->about_menu_class}</p>
|
||
</div>
|
||
<input id="menuClass2" class="_menuClass" type="text" />
|
||
</li>
|
||
<li>
|
||
<div class="multilingual x_input-append">
|
||
<label for="lang_menuDesc2">{$lang->menu_desc}</label>
|
||
<textarea id="menuDesc2" class="_menuDesc lang_code"></textarea>
|
||
</div>
|
||
</li>
|
||
<li class="typePage">
|
||
<label for="mid1">{$lang->menu_url} <a href="#help_menuId" class="x_icon-question-sign" data-admin-toggle="#mid1_help">{$lang->help}</a></label>
|
||
<div id="mid1_help" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#mid1_help">×</button>
|
||
<p>{$lang->about_menu_id} {$lang->about_new_menu_id}</p>
|
||
</div>
|
||
<input id="mid1" class="_mid" type="text" required placeholder="{$lang->skip_menu_id}" />
|
||
</li>
|
||
<li class="typeUrl">
|
||
<div class="x_tabbable">
|
||
<ul class="x_nav x_nav-tabs">
|
||
<li class="x_active"><a href="#add_linkUrl">{$lang->url_link}</a></li>
|
||
<li><a href="#add_linkMenu">{$lang->menu_link}</a></li>
|
||
</ul>
|
||
<div class="x_tab-content">
|
||
<div class="x_tab-pane x_active" id="add_linkUrl">
|
||
<input type="url" class="_linkUrl" required="required" title="{$lang->url_link}" placeholder="http://" />
|
||
</div>
|
||
<div class="x_tab-pane" id="add_linkMenu">
|
||
<input type="text" class="_linkMenuTitle" title="{$lang->menu_link}" disabled placeholder="{$lang->about_menu_link}" />
|
||
<input type="hidden" class="_linkMenuSrl" />
|
||
<div class="_menuSelector_menuTreeContainer clone">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<div class="x_btn-group">
|
||
<button type="button" class="x_btn x_btn-primary _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#add_menu">×</button>
|
||
</div>
|
||
<div class="col download" id="download" style="display:none">
|
||
<section>
|
||
<h1>{$lang->install_other_menu_types}</h1>
|
||
<div class="cnt">
|
||
<div class="list">
|
||
</div>
|
||
<div class="_pagination"></div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#download">×</button>
|
||
</div>
|
||
<div class="col url" id="default" style="display:none">
|
||
<fieldset>
|
||
<h1>{$lang->general_settings}</h1>
|
||
<div class="cnt">
|
||
<ul>
|
||
<li>
|
||
<div class="multilingual x_input-append">
|
||
<label for="lang_menuName">{$lang->menu_name}</label>
|
||
<input id="menuName" class="_menuName lang_code" type="text" required>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<label for="menuIcon">{$lang->menu_icon} <a href="#help_menuIcon" class="x_icon-question-sign" data-admin-toggle="#help_menuIcon">{$lang->help}</a></label>
|
||
<div id="help_menuIcon" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#help_menuIcon">×</button>
|
||
<p>{$lang->about_menu_icon}</p>
|
||
</div>
|
||
<input id="menuIcon" class="_menuIcon" type="text" />
|
||
</li>
|
||
<li>
|
||
<label for="menuClass">{$lang->menu_class} <a href="#help_menuClass" class="x_icon-question-sign" data-admin-toggle="#help_menuClass">{$lang->help}</a></label>
|
||
<div id="help_menuClass" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#help_menuClass">×</button>
|
||
<p>{$lang->about_menu_class}</p>
|
||
</div>
|
||
<input id="menuClass" class="_menuClass" type="text" />
|
||
</li>
|
||
<li>
|
||
<div class="multilingual x_input-append">
|
||
<label for="lang_menuDesc">{$lang->menu_desc}</label>
|
||
<textarea id="menuDesc" class="_menuDesc lang_code"></textarea>
|
||
</div>
|
||
</li>
|
||
<li style="padding:6px 0 0 0">
|
||
<label><input type="checkbox" class="_newWindow" title="{$lang->menu_open_window}"> {$lang->menu_open_window}</label>
|
||
</li>
|
||
<li style="padding:0 0 6px 0">
|
||
<label><input type="checkbox" class="_leaveUnfolded" title="{$lang->menu_expand}"> {$lang->menu_expand}</label>
|
||
</li>
|
||
<li class="typePage" style="border-top:1px solid #DDD">
|
||
<label for="lang_pageTitle">{$lang->browser_title} <a href="#help_menuName" class="x_icon-question-sign" data-admin-toggle="#help_menuName">{$lang->help}</a></label>
|
||
<div id="help_menuName" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#help_menuName">×</button>
|
||
<p>{$lang->about_browser_title}</p>
|
||
</div>
|
||
<input id="pageTitle" class="_browserTitle lang_code" type="text">
|
||
|
||
<label for="mid2">{$lang->menu_id} <a href="#help_menuId" class="x_icon-question-sign" data-admin-toggle="#mid2_help">{$lang->help}</a></label>
|
||
<div id="mid2_help" class="x_alert x_alert-info">
|
||
<button type="button" class="x_close" data-admin-hide="#mid2_help">×</button>
|
||
<p>{$lang->about_menu_id}</p>
|
||
</div>
|
||
<input type="text" id="mid2" class="_mid">
|
||
</li>
|
||
|
||
|
||
<li class="typeUrl">
|
||
<div class="x_tabbable">
|
||
<ul class="x_nav x_nav-tabs">
|
||
<li class="x_active"><a href="#fix_linkUrl">{$lang->url_link}</a></li>
|
||
<li><a href="#fix_linkMenu">{$lang->menu_link}</a></li>
|
||
</ul>
|
||
<div class="x_tab-content">
|
||
<div class="x_tab-pane x_active" id="fix_linkUrl">
|
||
<input type="text" class="_url_link" title="{$lang->url_link}" />
|
||
</div>
|
||
<div class="x_tab-pane" id="fix_linkMenu">
|
||
<input type="text" class="_linkMenuTitle" title="{$lang->menu_link}" disabled placeholder="{$lang->about_menu_link}" />
|
||
<input type="hidden" class="_linkMenuSrl" />
|
||
<div class="_menuSelector_menuTreeContainer clone">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<p id="menuTypeHelpInDefault" style="width:220px;min-width:100%">{$lang->about_menu_type_in_default}</p>
|
||
</li>
|
||
</ul>
|
||
<div class="btnBoth">
|
||
<button type="reset" class="x_btn x_pull-left" data-admin-hide="#default">{$lang->cmd_cancel}</button>
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#default">×</button>
|
||
</div>
|
||
<div class="col" id="imgbtn" style="display:none">
|
||
<fieldset>
|
||
<h1>{$lang->menu_img_btn}</h1>
|
||
<div class="cnt">
|
||
<p style="border-bottom:1px solid #ddd;width:220px;min-width:100%;padding-bottom:10px">{$lang->about_imgbtn}</p>
|
||
<form action="{\RX_BASEURL}" class="_btn_normal" target="submitTarget" method="post" enctype="multipart/form-data">
|
||
<input name="module" type="hidden" value="menu" />
|
||
<input name="act" type="hidden" value="procMenuAdminButtonUpload" />
|
||
<input name="menu_item_srl" type="hidden" value=""/>
|
||
<input name="xe_js_callback" type="hidden" value="top.onBtnImgUploaded"/>
|
||
<input name="isNormalDelete" type="hidden" value="Y"/>
|
||
<figure>
|
||
<figcaption>{$lang->menu_normal_btn}</figcaption>
|
||
<p class="noImg">{$lang->menu_no_img_btn}</p>
|
||
<img class="_thumbnail" src="../../../common/img/blank.gif" alt="{$lang->about_menu_normal_btn}">
|
||
</figure>
|
||
<div class="btnBoth">
|
||
<button type="submit" class="delete x_btn x_pull-left">{$lang->cmd_delete}</button>
|
||
<span class="fileBtn x_btn x_pull-right">
|
||
<span class="modify">{$lang->menu_change_btn}</span>
|
||
<span class="upload">{$lang->menu_upload_btn}</span>
|
||
<input type="file" title="{$lang->menu_change_btn}/{$lang->menu_upload_btn}" name="menu_normal_btn">
|
||
</span>
|
||
</div>
|
||
</form>
|
||
<form action="{\RX_BASEURL}" class="_btn_hover" target="submitTarget" method="post" enctype="multipart/form-data">
|
||
<input name="module" type="hidden" value="menu" />
|
||
<input name="act" type="hidden" value="procMenuAdminButtonUpload" />
|
||
<input name="menu_item_srl" type="hidden" value=""/>
|
||
<input name="xe_js_callback" type="hidden" value="top.onBtnImgUploaded"/>
|
||
<input name="isHoverDelete" type="hidden" value="Y"/>
|
||
<figure>
|
||
<figcaption>{$lang->menu_hover_btn}</figcaption>
|
||
<p class="noImg">{$lang->menu_no_img_btn}</p>
|
||
<img class="_thumbnail" src="../../../common/img/blank.gif" alt="{$lang->about_menu_hover_btn}">
|
||
</figure>
|
||
<div class="btnBoth">
|
||
<button type="submit" class="delete x_btn x_pull-left">{$lang->cmd_delete}</button>
|
||
<span class="fileBtn x_btn x_pull-right">
|
||
<span class="modify">{$lang->menu_change_btn}</span>
|
||
<span class="upload">{$lang->menu_upload_btn}</span>
|
||
<input type="file" title="{$lang->menu_change_btn}/{$lang->menu_upload_btn}" name="menu_hover_btn">
|
||
</span>
|
||
</div>
|
||
</form>
|
||
<form action="{\RX_BASEURL}" class="_btn_selected" target="submitTarget" method="post" enctype="multipart/form-data">
|
||
<input name="module" type="hidden" value="menu" />
|
||
<input name="act" type="hidden" value="procMenuAdminButtonUpload" />
|
||
<input name="menu_item_srl" type="hidden" value=""/>
|
||
<input name="xe_js_callback" type="hidden" value="top.onBtnImgUploaded"/>
|
||
<input name="isActiveDelete" type="hidden" value="Y"/>
|
||
<figure>
|
||
<figcaption>{$lang->menu_active_btn}</figcaption>
|
||
<p class="noImg">{$lang->menu_no_img_btn}</p>
|
||
<img class="_thumbnail" src="../../../common/img/blank.gif" alt="{$lang->about_menu_active_btn}">
|
||
</figure>
|
||
<div class="btnBoth">
|
||
<button type="submit" class="delete x_btn x_pull-left">{$lang->cmd_delete}</button>
|
||
<span class="fileBtn x_btn x_pull-right">
|
||
<span class="modify">{$lang->menu_change_btn}</span>
|
||
<span class="upload">{$lang->menu_upload_btn}</span>
|
||
<input type="file" title="{$lang->menu_change_btn}/{$lang->menu_upload_btn}" name="menu_active_btn">
|
||
</span>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#imgbtn">×</button>
|
||
</div>
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
<div class="col" id="design" style="display:none">
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
<div class="col" id="design">
|
||
<!--@end-->
|
||
<fieldset>
|
||
<h1 class="_item">{$lang->design}</h1>
|
||
<h1 class="_site">{$lang->menu_gnb_sub['siteDesign']}</h1>
|
||
<div class="cnt">
|
||
<form action="./" target="xe_preview" class="_preview_form" method="post">
|
||
<input type="hidden" name="skin_vars" value="{}"/>
|
||
<div class="x_tabbable">
|
||
<ul class="x_nav x_nav-tabs">
|
||
<li class="x_active"><a href="#pc">PC</a></li>
|
||
<li><a href="#mobile">{$lang->mobile}</a></li>
|
||
</ul>
|
||
<div class="x_tab-content">
|
||
<div class="x_tab-pane x_active" id="pc">
|
||
<div class="shadow">
|
||
<iframe name="_pc_preview_ifr" src=""></iframe><i class="mask"><span></span></i>
|
||
<input type="submit" class="x_icon-zoom-in x_icon-white _pc_preview_open" value="{$lang->view_zoom}" />
|
||
</div>
|
||
</div>
|
||
<div class="x_tab-pane" id="mobile">
|
||
<label class="mvOption"><input type="checkbox" name="use_mobile" value="Y"> {$lang->use_mobile_view}</label>
|
||
<div class="shadow">
|
||
<iframe name="_mobile_preview_ifr" src=""></iframe><i class="mask"><span></span></i>
|
||
<input type="submit" class="x_icon-zoom-in x_icon-white _mobile_preview_open" value="{$lang->view_zoom}" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
<ul class="nav _itemList">
|
||
<script id="tmpl_layoutItem" type="text/x-jquery-tmpl">
|
||
<li><a href="#layout" data-admin-show="#layout">{$lang->layout} [<span class="themeName _layoutName">${LayoutName}</span>] <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
</script>
|
||
|
||
<script id="tmpl_skinItem" type="text/x-jquery-tmpl">
|
||
<li><a href="#skin" data-admin-show="#skin" data-param='{ "moduleType" : "${ModuleType}"}'>${ModuleTypeTitle} [<span class="themeName _skinTitle">{{if SkinTitle}}${SkinTitle}{{else}}{$lang->no_skin}{{/if}}</span>] <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
</script>
|
||
</ul>
|
||
<div class="btnBoth siteDesignUI">
|
||
<button type="reset" class="x_btn x_pull-left _btn_cancel">{$lang->cmd_cancel}</button>
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _btn_save">
|
||
<span class="langDesktop">{$lang->desktop_settings}</span>
|
||
<span class="langMobile">{$lang->mobile_settings}</span>
|
||
{$lang->cmd_save}
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#design">×</button>
|
||
</div>
|
||
<div class="col theme" id="layout" style="display:none">
|
||
<form action="">
|
||
<h1>{$lang->layout}</h1>
|
||
<div class="cnt">
|
||
<label style="white-space:nowrap;cursor:pointer;width:100%">
|
||
{$lang->use_site_design}<input type="checkbox" class="_chkUseDefaultLayout switch" title="{$lang->use_site_default_layout}"><i style="float:right"></i>
|
||
</label>
|
||
<div class="list">
|
||
<ul class="_layout_list">
|
||
<script id="tmpl_layout_list_item_no_layout" type="text/x-jquery-tmpl">
|
||
<li class="${Selected} _layoutItem">
|
||
<label>
|
||
<input type="radio" name="layout_item" title="{$lang->no_use_layout}"><i></i> {$lang->no_use_layout}
|
||
</label>
|
||
</li>
|
||
</script>
|
||
<script id="tmpl_layout_list_item_add_new" type="text/x-jquery-tmpl">
|
||
<li data-admin-show="#downloadLayout">
|
||
<label><i class="x_icon-plus-sign"></i> {$lang->install_other_layouts}</label>
|
||
<button type="button" class="item _btnScreenshot">
|
||
<img src="../../../modules/layout/tpl/img/download.png" class="_thumbnail" alt="{$lang->install_other_layouts}">
|
||
</button>
|
||
</li>
|
||
</script>
|
||
<script id="tmpl_layout_list_item" type="text/x-jquery-tmpl">
|
||
<li class="${Selected} _layoutItem">
|
||
<label><input type="radio" name="layout_item" title="${Title}"> ${Title}</label>
|
||
<button type="button" class="item _btnScreenshot" title="{$lang->about_apply_layout}">
|
||
<img src="${ScreenShotURL}" class="_thumbnail" alt="${Title}">
|
||
</button>
|
||
<ul class="_edit_menu">
|
||
<li><a href="#layoutSetup" data-admin-show="#layoutSetup" data-param='{ "sLayoutSrl":"${LayoutSrl}"}'>{$lang->full_settings} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><button type="button" class="_duplicateLayout">{$lang->make_copy}</button></li>
|
||
<li><button type="button" class="_deleteLayout">{$lang->cmd_delete}</button></li>
|
||
</ul>
|
||
</li>
|
||
</script>
|
||
</ul>
|
||
<i class="mask"></i>
|
||
</div>
|
||
<div class="x_btn-group siteMapUI">
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_save}</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
<button type="button" class="x_close" data-admin-hide="#layout">×</button>
|
||
</div>
|
||
<div class="col layoutSetup" id="layoutSetup" style="display:none">
|
||
<section>
|
||
<h1>{$lang->layout_settings}</h1>
|
||
<div class="cnt">
|
||
<div class="_contents"></div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#layoutSetup">×</button>
|
||
</div>
|
||
<div class="col download" id="downloadLayout" style="display:none">
|
||
<section>
|
||
<h1>{$lang->install_other_layouts}</h1>
|
||
<div class="cnt">
|
||
<div class="list">
|
||
</div>
|
||
<div style="margin-top:-10px" class="x_clearfix">
|
||
<div class="_pagination"></div>
|
||
|
||
</div>
|
||
<script id="tmpl_pagination" type="text/x-jquery-tmpl">
|
||
<div class="x_pagination" style="float:left">
|
||
<ul class="_list">
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="search x_input-append x_pull-right">
|
||
<input type="search" value="" title="Search" name="search_keyword">
|
||
<button class="x_btn x_btn-inverse _search">{$lang->cmd_search}</button>
|
||
<a class="x_btn _cancel" href="#">{$lang->cmd_cancel}</a>
|
||
</div>
|
||
</script>
|
||
<script id="tmpl_pagination_list" type="text/x-jquery-tmpl">
|
||
<li class='${ActiveClass}'><a href="#" class="_toPage" data-param='{ "page": "${Page}"}' title='${Page}' onclick="return false">${PageText}</a></li>
|
||
</script>
|
||
<script id="tmpl_pagination_jump" type="text/x-jquery-tmpl">
|
||
<li>
|
||
<a href="#goTo" data-admin-toggle="#goTo" title="${GoText}" onclick="return false">…</a>
|
||
<span id="goTo" class="x_input-append">
|
||
<input type="number" min="1" max="${LastPage}" required name="page" title="${GoText}" />
|
||
<button type="input" class="x_add-on _jumpTo">Go</button>
|
||
</span>
|
||
</li>
|
||
</script>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#downloadLayout">×</button>
|
||
</div>
|
||
|
||
<div class="col theme" id="skin" style="display:none">
|
||
<form action="">
|
||
<h1>{$lang->skin}</h1>
|
||
<div class="cnt">
|
||
<label style="cursor:pointer">
|
||
{$lang->use_site_design}
|
||
<input type="checkbox" class="_chkUseDefault switch" title="{$lang->use_site_default_skin}">
|
||
<i style="float:right"></i>
|
||
</label>
|
||
</label>
|
||
<div class="list">
|
||
<ul class="_list">
|
||
|
||
<script id="tmpl_skin_list_item_no_skin" type="text/x-jquery-tmpl">
|
||
<li class="_item ${Selected}">
|
||
<label>
|
||
<input type="radio" name="skin_item" title="스킨 사용 안 함"> {lang('menu.no_use_layout')}
|
||
</label>
|
||
</li>
|
||
</script>
|
||
|
||
<script id="tmpl_skin_list_item_add_new" type="text/x-jquery-tmpl">
|
||
<li data-admin-show="#downloadSkin">
|
||
<label><i class="x_icon-plus-sign"></i> {$lang->install_other_skins}</label>
|
||
<button type="button" class="item _btnScreenshot">
|
||
<img src="../../../modules/layout/tpl/img/download.png" class="_thumbnail" alt="{$lang->install_other_skins}">
|
||
</button>
|
||
</li>
|
||
</script>
|
||
|
||
<script id="tmpl_skin_list_item" type="text/x-jquery-tmpl">
|
||
<li class="_item ${Selected}">
|
||
<label><input type="radio" name="skin_item" title="${Title}"> ${Title}</label>
|
||
<button type="button" class="item _btnScreenshot" title="{$lang->about_apply_skin}">
|
||
<img src="${ScreenShotURL}">
|
||
</button>
|
||
<!--
|
||
<ul>
|
||
<li><a href="#skinSetup" data-admin-show="#skinSetup" data-param='{ "sSkinName":"${SkinName}"}'>{$lang->cmd_setup} <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
</ul>
|
||
-->
|
||
</li>
|
||
</script>
|
||
</ul>
|
||
<i class="mask"></i>
|
||
<!--
|
||
<a href="#downloadSkin" data-admin-show="#downloadSkin" class="x_btn x_btn-link" style="position:absolute;right:5px;bottom:7px;color:#000"><i class="x_icon-plus-sign"></i> {$lang->install_other_skins}</a>
|
||
-->
|
||
</div>
|
||
<div class="x_btn-group siteMapUI">
|
||
<button type="button" class="x_btn x_btn-primary x_pull-right _save">{$lang->cmd_save}</button>
|
||
</div>
|
||
</div>
|
||
</form>
|
||
<button type="button" class="x_close" data-admin-hide="#skin">×</button>
|
||
</div>
|
||
<div class="col skinSetup" id="skinSetup" style="display:none">
|
||
<section>
|
||
<h1>{lang('menu.skin_settings')}</h1>
|
||
<div class="cnt">
|
||
<div class="_contents"></div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#skinSetup">×</button>
|
||
</div>
|
||
<div class="col download" id="downloadSkin" style="display:none">
|
||
<section>
|
||
<h1>{$lang->install_other_skins}</h1>
|
||
<div class="cnt">
|
||
<div class="list">
|
||
|
||
<script id="tmpl_noDownloadableItem" type="text/x-jquery-tmpl">
|
||
<p style="margin:15px 0">{$lang->no_downloadable_item}</p>
|
||
</script>
|
||
|
||
<script id="tmpl_downloadableItem" type="text/x-jquery-tmpl">
|
||
|
||
<div class="item ${IsInstalled} ${IsUpToDate}">
|
||
<img src="${ScreenShotURL}" alt="">
|
||
<h2><a target="_blank" href="${URL}">${MenuType}</a></h2>
|
||
<p>${MenuTypeDesc}</p>
|
||
<p><i class="starRating score${Score}"><i></i></i> <b class="x_badge">${Score}/${TotalVotes}</b> {$lang->package_update}: <time title="${LastUpdatedWithTime}">${LastUpdated}</time> <i>|</i> {$lang->package_downloaded_count}: ${TotalDownloads}</p>
|
||
<div class="_install">
|
||
<button type="button" class="x_icon-download-alt x_icon-white _install_this">{$lang->install}</button>
|
||
</div>
|
||
<div class="_already_installed">
|
||
<div class="_already_up_to_date">
|
||
<button type="button" class="done"><i class="x_icon-ok-sign x_icon-white"></i> {$lang->installed}</button>
|
||
</div>
|
||
<div class="_need_to_update">
|
||
<button type="button" class="update _install_this"><i class="x_icon-refresh x_icon-white"></i> {$lang->update}</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</script>
|
||
|
||
</div>
|
||
<div class="_pagination" style="float:left"></div>
|
||
</div>
|
||
</section>
|
||
<button type="button" class="x_close" data-admin-hide="#downloadSkin">×</button>
|
||
</div>
|
||
<div class="col" id="auth" style="display:none">
|
||
<fieldset>
|
||
<h1>{$lang->grant}</h1>
|
||
<div class="cnt">
|
||
<ul class="_list">
|
||
<script id="tmpl_permItem" type="text/x-jquery-tmpl">
|
||
<li>
|
||
<label for="auth${PermId}">${PermTitle}</label>
|
||
<select id="auth${PermId}">
|
||
<option class="_group_all" value="0">{$lang->grant_to_all}</option>
|
||
<option class="_group_loggedin" value="-1">{$lang->grant_to_login_user}</option>
|
||
<option class="_group_not_loggedin" value="-4">{$lang->grant_to_non_login_user}</option>
|
||
<option class="_group_manager" value="-3">{$lang->grant_to_admin}</option>
|
||
<option class="_group_selected" value="-10">{$lang->grant_to_group}</option>
|
||
</select>
|
||
<div class="selected x_hide _groups _groups_${PermId}">
|
||
</div>
|
||
</li>
|
||
</script>
|
||
<script id="tmpl_perm_groupItem" type="text/x-jquery-tmpl">
|
||
<label><input type="checkbox" value="${ID}" title="${Title}"> ${Title}</label>
|
||
</script>
|
||
</ul>
|
||
<div class="x_btn-group">
|
||
<button type="button" class="x_btn x_btn-primary _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#auth">×</button>
|
||
</div>
|
||
<!--상세설정-->
|
||
<div class="col" id="fullSetup" style="display:none">
|
||
<fieldset>
|
||
<h1>{$lang->full_settings}</h1>
|
||
<div class="cnt _setupHTML">
|
||
</div>
|
||
<div class="x_btn-group">
|
||
<button type="button" class="x_btn x_btn-primary _save">{$lang->cmd_confirm}</button>
|
||
</div>
|
||
</fieldset>
|
||
<button type="button" class="x_close" data-admin-hide="#fullSetup">×</button>
|
||
</div>
|
||
<div class="col" id="html" style="display:none">
|
||
<!--HTML/CSS-->
|
||
<button type="button" class="x_close" data-admin-hide="#html">×</button>
|
||
</div>
|
||
</div>
|
||
|
||
<iframe name="submitTarget" src="" style="position:absolute; top:-10000px; left:-10000px; width:1025px;height:769px"></iframe>
|
||
|
||
<script>
|
||
xe.lang.shortcut = '{$lang->shortcut}';
|
||
xe.lang.msg_no_root = xe.msg_no_root = "{$lang->msg_no_root}";
|
||
xe.lang.msg_no_shortcut = xe.msg_no_shortcut = "{$lang->msg_no_shortcut}";
|
||
xe.lang.msg_target_is_sub_of_origin = '{$lang->msg_target_is_sub_of_origin}';
|
||
xe.lang.msg_url_is_required = '{$lang->msg_url_is_required}';
|
||
xe.lang.confirm_sitemap_delete = '{$lang->confirm_sitemap_delete}';
|
||
xe.lang.confirm_menu_delete = '{$lang->confirm_menu_delete}';
|
||
xe.lang.confirm_menu_delete_desc = '{$lang->confirm_menu_delete_desc}';
|
||
xe.lang.confirm_delete_not_contents = '{$lang->confirm_delete_not_contents}';
|
||
xe.lang.confirm_delete_all_contents = '{$lang->confirm_delete_all_contents}';
|
||
xe.lang.confirm_shortcut_delete = '{$lang->confirm_shortcut_delete}';
|
||
xe.lang.confirm_shortcut_desc = '{$lang->confirm_shortcut_desc}';
|
||
xe.lang.confirm_delete_all_item = '{$lang->confirm_delete_all_item}';
|
||
xe.lang.confirm_delete_all_sub_items_title = '{$lang->confirm_delete_all_sub_items_title}';
|
||
xe.lang.confirm_delete_all_sub_items = '{$lang->confirm_delete_all_sub_items}';
|
||
xe.lang.target_of_view_menu = '{$lang->target_of_view_menu}';
|
||
xe.lang.success_saved = '{$lang->success_saved}';
|
||
xe.lang.first_page = '{$lang->first_page}';
|
||
xe.lang.last_page = '{$lang->last_page}';
|
||
xe.lang.cmd_go_to_page = '{$lang->cmd_go_to_page}';
|
||
xe.lang.input_new_layout_name = '{$lang->input_new_layout_name}';
|
||
xe.lang.skip_new_layout_name = '{$lang->skip_new_layout_name}';
|
||
xe.lang.confirm_delete = '{$lang->confirm_delete}';
|
||
xe.lang.need_to_ftp_setup = '{$lang->need_to_ftp_setup}';
|
||
xe.lang.go_to_ftp_setup = '{$lang->go_to_ftp_setup}';
|
||
xe.lang.installation_completed = '{$lang->installation_completed}';
|
||
xe.lang.go_to_site_design_setup = '{$lang->go_to_site_design_setup}';
|
||
xe.lang.how_to_modify_menu = '{$lang->how_to_modify_menu}';
|
||
xe.lang.can_drag_menu = '{$lang->can_drag_menu}';
|
||
xe.lang.img_uploaded = '{$lang->img_uploaded}';
|
||
xe.lang.img_deleted = '{$lang->img_deleted}';
|
||
xe.lang.no_use_layout = '{$lang->no_use_layout}';
|
||
xe.lang.shortcut_desc = '{$lang->shortcut_desc}';
|
||
xe.lang.msg_cannot_delete_homemenu = '{$lang->msg_cannot_delete_homemenu}';
|
||
xe.lang.set_as_homepage = '{$lang->set_as_homepage}';
|
||
xe.lang.has_been_set_as_homepage = '{$lang->has_been_set_as_homepage}';
|
||
xe.lang.need_ftp_password = '{$lang->need_ftp_password}';
|
||
xe.lang.need_ftp_password_title = '{$lang->need_ftp_password_title}';
|
||
xe.lang.need_core_update = '{$lang->need_core_update}';
|
||
xe.lang.need_core_update_continue = '{$lang->need_core_update_continue}';
|
||
xe.lang.password = '{$lang->password}';
|
||
xe.lang.not_found_module = '{$lang->not_found_module}';
|
||
</script>
|
||
|
||
<!--[if IE 7]>
|
||
<script>
|
||
jQuery(function($){
|
||
// IE .col width bug fix
|
||
$('.col').each(function(){
|
||
var $this = $(this);
|
||
setTimeout(function(){
|
||
var childW = $this.children().width();
|
||
$this.width(220);
|
||
},0);
|
||
});
|
||
});
|
||
</script>
|
||
<![endif]-->
|
||
<script>
|
||
//<![CDATA[
|
||
/*
|
||
시작 모듈 지정 module_srl이 아닌 page_srl로
|
||
메뉴 복사 API에서 menu_srl 제거
|
||
메뉴 타입 노출
|
||
복사한 메뉴 삭제되면 붙여넣기 비활성화
|
||
*/
|
||
jQuery._xeAdminVar = {
|
||
htLayoutName : {},
|
||
htMLayoutName : {}
|
||
};
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
function showMenuSelector($container, sSelectedModule){
|
||
var $ = jQuery;
|
||
var aMenuList = $._xeAdminVar.aMenuList;
|
||
|
||
$container.html(createTreeMarkup(aMenuList, 0, "menuSelector_menuTree", "menuSelector_menuTreeNode"));
|
||
|
||
var htInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
// disable sitemap labels and shortcuts.
|
||
$container.find('._nodeType_1, ._nodeType_3').parent('li').addClass('x_disabled');
|
||
|
||
if(sSelectedModule){
|
||
$container.find('._menu_url_'+sSelectedModule).click();
|
||
}
|
||
}
|
||
|
||
function onSiteMapReceived(htData){
|
||
var $ = jQuery;
|
||
var aMenuList = htData.menuList;
|
||
|
||
$._xeAdminVar.aMenuList = aMenuList;
|
||
|
||
$("#siteMapTree").html(createTreeMarkup(aMenuList, 0));
|
||
|
||
if($._xeAdminVar.sCopySourceMenuSrl){
|
||
$('._edit_paste').attr('disabled', 'disabled');
|
||
$('#siteMapTree ._isCut').removeClass('_isCut');
|
||
|
||
$._xeAdminVar.sCopySourceMenuSrl = null;
|
||
$._xeAdminVar.bCut = false;
|
||
}
|
||
|
||
var sInitiallyOpen = [];
|
||
$.jstree.defaults.ui.select_limit = 1;
|
||
|
||
$("#siteMapTree")
|
||
.jstree({
|
||
// the `plugins` array allows you to configure the active plugins on this instance
|
||
"plugins" : ["themes","html_data","ui","crrm","dnd"],
|
||
//"themes","json_data","ui","crrm","cookies","dnd","search","types","hotkeys","contextmenu"
|
||
// each plugin you have included can have its own config object
|
||
|
||
"crrm" : {
|
||
"move" : {
|
||
"check_move" : function (m) {
|
||
var p = this._get_parent(m.o);
|
||
|
||
// root is not draggable
|
||
if(p === -1) return false;
|
||
|
||
// a menu cann't be dragged to a root position
|
||
p = this._get_parent(m.np);
|
||
if(!p) return false;
|
||
|
||
return true;
|
||
}
|
||
}
|
||
},
|
||
|
||
"core" : { }
|
||
//"core" : { "initially_open" : [ "nhtml_1" ] }
|
||
// it makes sense to configure a plugin only if overriding the defaults
|
||
})
|
||
.bind("loaded.jstree", function (event, data) {
|
||
//data.inst.open_all();
|
||
data.inst.get_container_ul().find("li.jstree-closed").each(function () {
|
||
if(issetJSTreeOpenIds(this.id) == true){
|
||
$(this).removeClass("jstree-closed").addClass("jstree-open");
|
||
}
|
||
});
|
||
|
||
var sRenameId = $._xeAdminVar.sRenameOnload;
|
||
$._xeAdminVar.sRenameOnload = null;
|
||
|
||
var sSelectOnload = $._xeAdminVar.sSelectOnload;
|
||
$._xeAdminVar.sSelectOnload = null;
|
||
|
||
if(sRenameId){
|
||
//console.log('renaming', sRenameId);
|
||
$("#siteMapTree").jstree("rename", $("#menu"+sRenameId));
|
||
$("#menu"+sRenameId)[0].scrollIntoView(true);
|
||
}
|
||
|
||
if(sSelectOnload){
|
||
//console.log('selecting', sSelectOnload);
|
||
var el = $("#menu"+sSelectOnload)[0];
|
||
|
||
if(el){
|
||
$("#siteMapTree").jstree("select_node", $(el));
|
||
el.scrollIntoView(true);
|
||
}
|
||
}
|
||
|
||
})
|
||
.bind("open_node.jstree", function(event, data){
|
||
setJSTreeOpenIds();
|
||
})
|
||
.bind("close_node.jstree", function(event, data){
|
||
setJSTreeOpenIds();
|
||
})
|
||
.bind("rename.jstree", function(event, data){
|
||
$("#siteMapTree").removeClass("_node_renaming");
|
||
})
|
||
.bind("rename_node.jstree", function(event, data){
|
||
var sTitle = data.args[1];
|
||
var htOldInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
if(htOldInfo.sText === sTitle) return;
|
||
|
||
var sMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
|
||
renameSitemap(sMenuSrl, sTitle);
|
||
})
|
||
.bind("create_node.jstree", function (event, data) {
|
||
|
||
})
|
||
.bind("select_node.jstree", function(event, data){
|
||
// move scroll
|
||
var ul = $($("#siteMapTree").jstree("get_container")[0]);
|
||
|
||
$("#siteMapTree input").blur();
|
||
//console.log($("#siteMapTree input"));
|
||
|
||
var sSelectedMenuSrl = data.rslt.obj.attr("id").replace("menu", "");
|
||
$._xeAdminVar.sSelectedMenuSrl = sSelectedMenuSrl;
|
||
|
||
showProp(sSelectedMenuSrl);
|
||
|
||
data.inst.open_node(data.rslt.obj);
|
||
})
|
||
.bind("move_node.jstree", function(event, data){
|
||
//console.log(event, data);
|
||
|
||
|
||
/*
|
||
._get_move ()
|
||
Returns the lastly prepared move. The returned object contains:
|
||
.o - the node being moved
|
||
.r - the reference node in the move
|
||
.ot - the origin tree instance
|
||
.rt - the reference tree instance
|
||
.p - the position to move to (may be a string - "last", "first", etc)
|
||
.cp - the calculated position to move to (always a number)
|
||
.np - the new parent
|
||
.oc - the original node (if there was a copy)
|
||
.cy - boolen indicating if the move was a copy
|
||
.cr - same as np, but if a root node is created this is -1
|
||
.op - the former parent
|
||
.or - the node that was previously in the position of the moved node
|
||
*/
|
||
var aMoveInfo = data.args[0];
|
||
var aSource = aMoveInfo.o;
|
||
var aTargetPosRef = aMoveInfo.r;
|
||
var sTargetPos = aMoveInfo.p;
|
||
var aNewParent = aMoveInfo.np;
|
||
|
||
//console.log(aSource, aTargetPosRef, sTargetPos, aNewParent);
|
||
//console.log(aSource[0], aTargetPosRef[0], sTargetPos, aNewParent[0]);
|
||
|
||
var aNode, htParentInfo, htTargetInfo, htData, sMenuSrl, sTargetSrl, sParentSrl, nIdx;
|
||
//htData = $.parseJSON($(htSource).attr('data-param');
|
||
//console.log(sTargetPos);
|
||
sMenuSrl = aSource[0].id.replace("menu", "");
|
||
sParentSrl = aNewParent[0].id.replace("menu", "");
|
||
sTargetSrl = aTargetPosRef[0].id.replace("menu", "");
|
||
/*
|
||
console.log(123, aTargetPosRef);
|
||
console.log(sTargetSrl);
|
||
console.log(htNodeInfo);
|
||
*/
|
||
switch(sTargetPos){
|
||
case "after":
|
||
// use the values as-is
|
||
break;
|
||
|
||
case "before":
|
||
htTargetInfo = htNodeInfo[sTargetSrl];
|
||
htParentInfo = htNodeInfo[htTargetInfo.sParentSrl];
|
||
|
||
//console.log(htParentInfo);
|
||
|
||
aNode = htParentInfo.aNode;
|
||
|
||
for(var i=0, nLen=aNode.length; i<nLen; i++){
|
||
//console.log(aNode[i].sText, aNode[i].sNodeSrl, "->", sTargetSrl);
|
||
if(aNode[i].sNodeSrl == sTargetSrl){
|
||
//console.log('found');
|
||
break;
|
||
}
|
||
}
|
||
//console.log(999, i);
|
||
|
||
if(i === 0){
|
||
sTargetSrl = 0;
|
||
}else{
|
||
sTargetSrl = aNode[i - 1].sNodeSrl;
|
||
}
|
||
break;
|
||
|
||
case "first":
|
||
sTargetSrl = 0;
|
||
break;
|
||
|
||
case "last":
|
||
htParentInfo = htNodeInfo[sParentSrl];
|
||
//console.log(222, htParentInfo, sParentSrl);
|
||
|
||
aNode = htParentInfo.aNode;
|
||
if(aNode.length == 0){
|
||
sTargetSrl = 0;
|
||
}else{
|
||
sTargetSrl = aNode[aNode.length - 1].sNodeSrl;
|
||
}
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
var params = {};
|
||
|
||
params['mode'] = 'move';
|
||
|
||
// 위치를 이동 할 메뉴의 srl
|
||
params['target_srl'] = sMenuSrl;
|
||
|
||
// 어느 부모 밑으로 이동 할지
|
||
params['parent_srl'] = sParentSrl;
|
||
|
||
// parent_srl 하위의 어느 노드 뒤에 삽입 할지.
|
||
// 0: parent_srl 바로 밑에.
|
||
// 다른 값: 해당 srl을 가진 노드 밑에
|
||
params['source_srl'] = sTargetSrl;
|
||
//exec_xml("menu","procMenuAdminMoveItem", params, completeTmp);
|
||
|
||
$.exec_json("menu.procMenuAdminMoveItem", params, function(htData){
|
||
// select the newly created menu
|
||
//$._xeAdminVar.sSelectOnload = htData.menu_item_srl;
|
||
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = sMenuSrl;
|
||
loadSiteMap();
|
||
});
|
||
});
|
||
|
||
$('#site_map').nextAll().hide();
|
||
}
|
||
|
||
function setJSTreeOpenIds(){
|
||
var jstree_open_srls = [];
|
||
jQuery("#siteMapTree").find("li.jstree-open").each(function() {
|
||
jstree_open_srls.push(this.id);
|
||
});
|
||
|
||
var cookieValue = jstree_open_srls.join(',');
|
||
if(!cookieValue) {
|
||
XE.cookie.remove('__xe_admin_jstree_open_srls');
|
||
} else {
|
||
XE.cookie.set('__xe_admin_jstree_open_srls', cookieValue);
|
||
}
|
||
}
|
||
|
||
function issetJSTreeOpenIds(id) {
|
||
var jstree_open_srls = getCookie('__xe_admin_jstree_open_srls') || '';
|
||
|
||
if(!jstree_open_srls) {
|
||
return false;
|
||
}
|
||
|
||
return (jstree_open_srls.split(',').indexOf(id) === -1) ? false : true;
|
||
}
|
||
|
||
var htNodeInfo = {};
|
||
// return html
|
||
function createTreeMarkup(aNode, sParentSrl, sMenuTree, sMenuTreeNode){
|
||
sMenuTree = sMenuTree || "menuTree";
|
||
sMenuTreeNode = sMenuTreeNode || "menuTreeNode";
|
||
|
||
var $ = jQuery;
|
||
|
||
if(aNode.length == 0){
|
||
return "";
|
||
}
|
||
|
||
var sActiveBtn, sNormalBtn, sHoverBtn, sExpand, sLink, aSubNodes, sNodeSrl, sOpenWindow, sParentSrl, nSelected, sText, sURL, sIsStartModule, aSubNode, sModuleType;
|
||
|
||
// 1: Sitemap node, 2: Menu node
|
||
var nNodeType;
|
||
|
||
var sResult = "";
|
||
var sTargetPanel;
|
||
for(var i=0, nLen=aNode.length; i<nLen; i++){
|
||
aNode[i].sParentSrl = sParentSrl;
|
||
|
||
// Only sitemap node has menuSrl
|
||
if(aNode[i].menuSrl){
|
||
nNodeType = 1;
|
||
}else{
|
||
nNodeType = 2;
|
||
}
|
||
|
||
sURL = "";
|
||
switch(nNodeType){
|
||
/*
|
||
list: Array[1]
|
||
menuSrl: "59"
|
||
title: "welcome_menu"
|
||
*/
|
||
case 1:
|
||
sText = aNode[i].title;
|
||
sNodeSrl = aNode[i].menuSrl;
|
||
|
||
aSubNode = aNode[i].menuItems.list;
|
||
|
||
sTargetPanel = "#propertiesRoot";
|
||
break;
|
||
|
||
/*
|
||
active_btn: ""
|
||
expand: "N"
|
||
hover_btn: ""
|
||
href: ""
|
||
link: "menu1"
|
||
list: Array[1]
|
||
node_srl: "60"
|
||
normal_btn: ""
|
||
open_window: "N"
|
||
parent_srl: "0"
|
||
selected: 0
|
||
text: "menu1"
|
||
url: ""
|
||
is_start_module: 1 or true
|
||
*/
|
||
case 2:
|
||
sText = aNode[i].text;
|
||
sLink = aNode[i].link;
|
||
sURL = aNode[i].url;
|
||
sNodeSrl = aNode[i].node_srl;
|
||
//sParentSrl = aNode[i].parent_srl;
|
||
|
||
sExpand = aNode[i].expand;
|
||
sOpenWindow = aNode[i].open_window;
|
||
|
||
nSelected = aNode[i].selected;
|
||
|
||
sActiveBtn = aNode[i].active_btn;
|
||
sNormalBtn = aNode[i].normal_btn;
|
||
sHoverBtn = aNode[i].hover_btn;
|
||
|
||
sIsStartModule = aNode[i].is_start_module;
|
||
|
||
aSubNode = aNode[i].list;
|
||
|
||
sModuleType = aNode[i].module_type;
|
||
sModule = aNode[i].module;
|
||
|
||
sTargetPanel = "#properties";
|
||
|
||
if(aNode[i].is_shortcut === "Y"){
|
||
sModuleType = "_SHORTCUT";
|
||
sURL = "";
|
||
aNode[i].bShortCut = true;
|
||
}else{
|
||
aNode[i].bShortCut = false;
|
||
}
|
||
|
||
break;
|
||
|
||
default:
|
||
}
|
||
|
||
htNodeInfo[sNodeSrl] = aNode[i];
|
||
htNodeInfo[sNodeSrl].aNode = aSubNode || [];
|
||
|
||
htNodeInfo[sNodeSrl].nNodeType = nNodeType;
|
||
htNodeInfo[sNodeSrl].sNodeSrl = sNodeSrl;
|
||
htNodeInfo[sNodeSrl].sText = sText;
|
||
htNodeInfo[sNodeSrl].sMenuNameKey = htNodeInfo[sNodeSrl].menu_name_key;
|
||
|
||
htNodeInfo[sNodeSrl].sModuleType = sModuleType;
|
||
|
||
sSubTree = "";
|
||
if(aSubNode && aSubNode.length>0){
|
||
//sSubTree = createTreeMarkup(aSubNode, aNode[i], sMenuTree, sMenuTreeNode);
|
||
sSubTree = createTreeMarkup(aSubNode, sNodeSrl, sMenuTree, sMenuTreeNode);
|
||
}
|
||
/*
|
||
if(sMenuType === "shortcut"){
|
||
sText = sText + " ${s}";
|
||
}
|
||
*/
|
||
var sTextWithIcons = sText;
|
||
if(sIsStartModule){
|
||
sTextWithIcons += " ${h}";
|
||
}
|
||
if(nNodeType == 2 && aNode[i].is_restricted){
|
||
sTextWithIcons += " ${r}";
|
||
}
|
||
if(htNodeInfo[sNodeSrl].sModuleType === "_SHORTCUT"){
|
||
sTextWithIcons += " ${s}";
|
||
nNodeType = 3;
|
||
}
|
||
|
||
sResult += $.tmpl(sMenuTreeNode, {
|
||
MenuTitleWithHome: sTextWithIcons,
|
||
MenuTitle: sText,
|
||
eMenuTitle: sText.replace(/\"/g, "\\\""),
|
||
MenuId: sNodeSrl,
|
||
MenuUrl: sURL,
|
||
NodeType: nNodeType,
|
||
SubTree: sSubTree,
|
||
Target: sTargetPanel
|
||
}).get()[0].outerHTML
|
||
.replace("${h}", "<i class='x_icon-home' title='" + aNode[i].is_start_module_of + "'>[HOME]</i>")
|
||
.replace("${r}", "<i class='xi-lock' title='Restricted'></i>")
|
||
.replace("${s}", "<i class='xi-link' title='Shortcut'></i>");
|
||
}
|
||
|
||
return $.tmpl( sMenuTree, {Nodes:sResult} ).get()[0].outerHTML;
|
||
}
|
||
|
||
function renameSitemap(sMenuSrl, sTitle){
|
||
var $ = jQuery;
|
||
|
||
var params = {};
|
||
params.title = sTitle;
|
||
params.menu_srl = sMenuSrl;
|
||
|
||
$.exec_json("menu.procMenuAdminUpdate", params, function(htData){
|
||
$._xeAdminVar.sSelectOnload = sMenuSrl;
|
||
loadSiteMap();
|
||
return;
|
||
});
|
||
}
|
||
|
||
function showProp(sMenuId){
|
||
var $ = jQuery;
|
||
$._htMarkupActionParam = {sMenuId: sMenuId};
|
||
|
||
if(htNodeInfo[sMenuId].nNodeType === 1){
|
||
$("#propertiesRoot").show(null, null, null, {bOpeningProp: true});
|
||
}else{
|
||
$("#properties").show(null, null, null, {bOpeningProp: true});
|
||
}
|
||
}
|
||
|
||
function loadSiteMap(){
|
||
var $ = jQuery;
|
||
|
||
var params = {};
|
||
var response_tags = new Array('menuList');
|
||
params['menu_srl'] = 0;
|
||
$.exec_json("menu.getMenuAdminSiteMap", params, onSiteMapReceived);
|
||
}
|
||
<!--@end-->
|
||
|
||
function clearInputs($elm){
|
||
var $ = jQuery;
|
||
|
||
$elm.find('input').val("");
|
||
}
|
||
|
||
function setItemTypes(htTypes){
|
||
var $ = jQuery;
|
||
$.test=htTypes;
|
||
$._xeAdminVar.htItemTypes = htTypes || {};
|
||
|
||
$._xeAdminVar.htItemTypes._SHORTCUT = {
|
||
title: xe.lang.shortcut,
|
||
moduleName:'',
|
||
description : xe.lang.shortcut_desc
|
||
}
|
||
//console.log($._xeAdminVar.htItemTypes);
|
||
}
|
||
|
||
function setAllModules(htModules){
|
||
var $ = jQuery;
|
||
$.test = htModules;
|
||
$._xeAdminVar.htAllModules = htModules || {};
|
||
|
||
$._xeAdminVar.htAllModules._SHORTCUT = {
|
||
title: xe.lang.shortcut,
|
||
moduleName:'',
|
||
description : xe.lang.shortcut_desc
|
||
}
|
||
}
|
||
|
||
jQuery(function($){
|
||
$.fn.outerHTML = function(){
|
||
// IE, Chrome & Safari will comply with the non-standard outerHTML, all others (FF) will have a fall-back for cloning
|
||
return (!this.length) ? this : (this[0].outerHTML || (
|
||
function(el){
|
||
var div = document.createElement('div');
|
||
div.appendChild(el.cloneNode(true));
|
||
var contents = div.innerHTML;
|
||
div = null;
|
||
return contents;
|
||
})(this[0]));
|
||
}
|
||
|
||
|
||
$.fn.prevUntilAnd = function(){
|
||
var $result = $.fn.prevUntil.apply(this, arguments);
|
||
var $match = ($result.length>0?$result.last():$(this)).prev();
|
||
|
||
if($match.length>0) $.merge($result, $match);
|
||
|
||
return $result;
|
||
}
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
$( "#tmpl_menuTree" ).template( "menuTree" );
|
||
$( "#tmpl_menuTreeNode" ).template( "menuTreeNode" );
|
||
|
||
$( "#tmpl_menuSelector_menuTree" ).template( "menuSelector_menuTree" );
|
||
$( "#tmpl_menuSelector_menuTreeNode" ).template( "menuSelector_menuTreeNode" );
|
||
|
||
loadSiteMap();
|
||
|
||
$.exec_json("menu.getMenuAdminInstalledMenuType", {}, function(htData){
|
||
setItemTypes(htData.menu_types);
|
||
setAllModules(htData.all_modules);
|
||
});
|
||
|
||
var find_ids = [];
|
||
var find_index = 0;
|
||
$("#menu_find").submit(function(){
|
||
find_ids = [];
|
||
find_index = 0;
|
||
$('#menu_find').find('[type="button"]').css("visibility", "hidden");
|
||
|
||
var keyword = $('[name="keyword"]').val();
|
||
$("#siteMapTree").find("li").each(function(){
|
||
var pattern = new RegExp(keyword);
|
||
if(pattern.test($(this).find("a:first").text())){
|
||
find_ids.push(this.id);
|
||
}
|
||
});
|
||
|
||
if (find_ids.length>1) {
|
||
$('#menu_find').find('[type="button"]').css("visibility", "visible");
|
||
}
|
||
|
||
$("#siteMapTree").jstree("deselect_all").jstree("select_node", "#"+find_ids[find_index]);
|
||
return false;
|
||
});
|
||
$("#menu_find").find('[type="button"]').click(function(){
|
||
find_index++;
|
||
if (find_ids.length <= find_index){
|
||
find_index = 0;
|
||
}
|
||
|
||
$("#siteMapTree").jstree("deselect_all").jstree("select_node", "#"+find_ids[find_index]);
|
||
});
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
$._xeAdminVar.bSiteDesignMode = true;
|
||
|
||
//$('#design').nextAll().hide();
|
||
|
||
setTimeout(function(){$('#design').show();},0);
|
||
|
||
<!--@end-->
|
||
|
||
$._xeAdminVar.htPrevSetting = {};
|
||
|
||
$("#tmpl_noDownloadableItem").template( "noDownloadableItem" );
|
||
$("#tmpl_downloadableItem").template( "downloadableItem" );
|
||
|
||
$("#tmpl_pagination").template( "pagination" );
|
||
$("#tmpl_pagination_list").template( "paginationList" );
|
||
$("#tmpl_pagination_jump").template( "paginationJump" );
|
||
function createPagination(htOptions){
|
||
var $PlaceHolder = htOptions.$PlaceHolder;
|
||
var fnCallback = htOptions.fnCallback;
|
||
var nCurPage = htOptions.nCurPage;
|
||
var nTotalPages = htOptions.nTotalPages;
|
||
var sToFirstText = htOptions.sToFirstText;
|
||
var sToLastText = htOptions.sToLastText;
|
||
var sToText = htOptions.sToText;
|
||
var sSearchKeyword = htOptions.sSearchKeyword;
|
||
|
||
$PlaceHolder.addClass('_pagination');
|
||
$PlaceHolder.data('search_keyword', sSearchKeyword);
|
||
|
||
nCurPage = parseInt(nCurPage);
|
||
nTotalPages = parseInt(nTotalPages);
|
||
var nMaxList = 5;
|
||
|
||
var $Result = $.tmpl( "pagination", {});
|
||
|
||
var nStart = nCurPage - parseInt(nMaxList/2);
|
||
if(nStart <= 0) nStart = 1;
|
||
|
||
// -1 because it starts from "nStart", not "after nStart".
|
||
var nLast = nStart + nMaxList - 1;
|
||
if(nLast > nTotalPages){
|
||
nLast = nTotalPages;
|
||
if(nLast >= nMaxList) nStart = nLast - nMaxList + 1;
|
||
}
|
||
|
||
var sActiveClass, sListHTML = "";
|
||
|
||
var sPageJump = $.tmpl("paginationJump", {GoText: sToText, LastPage:nTotalPages})[0].outerHTML
|
||
|
||
if(nCurPage === 1) sActiveClass = "x_disabled";
|
||
sListHTML += $.tmpl("paginationList", {Page: 1, PageText: sToFirstText, ActiveClass:sActiveClass})[0].outerHTML;
|
||
if(nCurPage > nTotalPages/2 && nTotalPages > nMaxList){
|
||
sListHTML += sPageJump;
|
||
}
|
||
for(var i=nStart; i<=nLast; i++){
|
||
sActiveClass = "";
|
||
if(i === nCurPage) sActiveClass = "x_active";
|
||
sListHTML += $.tmpl("paginationList", {Page: i, PageText:i, ActiveClass:sActiveClass})[0].outerHTML;
|
||
}
|
||
if(!(nCurPage > nTotalPages/2) && nTotalPages > nMaxList){
|
||
sListHTML += sPageJump;
|
||
}
|
||
if(nCurPage === nTotalPages) sActiveClass = "x_disabled";
|
||
sListHTML += $.tmpl("paginationList", {Page: nTotalPages, PageText: sToLastText, ActiveClass:sActiveClass})[0].outerHTML;
|
||
$Result.find('._list').html(sListHTML);
|
||
|
||
$PlaceHolder.html("");
|
||
$PlaceHolder.append($Result);
|
||
|
||
if(sSearchKeyword){
|
||
$PlaceHolder.find('input[name=search_keyword]').val(sSearchKeyword);
|
||
}
|
||
|
||
$.data($PlaceHolder[0], "fnCallback", fnCallback);
|
||
}
|
||
$(document.body).on('click', '._pagination ._search', function(ev){
|
||
ev.preventDefault();
|
||
|
||
var sSearchKeyword = $(this).closest('._pagination').find('input[name=search_keyword]').val();
|
||
|
||
$.data($(this).closest('._pagination')[0], "fnCallback")({
|
||
page: 1,
|
||
search_keyword: sSearchKeyword
|
||
});
|
||
});
|
||
$(document.body).on('click', '._pagination ._cancel', function(ev){
|
||
ev.preventDefault();
|
||
|
||
$.data($(this).closest('._pagination')[0], "fnCallback")({
|
||
page: 1,
|
||
search_keyword: ""
|
||
});
|
||
});
|
||
|
||
$(document.body).on('click', '._pagination ._toPage', function(ev){
|
||
var sSearchKeyword = $(this).closest('._pagination').data('search_keyword');
|
||
|
||
htParam = $.parseJSON($(this).attr('data-param'));
|
||
|
||
$.data($(this).parents('._pagination')[0], "fnCallback")({
|
||
page: htParam.page,
|
||
search_keyword: sSearchKeyword
|
||
});
|
||
});
|
||
|
||
$(document.body).on('click', '.x_pagination ._jumpTo', function(ev){
|
||
var sSearchKeyword = $(this).closest('._pagination').data('search_keyword');
|
||
|
||
htParam = $.parseJSON($(this).attr('data-param'));
|
||
//console.log($(this).parent().find('input[name=page]'));
|
||
var nPage = parseInt($(this).parent().find('input[name=page]').val());
|
||
|
||
$.data($(this).parents('._pagination')[0], "fnCallback")({
|
||
page: nPage,
|
||
search_keyword: sSearchKeyword
|
||
});
|
||
});
|
||
|
||
$.jstree._themes = '{getNotEncodedFullUrl("")}modules/menu/tpl/css/themes/';
|
||
|
||
$(document.body).on("click", ".x div.col a, .x div.col button", function(ev){
|
||
// FF keeps the focus, making the button highlighted even after the panel is closed.
|
||
$(this).blur();
|
||
});
|
||
|
||
// Prepare parms
|
||
$(document.body).on("click", ".x [data-param]", function(ev){
|
||
$._htMarkupActionParam = $.parseJSON($(this).attr('data-param'));
|
||
|
||
return false;
|
||
});
|
||
|
||
// TARGET toggle
|
||
$(document.body).on("click", ".x [data-admin-toggle]", function(ev){
|
||
$($(this).attr('data-admin-toggle')).toggle();
|
||
|
||
ev.preventDefault();
|
||
});
|
||
|
||
// TARGET show
|
||
$(document.body).on("click", ".x [data-admin-show]", function(ev){
|
||
var $anchor = $(this);
|
||
var $target = $($(this).attr('data-admin-show'));
|
||
|
||
showTargetClicked($anchor, $target);
|
||
|
||
ev.preventDefault();
|
||
});
|
||
function showTargetClicked($anchor, $target){
|
||
$anchor.parents('.col').next().hide();
|
||
|
||
// change selected status of the navigation li
|
||
if($anchor.find('i.x_icon-circle-arrow-right').length > 0){
|
||
$anchor.parent('li').addClass('active').siblings('li').removeClass('active');
|
||
}
|
||
|
||
$target.show();
|
||
}
|
||
|
||
// TARGET hide
|
||
$(document.body).on("click", ".x [data-admin-hide]", function(ev){
|
||
var $target = $($(this).attr('data-admin-hide'));
|
||
|
||
$target.hide();
|
||
});
|
||
|
||
$(document.body).on("click", ".x .showProp", function(ev){
|
||
var sMenuId = $._htMarkupActionParam.sMenuId;
|
||
|
||
$("#siteMapTree").jstree("deselect_all");
|
||
$("#siteMapTree").jstree("select_node", "#menu"+sMenuId);
|
||
});
|
||
|
||
$(document.body).on("click", '._menuSelector_menuTreeContainer a', function(){
|
||
if($(this).hasClass('_nodeType_1')){
|
||
$.xeMsgBox.alert(xe.lang.msg_no_root);
|
||
return;
|
||
}
|
||
|
||
if($(this).hasClass('_nodeType_3')){
|
||
$.xeMsgBox.alert(xe.lang.msg_no_shortcut);
|
||
return;
|
||
}
|
||
|
||
$(this).closest('._menuSelector_menuTreeContainer').prevAll('input._linkMenuTitle').val($._htMarkupActionParam.eMenuTitle);
|
||
//$(this).closest('.clone').prev('input[type="text"]').val($._htMarkupActionParam.sMenuTitle + " ["+$._htMarkupActionParam.sMenuUrl+"]");
|
||
$(this).closest('._menuSelector_menuTreeContainer').prev('input._linkMenuSrl').val($._htMarkupActionParam.sMenuId);
|
||
|
||
$(this).closest('._menuSelector_menuTreeContainer').find('li.x_selected').removeClass('x_selected');
|
||
$(this).closest('li').addClass('x_selected');
|
||
});
|
||
|
||
function scrollToRight(){
|
||
$('#site').scrollTo($('#site')[0].scrollWidth, 0, {duration: 0 } );
|
||
}
|
||
|
||
function scrollToTop($Area){
|
||
$Area.scrollTo(0, 0, {duration: 0 } );
|
||
}
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
$("#site_map ._addSiteMap").click(function(){
|
||
$("#siteMapTree").jstree("deselect_all");
|
||
$("#siteMapTree").jstree("create", null, "first", { data: "New Sitemap" }, null, true);
|
||
});
|
||
|
||
$('#propertiesRoot').bind("show", function(ev, htOpt){
|
||
$('#site_map').next().hide(null, null, null, htOpt);
|
||
|
||
var sMenuId = $._htMarkupActionParam.sMenuId;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
$(ev.target).find('.title').text(htInfo.sText);
|
||
});
|
||
$('#propertiesRoot').bind("hide", function(ev, htOpt){
|
||
if(htOpt && htOpt.bOpeningProp) return;
|
||
|
||
if($('#properties').is(':visible')) return;
|
||
|
||
$("#siteMapTree").jstree("deselect_all");
|
||
});
|
||
$('#properties ._edit_cut').click(function(){
|
||
//console.log(1, $._xeAdminVar.sSelectedMenuSrl);
|
||
|
||
$('._edit_paste').removeAttr('disabled');
|
||
|
||
$('#site_map li._isCut').removeClass('_isCut');
|
||
|
||
$._xeAdminVar.sCopySourceMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
$._xeAdminVar.bCut = true;
|
||
|
||
$('#menu'+$._xeAdminVar.sCopySourceMenuSrl).addClass('_isCut');
|
||
});
|
||
$('#add_sitemap').bind('hide', function(){
|
||
var $panel = $(this);
|
||
$panel.find('INPUT._sitemapName').val('');
|
||
});
|
||
$('#add_sitemap ._save').click(function(){
|
||
var $panel = $('#add_sitemap');
|
||
|
||
|
||
var sTitle = $panel.find('INPUT._sitemapName').val();
|
||
var params = {};
|
||
params['title'] = sTitle;
|
||
$.exec_json("menu.procMenuAdminInsert", params, function(htData){
|
||
//$._xeAdminVar.sRenameOnload = htData.menu_srl;
|
||
//$._xeAdminVar.sSelectedMenuSrl = htData.menu_srl;
|
||
$._xeAdminVar.sSelectOnload = htData.menu_srl;
|
||
|
||
loadSiteMap();
|
||
return;
|
||
});
|
||
});
|
||
$('#sitemap_general').bind('show', function(){
|
||
var sMenuId = $._xeAdminVar.sSelectedMenuSrl;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
|
||
var $panel = $(this);
|
||
$panel.find('input._sitemapName').val(htInfo.menuNameKey.match(/\$user_lang->/) ? htInfo.menuNameKey : htInfo.title.escape(false).unescape());
|
||
$panel.find('.lang_code').trigger('reload-multilingual');
|
||
});
|
||
$('#sitemap_general ._save').click(function(){
|
||
var sTitle = $('#sitemap_general INPUT._sitemapName').val();
|
||
renameSitemap($._xeAdminVar.sSelectedMenuSrl, sTitle);
|
||
|
||
/*
|
||
$.exec_json("menu.procMenuAdminUpdateItem", params, function(htData){
|
||
if(htData.error !== 0){
|
||
alert(htData.message);
|
||
return;
|
||
}
|
||
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = $._xeAdminVar.sSelectedMenuSrl;
|
||
loadSiteMap();
|
||
});
|
||
*/
|
||
});
|
||
$('#sitemap_batch_design ._save').click(function(){
|
||
var params = {
|
||
menu_srl: $._xeAdminVar.sSelectedMenuSrl,
|
||
layout_P: $('#layout_P').val(),
|
||
layout_M: $('#layout_M').val()
|
||
};
|
||
$.exec_json('menu.procMenuAdminUpdateDesign', params, function(){
|
||
loadSiteMap();
|
||
});
|
||
});
|
||
$('#properties ._edit_copy').click(function(){
|
||
//console.log(2, $._xeAdminVar.sSelectedMenuSrl);
|
||
|
||
$('._edit_paste').removeAttr('disabled');
|
||
|
||
$('#site_map li._isCut').removeClass('_isCut');
|
||
|
||
$._xeAdminVar.sCopySourceMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
$._xeAdminVar.bCut = false;
|
||
});
|
||
$('._edit_paste').click(function(){
|
||
//console.log($._xeAdminVar.sCopySourceMenuSrl);
|
||
|
||
if(!$._xeAdminVar.sCopySourceMenuSrl) return;
|
||
|
||
var params = {};
|
||
|
||
if($._xeAdminVar.bCut){
|
||
// can't paste into a child menu of the source menu
|
||
var sParentSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
do{
|
||
if(sParentSrl == $._xeAdminVar.sCopySourceMenuSrl){
|
||
$.xeMsgBox.alert(xe.lang.msg_target_is_sub_of_origin);
|
||
return;
|
||
}
|
||
|
||
sParentSrl = htNodeInfo[sParentSrl].sParentSrl;
|
||
}while(sParentSrl)
|
||
|
||
$('._edit_paste').attr('disabled', 'disabled');
|
||
|
||
params['mode'] = 'move';
|
||
|
||
// 위치를 이동 할 메뉴의 srl
|
||
params['target_srl'] = $._xeAdminVar.sCopySourceMenuSrl;
|
||
|
||
// 어느 부모 밑으로 이동 할지
|
||
params['parent_srl'] = $._xeAdminVar.sSelectedMenuSrl;
|
||
|
||
// parent_srl 하위의 어느 노드 뒤에 삽입 할지.
|
||
// 0: parent_srl 바로 밑에.
|
||
// 다른 값: 해당 srl을 가진 노드 밑에
|
||
params['source_srl'] = 0;
|
||
|
||
$.exec_json("menu.procMenuAdminMoveItem", params, function(htData){
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = params['target_srl'];
|
||
loadSiteMap();
|
||
|
||
//showQuickHelp('can_drag_menu');
|
||
});
|
||
|
||
$._xeAdminVar.sCopySourceMenuSrl = null;
|
||
}else{
|
||
//params['menu_srl'] = '61';
|
||
params['parent_srl'] = $._xeAdminVar.sSelectedMenuSrl;
|
||
params['menu_item_srl'] = $._xeAdminVar.sCopySourceMenuSrl;
|
||
|
||
$.exec_json("menu.procMenuAdminCopyItem", params, function(htData){
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = params['menu_item_srl'];
|
||
loadSiteMap();
|
||
});
|
||
|
||
}
|
||
|
||
});
|
||
$("._delSiteMap").click(function(){
|
||
|
||
$.xeMsgBox.confirmDialog({
|
||
sTitle : xe.lang.confirm_sitemap_delete,
|
||
|
||
sText : '<label><input type="checkbox"> ' + xe.lang.confirm_delete_all_item + '</label>',
|
||
|
||
bDanger : true,
|
||
|
||
fnOnOK : function(){
|
||
if(!$.xeMsgBox.$msgBox.find('input[type="checkbox"]').prop('checked')) return true;
|
||
|
||
var sSelectedMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
var params = {};
|
||
params['menu_srl'] = sSelectedMenuSrl;
|
||
$.exec_json("menu.procMenuAdminDelete", params, function(htData){
|
||
loadSiteMap();
|
||
});
|
||
},
|
||
|
||
fnOnShow : function(){
|
||
$.xeMsgBox.$msgBox.find("._ok").addClass("x_disabled");
|
||
|
||
$.xeMsgBox.$msgBox.find('input[type="checkbox"]').click(function(){
|
||
if($(this).prop('checked')){
|
||
$.xeMsgBox.$msgBox.find("._ok").removeClass("x_disabled");
|
||
}else{
|
||
$.xeMsgBox.$msgBox.find("._ok").addClass("x_disabled");
|
||
}
|
||
});
|
||
},
|
||
|
||
fnOnHide : function(){
|
||
$.xeMsgBox.$msgBox.find("._ok").removeClass("x_disabled");
|
||
}
|
||
});
|
||
});
|
||
$("._renameSiteMap").click(function(){
|
||
$("#siteMapTree").jstree("rename");
|
||
|
||
/*
|
||
var sSelectedMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
var $node = $('#menu'+sSelectedMenuSrl);
|
||
$node.addClass('_node_renaming');
|
||
*/
|
||
$("#siteMapTree").addClass('_node_renaming');
|
||
});
|
||
$('#properties').bind("show", function(ev, htOpt){
|
||
if(ev.target != this) return;
|
||
if(typeof($._xeAdminVar.htAllModules) == 'undefined') return;
|
||
|
||
$('#site_map').next().hide(null, null, null, htOpt);
|
||
|
||
var sMenuId = $._htMarkupActionParam.sMenuId;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
$(ev.target).find('.title').text(htInfo.sText.escape(false).unescape());
|
||
|
||
$(ev.target).find('.title').attr('href', htInfo.href);
|
||
|
||
var title = htInfo.sModuleType;
|
||
if($._xeAdminVar.htAllModules[htInfo.sModuleType]){
|
||
title = $._xeAdminVar.htAllModules[htInfo.sModuleType].title;
|
||
}
|
||
|
||
if(!$._xeAdminVar.htAllModules[htInfo.sModuleType]){
|
||
$(ev.target).find('.module_type').text(htInfo.sModuleType + '(' + xe.lang.not_found_module +')');
|
||
}else{
|
||
$(ev.target).find('.module_type').text($._xeAdminVar.htAllModules[htInfo.sModuleType].title);
|
||
}
|
||
|
||
if(htInfo.bShortCut){
|
||
$(ev.target).removeClass('prop-general');
|
||
$(ev.target).addClass('prop-shortcut');
|
||
}else{
|
||
$(ev.target).addClass('prop-general');
|
||
$(ev.target).removeClass('prop-shortcut');
|
||
}
|
||
|
||
if(!htInfo.bShortCut){
|
||
loadFullSetup();
|
||
}
|
||
});
|
||
function loadFullSetup(){
|
||
$.exec_json("menu.getMenuAdminDetailSetup", {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl
|
||
}, function(htData){
|
||
$('#properties ._hasFullSetupX, #properties ._hasFullSetupO').hide();
|
||
$('#properties').removeClass('_hasFullSetup');
|
||
|
||
if(htData.simpleSetupHtml){
|
||
$('#properties').addClass('_hasFullSetup');
|
||
$('#fullSetup').find('._setupHTML').html(htData.simpleSetupHtml);
|
||
var $form = $('#fullSetup form');
|
||
$form.attr('target', 'submitTarget');
|
||
$form.append($("<INPUT>").attr("type", "hidden").attr("name", "xe_js_callback").attr("value", "top.fullSetupSaved"));
|
||
$('#properties ._hasFullSetupO').show();
|
||
}else if(htData.setupUrl){
|
||
$._xeAdminVar.sFullSetupUrl = htData.setupUrl;
|
||
$('#properties ._hasFullSetupX').show();
|
||
}
|
||
});
|
||
}
|
||
top.fullSetupSaved = function(htData){
|
||
$('#fullSetup').hide();
|
||
|
||
loadFullSetup();
|
||
};
|
||
$('#properties').bind("hide", function(ev, htOpt){
|
||
if(ev.target != this) return;
|
||
if(htOpt && htOpt.bOpeningProp) return;
|
||
|
||
if($('#propertiesRoot').is(':visible')) return;
|
||
|
||
$("#siteMapTree").jstree("deselect_all");
|
||
});
|
||
|
||
$('#add').bind("hide", function(){
|
||
});
|
||
|
||
$('#download').bind("show", function(ev){
|
||
// ignore bubbled show events
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
//index.php?act=getAutoinstallAdminMenuPackageList
|
||
$('#add').nextAll().hide();
|
||
|
||
drawDownloadableList('download');
|
||
});
|
||
$('#download').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
$('#download').bind("hide", function(ev){
|
||
// ignore bubbled show events
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
$('#download ._pagination').html("");
|
||
});
|
||
|
||
|
||
$('#add_menu').bind("show", function(ev){
|
||
// ignore bubbled show events
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
$._xeAdminVar.sSelectedModuleName = $._htMarkupActionParam.moduleName;
|
||
$._xeAdminVar.sSelectedModuleTitle = $._htMarkupActionParam.moduleTitle;
|
||
|
||
var $description = $(this).find('._description');
|
||
|
||
var $title = $(this).find("._title");
|
||
$title.text($._xeAdminVar.sSelectedModuleTitle);
|
||
var htItemType = $._xeAdminVar.htAllModules[$._xeAdminVar.sSelectedModuleName];
|
||
|
||
var $link = $(this).find("._link");
|
||
|
||
$description.text(htItemType.description || "");
|
||
if(htItemType.package_srl && htItemType.url){
|
||
$link.show();
|
||
$link.attr('target', '_blank');
|
||
$link.attr('href', htItemType.url);
|
||
}else{
|
||
$link.hide();
|
||
$link.removeAttr('target');
|
||
$link.removeAttr('href');
|
||
}
|
||
|
||
if($._xeAdminVar.sSelectedModuleName === "_SHORTCUT"){
|
||
$(this).removeClass("page");
|
||
$(this).addClass("url");
|
||
}else{
|
||
$(this).addClass("page");
|
||
$(this).removeClass("url");
|
||
}
|
||
|
||
$(this).find('.lang_code').trigger('reload-multilingual');
|
||
|
||
showMenuSelector($(this).find('._menuSelector_menuTreeContainer'));
|
||
|
||
});
|
||
$('#add_menu').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
$('#add_menu').bind("hide", function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
clearInputs($('#add_menu'));
|
||
});
|
||
$('#add_menu ._save').bind("click", function(){
|
||
var sMenuName = $('#add_menu ._menuName').val();
|
||
var sMenuIcon = $('#add_menu ._menuIcon').val();
|
||
var sMenuClass = $('#add_menu ._menuClass').val();
|
||
var sMenuDesc = $('#add_menu ._menuDesc').val();
|
||
var sUrl = $('#add_menu ._mid').val();
|
||
var sTargetKey = "module_id";
|
||
|
||
var sSelectedModuleName = $._xeAdminVar.sSelectedModuleName;
|
||
var sSelectedMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
|
||
//console.log($._xeAdminVar, sSelectedModuleName, sSelectedMenuSrl, sMenuName, sUrl);
|
||
|
||
var isShortCut = "N";
|
||
var $labels;
|
||
// URL?
|
||
if($._xeAdminVar.sSelectedModuleName === "_SHORTCUT"){
|
||
isShortCut = "Y";
|
||
sSelectedModuleName = "";
|
||
|
||
$labels = $('#add_menu .x_nav-tabs li');
|
||
for(var nSelectedTabIdx=0, nLen=$labels.length; nSelectedTabIdx<nLen; nSelectedTabIdx++){
|
||
if($($labels[nSelectedTabIdx]).hasClass("x_active")) break;
|
||
}
|
||
|
||
if(nSelectedTabIdx === 0){
|
||
sUrl = $('#add_menu .x_active ._linkUrl').val();
|
||
if(!sUrl || sUrl === "http://" || sUrl === "https://"){
|
||
$.xeMsgBox.alert(xe.lang.msg_url_is_required);
|
||
return;
|
||
}
|
||
//if(!sUrl.match(/^http:\/\//)){
|
||
// sUrl = "http://"+sUrl;
|
||
//}
|
||
}else{
|
||
sUrl = $('#add_menu .x_active ._linkMenuSrl').val();
|
||
/*
|
||
if(!sUrl){
|
||
alert("Target mid is required");
|
||
return;
|
||
}
|
||
*/
|
||
}
|
||
|
||
sTargetKey = 'shortcut_target';
|
||
}
|
||
|
||
var params = {};
|
||
var response_tags = new Array('menu_item_srl');
|
||
params['ruleset'] = "insertMenuItem";
|
||
params['act'] = "procMenuAdminInsertItem";
|
||
params['menu_name_key'] = "";
|
||
params['menu_name'] = sMenuName;
|
||
params['menu_icon'] = sMenuIcon;
|
||
params['menu_class'] = sMenuClass;
|
||
params['menu_desc'] = sMenuDesc;
|
||
params['module_type'] = sSelectedModuleName;
|
||
params['menu_open_window'] = "N";
|
||
params['menu_expand'] = "N";
|
||
params['is_shortcut'] = isShortCut;
|
||
params['parent_srl'] = sSelectedMenuSrl;
|
||
params[sTargetKey] = sUrl;
|
||
|
||
$.exec_json("menu.procMenuAdminInsertItem", params, function(htData){
|
||
// select the newly created menu
|
||
//$._xeAdminVar.sSelectOnload = htData.menu_item_srl;
|
||
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = $._xeAdminVar.sSelectedMenuSrl;
|
||
loadSiteMap();
|
||
|
||
showQuickHelp('how_to_modify_menu');
|
||
});
|
||
});
|
||
|
||
$('#default').bind("show", function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
var htInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
|
||
if(htInfo.sModuleType === "_SHORTCUT"){
|
||
$(this).addClass('url');
|
||
$(this).removeClass('page');
|
||
}else{
|
||
$(this).removeClass('url');
|
||
$(this).addClass('page');
|
||
}
|
||
|
||
$(this).find('#menuName').val(htInfo.sMenuNameKey.match(/\$user_lang->/) ? htInfo.sMenuNameKey : htInfo.sText.escape(false).unescape());
|
||
$(this).find('#menuIcon').val(htInfo.icon);
|
||
$(this).find('#menuClass').val(htInfo.class);
|
||
$(this).find('#menuDesc').val(htInfo.desc.escape(false).unescape());
|
||
//menu_name_key
|
||
|
||
$(this).find('#mid2').val(htInfo.url);
|
||
|
||
//console.log(htInfo);
|
||
if(htInfo.sModuleType === "_SHORTCUT"){
|
||
//console.log(htInfo);
|
||
//if(htInfo.module){
|
||
if(htInfo.href !== htInfo.url){
|
||
// Menu shortcut
|
||
$(this).find('a[href="#fix_linkMenu"]').click();
|
||
//$(this).find('._menu_link').val();
|
||
showMenuSelector($(this).find('._menuSelector_menuTreeContainer'), htInfo.url);
|
||
}else{
|
||
// URL shortcut
|
||
var htInfo_url = htInfo.url;
|
||
htInfo_url = htInfo_url.replace(/&/g, '&');
|
||
htInfo.url = htInfo_url;
|
||
$(this).find('a[href="#fix_linkUrl"]').click();
|
||
$(this).find('._url_link').val($('<div />').text(htInfo.url).text());
|
||
|
||
showMenuSelector($(this).find('._menuSelector_menuTreeContainer'));
|
||
}
|
||
}else{
|
||
$(this).find('._browserTitle').val(htInfo.browser_title.escape(false).unescape());
|
||
}
|
||
|
||
if(htInfo.open_window === "N"){
|
||
$(this).find('._newWindow').removeAttr("checked");
|
||
}else{
|
||
$(this).find('._newWindow').attr("checked", "checked");
|
||
}
|
||
|
||
if(htInfo.expand === "N"){
|
||
$(this).find('._leaveUnfolded').removeAttr("checked");
|
||
}else{
|
||
$(this).find('._leaveUnfolded').attr("checked", "checked");
|
||
}
|
||
|
||
$(this).find('.lang_code').trigger('reload-multilingual');
|
||
});
|
||
$('#default').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
$('#default').bind("hide", function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
$(this).find('._url_link').val('');
|
||
});
|
||
$('#default ._save').click(function(){
|
||
var htInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
|
||
var sMenuName = $('#default ._menuName').val();
|
||
var sMenuIcon = $('#default ._menuIcon').val();
|
||
var sMenuClass = $('#default ._menuClass').val();
|
||
var sMenuDesc = $('#default ._menuDesc').val();
|
||
var sMID;
|
||
|
||
var sNewWindow = $('#default ._newWindow').prop("checked")?"Y":"N";
|
||
var sLeaveUnfolded = $('#default ._leaveUnfolded').prop("checked")?"Y":"N";
|
||
|
||
var sBrowserTitle = $('#default ._browserTitle').val();
|
||
|
||
var sSelectedModuleName = $._xeAdminVar.sSelectedModuleName;
|
||
var sSelectedMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
|
||
var params = {};
|
||
|
||
if(htInfo.sModuleType === "_SHORTCUT"){
|
||
if($('#fix_linkMenu').css("display") === "none"){
|
||
sMID = $('#default ._url_link').val();
|
||
}else{
|
||
sMID = $('#default ._linkMenuSrl').val();
|
||
}
|
||
params['shortcut_target'] = sMID;
|
||
}else{
|
||
sMID = $('#default ._mid').val();
|
||
params['module_id'] = sMID;
|
||
}
|
||
params['menu_item_srl'] = sSelectedMenuSrl;
|
||
params['menu_name'] = sMenuName;
|
||
params['menu_icon'] = sMenuIcon;
|
||
params['menu_class'] = sMenuClass;
|
||
params['menu_desc'] = sMenuDesc;
|
||
params['menu_open_window'] = sNewWindow;
|
||
params['menu_expand'] = sLeaveUnfolded;
|
||
params['browser_title'] = sBrowserTitle;
|
||
$.exec_json("menu.procMenuAdminUpdateItem", params, function(htData){
|
||
// select currently selected menu
|
||
$._xeAdminVar.sSelectOnload = $._xeAdminVar.sSelectedMenuSrl;
|
||
loadSiteMap();
|
||
});
|
||
});
|
||
|
||
top.onBtnImgUploadedTO = function(htData){
|
||
$._xeAdminVar.nBtnUploaded = null;
|
||
|
||
if($._xeAdminVar.bBtnUploadCompleted){
|
||
top.onBtnImgUploaded();
|
||
}
|
||
};
|
||
|
||
top.onBtnImgUploaded = function(htData){
|
||
$._xeAdminVar.bBtnUploadCompleted = true;
|
||
|
||
if($._xeAdminVar.nBtnUploaded){
|
||
return;
|
||
}
|
||
|
||
$('#imgbtn').show();
|
||
|
||
/*
|
||
if(htData.normal_btn || htData.hover_btn || htData.active_btn){
|
||
showQuickHelp('img_uploaded');
|
||
}else{
|
||
showQuickHelp('img_deleted');
|
||
}
|
||
*/
|
||
}
|
||
var $imgBtnForms = $("#imgbtn form");
|
||
$imgBtnForms.find('input[name=act]').val('procMenuAdminButtonUpload');
|
||
$imgBtnForms.find('input[name=mid]').remove();
|
||
$imgBtnForms.find('input[name=vid]').remove();
|
||
|
||
$('#imgbtn').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
// http://code.google.com/p/xe-core/wiki/Menu_Button_load
|
||
$.exec_json("menu.getMenuAdminItemInfo", {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl
|
||
}, BtnInfoReceived);
|
||
});
|
||
$('#imgbtn').bind("after-show", function(){
|
||
scrollToRight();
|
||
});
|
||
function BtnInfoReceived(htData){
|
||
$('#imgbtn input[name=menu_item_srl]').val(htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl);
|
||
|
||
// reset the file inputs
|
||
$('#imgbtn input[type=file]').each(function(){
|
||
($($(this).outerHTML())).insertAfter($(this));
|
||
$(this).remove();
|
||
});
|
||
$('#imgbtn input[type=file]').change(function(){
|
||
var $form = $(this).closest('form');
|
||
$form.find('IMG._thumbnail').attr('src', 'common/img/msg.loading.gif');
|
||
$form.addClass('_imgUploaded');
|
||
|
||
$._xeAdminVar.bBtnUploadCompleted = false;
|
||
if($._xeAdminVar.nBtnUploaded) clearTimeout($._xeAdminVar.nBtnUploaded);
|
||
$._xeAdminVar.nBtnUploaded = setTimeout(top.onBtnImgUploadedTO, 5000);
|
||
|
||
$form.submit();
|
||
});
|
||
|
||
if(htData.menu_item.normal_btn){
|
||
$('#imgbtn form._btn_normal img').attr('src', htData.menu_item.normal_btn);
|
||
$('#imgbtn form._btn_normal').addClass('_imgUploaded');
|
||
}else{
|
||
$('#imgbtn form._btn_normal').removeClass('_imgUploaded');
|
||
}
|
||
|
||
if(htData.menu_item.hover_btn){
|
||
$('#imgbtn form._btn_hover img').attr('src', htData.menu_item.hover_btn);
|
||
$('#imgbtn form._btn_hover').addClass('_imgUploaded');
|
||
}else{
|
||
$('#imgbtn form._btn_hover').removeClass('_imgUploaded');
|
||
}
|
||
|
||
if(htData.menu_item.active_btn){
|
||
$('#imgbtn form._btn_selected img').attr('src', htData.menu_item.active_btn);
|
||
$('#imgbtn form._btn_selected').addClass('_imgUploaded');
|
||
}else{
|
||
$('#imgbtn form._btn_selected').removeClass('_imgUploaded');
|
||
}
|
||
|
||
/*
|
||
[normal_btn] =>
|
||
[hover_btn] =>
|
||
[active_btn] =>
|
||
*/
|
||
}
|
||
/*
|
||
$('#details').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
$.exec_json("menu.getMenuAdminDetailSetup", {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl
|
||
}, function(htData){
|
||
$.ajax({
|
||
url: htData.setupUrl,
|
||
context: document.body
|
||
}).done(function(sData) {
|
||
// console.log(999, sData);
|
||
});
|
||
//htData.setupUrl
|
||
});
|
||
});
|
||
*/
|
||
$('#auth').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
// https://code.google.com/p/xe-core/wiki/MenuPerm?ts=1350276450&updated=MenuPerm
|
||
$.exec_json("menu.getMenuAdminItemInfo", {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl
|
||
}, PermAReceived);
|
||
});
|
||
$('#auth').bind('after-show', function(ev){
|
||
scrollToRight();
|
||
});
|
||
function PermAReceived(htData){
|
||
//console.log(1, htData);
|
||
|
||
/*
|
||
{
|
||
"message_type":"",
|
||
"menu_item":{
|
||
"group_srls":[
|
||
|
||
],
|
||
"moduleType":"",
|
||
"groupList":[
|
||
{
|
||
"group_srl":"1",
|
||
"title":"관리그룹",
|
||
"isChecked":false
|
||
},
|
||
{
|
||
"group_srl":"2",
|
||
"title":"준회원",
|
||
"isChecked":false
|
||
},
|
||
{
|
||
"group_srl":"3",
|
||
"title":"정회원",
|
||
"isChecked":false
|
||
}
|
||
],
|
||
"name_key":"",
|
||
"name":""
|
||
},
|
||
"error":0,
|
||
"message":"success"
|
||
}
|
||
*/
|
||
var aUserGroups = $._xeAdminVar.aUserGroups = [];
|
||
var htUserGroups = $._xeAdminVar.htUserGroups = {};
|
||
|
||
var htNode = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
var aPerms = htNode.aPerms = [];
|
||
|
||
var htTmp;
|
||
for(var i=0, nLen=htData.menu_item.groupList.length; i<nLen; i++){
|
||
htTmp = htData.menu_item.groupList[i];
|
||
|
||
aUserGroups[i] = htTmp;
|
||
htUserGroups[htTmp.group_srl] = htTmp;
|
||
}
|
||
|
||
//console.log($._xeAdminVar.aUserGroups, $._xeAdminVar.htUserGroups);
|
||
aPerms[0] = {
|
||
sKey : 'target',
|
||
sTitle : xe.lang.target_of_view_menu,
|
||
sDefault : 'guest',
|
||
sGrant : htData.menu_item.grant || 'all',
|
||
aGroup : htData.menu_item.group_srls
|
||
};
|
||
|
||
if(htNode.sModuleType === "_SHORTCUT"){
|
||
PermBReceived({
|
||
grantList : {}
|
||
});
|
||
}else{
|
||
var params = {
|
||
target_module : htNode.sModuleType,
|
||
module_srl : htNode.module_srl
|
||
};
|
||
|
||
$.exec_json("module.getModuleAdminGrant", params, PermBReceived);
|
||
}
|
||
}
|
||
function PermBReceived(htData){
|
||
//console.log(2, htData);
|
||
|
||
var htNode = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
var aPerms = htNode.aPerms;
|
||
|
||
/*
|
||
"write_document":{
|
||
"title":"글 작성",
|
||
"default":"guest",
|
||
"grant":"group",
|
||
"group":{
|
||
1, 2, 3
|
||
}
|
||
},
|
||
*/
|
||
for(var sPerm in htData.grantList){
|
||
htTmp = htData.grantList[sPerm];
|
||
//console.log(11, htTmp);
|
||
aPerms.push({
|
||
sKey : sPerm,
|
||
sTitle : htTmp.title,
|
||
// IE7 takes 'default' as a keyword. So use this array form to access the value
|
||
sDefault : htTmp['default'],
|
||
sGrant : htTmp.grant || "",
|
||
aGroup : htTmp.group_srls || []
|
||
});
|
||
}
|
||
|
||
drawPermSetupScreen(aPerms);
|
||
}
|
||
$("#tmpl_permItem").template( "permItem");
|
||
$("#tmpl_perm_groupItem").template( "perm_groupItem");
|
||
function drawPermSetupScreen(aPerms){
|
||
//console.log(aPerms);
|
||
|
||
var $List = $('#auth ._list');
|
||
$List.html("");
|
||
|
||
var aUserGroups = $._xeAdminVar.aUserGroups;
|
||
var htInfo, sDefault, $node, $groupNode, aGroup, sGrant;
|
||
for(var i=0, nLen=aPerms.length; i<nLen; i++){
|
||
htInfo = aPerms[i];
|
||
|
||
sDefault = htInfo.sDefault;
|
||
//aGroup = htInfo.aGroup;
|
||
aGroup = [];
|
||
// The comparison target "htInfo.group_srl" is always string where htInfo.aGroup can be either string OR integer. For easier comparison, conver aGroup to string.
|
||
for(var n=0, nLen2=htInfo.aGroup.length; n<nLen2; n++){
|
||
aGroup[n] = "" + htInfo.aGroup[n];
|
||
}
|
||
sGrant = htInfo.sGrant;
|
||
|
||
$node = $.tmpl("permItem", {
|
||
PermId : htInfo.sKey,
|
||
PermTitle : htInfo.sTitle
|
||
});
|
||
$node.find('select').data('key', htInfo.sKey);
|
||
//console.log($node.find('select').data('key'));
|
||
|
||
var htGrantStrToSelectValMap = {
|
||
'all': '0',
|
||
'member': '-1',
|
||
'site': '-1',
|
||
'not_member': '-4',
|
||
'manager': '-3',
|
||
'group': '-10'
|
||
};
|
||
if(htInfo.sGrant){
|
||
$node.find('select').val(htGrantStrToSelectValMap[htInfo.sGrant]);
|
||
}
|
||
|
||
// Add groups
|
||
//<label><input type="checkbox" value="${ID}" title="${Title}"> ${Title}</label>
|
||
for(var ii=0, nLen2=aUserGroups.length; ii<nLen2; ii++){
|
||
htInfo = aUserGroups[ii];
|
||
//console.log(222, htInfo.group_srl, aGroup);
|
||
sChecked = null;
|
||
if(sGrant === 'group'){
|
||
|
||
$node.find('._groups').show();
|
||
|
||
if(aGroup && $.inArray("" + htInfo.group_srl, aGroup) !== -1){
|
||
sChecked = "checked";
|
||
}
|
||
}
|
||
|
||
$groupNode = $.tmpl("perm_groupItem", {
|
||
Title : htInfo.title ,
|
||
ID : htInfo.group_srl
|
||
});
|
||
$groupNode.find('input[type=checkbox]').attr('checked', sChecked);
|
||
$node.find('._groups').append($groupNode);
|
||
}
|
||
|
||
if(i === 0){
|
||
$node.find('._group_signedup').remove();
|
||
//$node.find('._group_manager').remove();
|
||
}else{
|
||
/*
|
||
guest : 모든 옵션 사용 가능, 항상 권한 있음.
|
||
member : '모든 사용자' 제외하고 사용 가능, 로그인 정보가 있을 경우 true
|
||
not_member : 비로그인 사용자, 로그인 정보가 *없을* 경우 true
|
||
manager : '관리자만','선택그룹 사용자' 옵션만 사용가능, 관리자일 경우에만 true
|
||
root : manager와 동일.
|
||
*/
|
||
switch(sDefault){
|
||
case 'guest':
|
||
//
|
||
break;
|
||
case 'member':
|
||
$node.find('._group_all').remove();
|
||
break;
|
||
case 'not_member':
|
||
$node.find('._group_all').remove();
|
||
break;
|
||
case 'site':
|
||
$node.find('._group_all').remove();
|
||
break;
|
||
case 'manager':
|
||
case 'root':
|
||
default:
|
||
$node.find('._group_all').remove();
|
||
$node.find('._group_loggedin').remove();
|
||
$node.find('._group_signedup').remove();
|
||
}
|
||
}
|
||
//console.log(22, $node);
|
||
$List.append($node);
|
||
$('#auth select').trigger('change');
|
||
}
|
||
}
|
||
|
||
// Auth
|
||
$('#auth').on('change', 'select', function(){
|
||
var $this = $(this);
|
||
|
||
var sKey = $this.data('key');
|
||
|
||
var $selected = $('#auth ._groups_'+sKey);
|
||
if($this.val() == '-10'){
|
||
$selected.show();
|
||
} else {
|
||
$selected.hide();
|
||
}
|
||
});
|
||
$('#auth ._save').click(function(){
|
||
// create json from the form values
|
||
var $select = $('#auth').find('select');
|
||
|
||
var vDisplay = readPermValue($($select[0]));
|
||
if(vDisplay === '0') vDisplay = "";
|
||
|
||
var htPerm = {};
|
||
|
||
var $node, sKey;
|
||
for(var i=1, nLen=$select.length; i<nLen; i++){
|
||
$node = $($select[i]);
|
||
sKey = $node.data('key');
|
||
htPerm[sKey] = readPermValue($node);
|
||
}
|
||
|
||
var htParam = {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl,
|
||
exposure : vDisplay,
|
||
htPerm : htPerm
|
||
};
|
||
|
||
jQuery.exec_json("menu.procMenuAdminUpdateAuth", htParam, function(htData){
|
||
$._xeAdminVar.sSelectOnload = $._xeAdminVar.sSelectedMenuSrl;
|
||
loadSiteMap();
|
||
});
|
||
});
|
||
function readPermValue($select){
|
||
var sKey, $node, $chkbox, aGroup, vValue, $groups;
|
||
|
||
$node = $($select);
|
||
|
||
sKey = $node.data('key');
|
||
vValue = $node.val();
|
||
|
||
if(vValue === '-10'){
|
||
vValue = [];
|
||
|
||
var $groups = $('#auth ._groups_'+sKey+' input[type=checkbox]');
|
||
|
||
for(var ii=0, nLen2=$groups.length; ii<nLen2; ii++){
|
||
$chkbox = $($groups[ii]);
|
||
if($chkbox.prop('checked')){
|
||
vValue.push($chkbox.val());
|
||
}
|
||
}
|
||
}
|
||
|
||
// Output of $.param function used in exec_json does not have a representation for an empty array. So, use "[]" (string) instead.
|
||
if(vValue.length === 0) vValue = '';
|
||
return vValue.toString();
|
||
}
|
||
<!--@end-->
|
||
|
||
$('#downloadLayout').bind("show", function(ev){
|
||
// ignore bubbled show events
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
//index.php?act=getAutoinstallAdminMenuPackageList
|
||
$('#layout').nextAll().hide();
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
drawDownloadableList('downloadLayout', { 'type': sMode});
|
||
});
|
||
$('#downloadLayout').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
|
||
$('#downloadSkin').bind("show", function(ev){
|
||
// ignore bubbled show events
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
//index.php?act=getAutoinstallAdminMenuPackageList
|
||
$('#skin').nextAll().hide();
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
drawDownloadableList('downloadSkin', {
|
||
parent_program : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sModuleType,
|
||
type: sMode
|
||
});
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
drawDownloadableList('downloadSkin', {
|
||
parent_program : $._xeAdminVar.htSelectedMenuDesign.sModuleName,
|
||
type: sMode
|
||
});
|
||
<!--@end-->
|
||
});
|
||
$('#downloadSkin').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
|
||
//function drawMenuModuleList(nPage){
|
||
// sItemType : download, downloadLayout, downloadSkin
|
||
// htParams : download/{page}, downloadLayout/{page, type}, downloadSkin/{page, type, parent_program}
|
||
// https://code.google.com/p/xe-core/wiki/DownloadAvailableList_GET_API
|
||
function drawDownloadableList(sItemType, htParams){
|
||
var htDownloadableListAction = {
|
||
download:'menu.getAutoinstallAdminMenuPackageList',
|
||
downloadLayout:'menu.getAutoinstallAdminLayoutPackageList',
|
||
downloadSkin:'menu.getAutoinstallAdminSkinPackageList'
|
||
};
|
||
|
||
htParams = htParams || {};
|
||
htParams.page = htParams.page || 1;
|
||
htParams.search_keyword = htParams.search_keyword || "";
|
||
|
||
var $Panel = $('#'+sItemType);
|
||
var sAction = htDownloadableListAction[sItemType];
|
||
|
||
//var params = {};
|
||
//params['page'] = nPage;
|
||
//"menu.getAutoinstallAdminMenuPackageList"
|
||
$.exec_json(sAction, htParams, function(htData){
|
||
//console.log(htData);
|
||
//var sResult = "";
|
||
$Panel.find('.list').html("");
|
||
|
||
var item;
|
||
var $node, sIsInstalled, sIsUpToDate;
|
||
if(htData.item_list){
|
||
for(var i=0, nLen=htData.item_list.length; i<nLen; i++){
|
||
item = htData.item_list[i];
|
||
|
||
if(item.current_version){
|
||
sIsInstalled = "installed";
|
||
|
||
if(item.need_update === "N"){
|
||
sIsUpToDate = "up_to_date";
|
||
}else{
|
||
sIsUpToDate = "";
|
||
}
|
||
}else{
|
||
sIsInstalled = "";
|
||
}
|
||
|
||
$node = $.tmpl( "downloadableItem", {
|
||
MenuType: item.title,
|
||
MenuTypeDesc: item.package_description,
|
||
ScreenShotURL: item.item_screenshot_url,
|
||
Score: item.package_star,
|
||
TotalVotes: item.package_voted,
|
||
LastUpdatedWithTime: formatUpdatedDateWithTime(item.item_regdate),
|
||
LastUpdated: formatUpdatedDate(item.item_regdate),
|
||
TotalDownloads: item.package_downloaded,
|
||
URL: item.url,
|
||
IsUpToDate: sIsUpToDate,
|
||
IsInstalled: sIsInstalled
|
||
} ).data('sItemType', sItemType).data('sPackageSrl', item.package_srl);
|
||
|
||
$Panel.find('.list').append($node);
|
||
}
|
||
|
||
var htInfo = htData.page_navigation;
|
||
|
||
var fnCallback = function(htNewParams){
|
||
htParams.page = htNewParams.page || htParams.page;
|
||
htParams.search_keyword = typeof htNewParams.search_keyword === "string" ? htNewParams.search_keyword : htParams.search_keyword;
|
||
|
||
return drawDownloadableList(sItemType, htParams);
|
||
}
|
||
|
||
//createPagination($('#download ._pagination'), drawMenuModuleList, htInfo.cur_page, htInfo.total_page, "« 첫 페이지", "끝 페이지 »", "페이지 직접 이동")
|
||
createPagination({
|
||
$PlaceHolder : $Panel.find('._pagination'),
|
||
fnCallback : fnCallback,
|
||
nCurPage : htInfo.cur_page,
|
||
nTotalPages : htInfo.total_page,
|
||
sToFirstText : "«",
|
||
sToLastText : "»",
|
||
sToText : xe.lang.cmd_go_to_page,
|
||
sSearchKeyword : htParams.search_keyword
|
||
});
|
||
}else{
|
||
$node = $.tmpl( "noDownloadableItem", {
|
||
} );
|
||
|
||
$Panel.find('.list').append($node);
|
||
}
|
||
|
||
scrollToTop($Panel.find('.cnt'));
|
||
scrollToRight();
|
||
});
|
||
}
|
||
|
||
$( "#tmpl_layoutItem" ).template( "design_layoutItem" );
|
||
$( "#tmpl_skinItem" ).template( "deisgn_skinItem" );
|
||
|
||
// remove automatically added fields.
|
||
var $previewForm = $("#design ._preview_form");
|
||
$previewForm.find('input[name=act]').remove();
|
||
$previewForm.find('input[name=mid]').remove();
|
||
$previewForm.find('input[name=vid]').remove();
|
||
$('#design .x_tabbable').on('tab_change', function(ev, nIdx, $el){
|
||
ev.preventDefault();
|
||
|
||
$('#design').nextAll().hide();
|
||
|
||
//console.log('on "tab_change"', ev, nIdx, $el);
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
if(nIdx === 0){
|
||
// PC
|
||
$._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen = false;
|
||
$._xeAdminVar.sOpenDeisgnWith = "P";
|
||
|
||
$('#design').addClass('_pcMode');
|
||
$('#design').removeClass('_mobileMode');
|
||
|
||
}else{
|
||
// mobile
|
||
$._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen = true;
|
||
$._xeAdminVar.sOpenDeisgnWith = "M";
|
||
|
||
$('#design').removeClass('_pcMode');
|
||
$('#design').addClass('_mobileMode');
|
||
}
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var $panel = $("#design");
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
|
||
var sMenuId = $._xeAdminVar.sSelectedMenuSrl;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
|
||
// also preview here
|
||
var params = {
|
||
menu_item_srl : htInfo.sNodeSrl
|
||
};
|
||
//-----------------------------------
|
||
$.exec_json("module.getModuleInfoByMenuItemSrl", params, function(htData){
|
||
var htTmp = htData.module_info_by_menu_item_srl;
|
||
|
||
var sLayoutTitle, sLayoutSrl;
|
||
var sSkinTitle, sSkinName;
|
||
|
||
if(htTmp.module == 'page'){
|
||
htTmp.module = htTmp.page_type;
|
||
}
|
||
|
||
if(sMode === "P"){
|
||
sLayoutSrl = htTmp.layout_srl;
|
||
sLayoutTitle = htData.module_info_by_menu_item_srl.designSettings.layout.pc;
|
||
|
||
if(htData.module_info_by_menu_item_srl.is_skin_fix == "Y"){
|
||
sSkinTitle = htData.module_info_by_menu_item_srl.designSettings.skin.pc;
|
||
sSkinName = htTmp.skin;
|
||
}else{
|
||
sSkinTitle = "";
|
||
sSkinName = "";
|
||
}
|
||
}else{
|
||
sLayoutSrl = htTmp.mlayout_srl;
|
||
sLayoutTitle = htData.module_info_by_menu_item_srl.designSettings.layout.mobile;
|
||
|
||
if(htData.module_info_by_menu_item_srl.is_mskin_fix == "Y"){
|
||
sSkinTitle = htData.module_info_by_menu_item_srl.designSettings.skin.mobile;
|
||
sSkinName = htTmp.mskin;
|
||
}else{
|
||
sSkinTitle = "";
|
||
sSkinName = "";
|
||
}
|
||
}
|
||
|
||
// module=모듈이름&mid=모듈ID&layout_srl=레이아웃srl&skin=스킨이름
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign = {
|
||
sModuleName : htTmp.module,
|
||
sMID : htTmp.mid,
|
||
sUseMobile : htTmp.use_mobile,
|
||
sLayoutSrl : sLayoutSrl,
|
||
sLayoutTitle : sLayoutTitle,
|
||
sSkinName : sSkinName,
|
||
sSkinTitle : sSkinTitle,
|
||
sTmpSkinName : "",
|
||
htData : {}
|
||
};
|
||
|
||
var $itemList = $panel.find('._itemList');
|
||
$itemList.html("");
|
||
$itemList.append($.tmpl( "design_layoutItem", {
|
||
LayoutName: sLayoutTitle
|
||
}));
|
||
|
||
// if the module type has no skin support, do not even display the option.
|
||
if($._xeAdminVar.htAllModules[htInfo.sModuleType] && $._xeAdminVar.htAllModules[htInfo.sModuleType].no_skin !== "Y"){
|
||
$itemList.append($.tmpl( "deisgn_skinItem", {
|
||
ModuleType : htInfo.sModuleType,
|
||
ModuleTypeTitle : $._xeAdminVar.htAllModules[htInfo.sModuleType].title,
|
||
SkinTitle : sSkinTitle
|
||
}
|
||
));
|
||
}
|
||
|
||
// If mobile view is disabled for the menu, display the mobile setup screen accordingly
|
||
if(htDesign.sUseMobile !== 'Y'){
|
||
$('#design').addClass('_mobile_view_disabled').find('.mvOption>:checkbox').removeAttr('checked');
|
||
}else{
|
||
$('#design').removeClass('_mobile_view_disabled').find('.mvOption>:checkbox').attr('checked','checked');
|
||
}
|
||
|
||
updateSelectedDesign(htDesign);
|
||
});
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
|
||
if(!$._xeAdminVar.htSiteDefaultLayout || !$._xeAdminVar.htSiteDefaultLayout[sMode]){
|
||
var $this = $(this);
|
||
setTimeout(function(){
|
||
$this.trigger('tab_change', [nIdx, $el]);
|
||
}, 10);
|
||
return false;
|
||
}
|
||
$.exec_json("menu.getMenuAdminInstalledMenuType", {}, function(htData){
|
||
setItemTypes(htData.menu_types);
|
||
setAllModules(htData.all_modules);
|
||
|
||
var sLayoutTitle = $._xeAdminVar.htSiteDefaultLayout[sMode].title;
|
||
$list = $('#design').find('._itemList');
|
||
$list.html("").append($.tmpl( "design_layoutItem", {LayoutName: sLayoutTitle}));
|
||
|
||
var item;
|
||
var sModuleTitle;
|
||
var sSkinName, sSkinTitle;
|
||
for(var sModuleName in $._xeAdminVar.htItemTypes){
|
||
if(! $._xeAdminVar.htItemTypes.hasOwnProperty(sModuleName)) continue;
|
||
if(sModuleName === "_SHORTCUT") continue;
|
||
|
||
item = $._xeAdminVar.htAllModules[sModuleName];
|
||
if(!item) continue;
|
||
|
||
if(item.no_skin === "Y") continue;
|
||
|
||
sModuleTitle = item.title;
|
||
|
||
if(nIdx === 0){
|
||
// PC
|
||
sSkinName = item.defaultSkin.skin;
|
||
sSkinTitle = item.defaultSkin.title;
|
||
}else{
|
||
// mobile
|
||
sSkinName = item.defaultMobileSkin.skin;
|
||
sSkinTitle = item.defaultMobileSkin.title;
|
||
}
|
||
|
||
|
||
$list.append($.tmpl( "deisgn_skinItem", {
|
||
ModuleType : sModuleName,
|
||
ModuleTypeTitle : sModuleTitle,
|
||
//SkinName : sSkinName.
|
||
SkinTitle : sSkinTitle
|
||
}));
|
||
}
|
||
|
||
jQuery.exec_json("layout.getLayoutAdminSiteDefaultLayout", {
|
||
site_srl : 0,
|
||
type : sMode
|
||
}, function(htData){
|
||
$._xeAdminVar.htSiteDefaultLayout[sMode].layout_srl = htData.layout_srl;
|
||
$._xeAdminVar.htSiteDefaultLayout[sMode].title = htData.title;
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign = {
|
||
sModuleName : "",
|
||
sMID : "",
|
||
sLayoutSrl : $._xeAdminVar.htSiteDefaultLayout[sMode].layout_srl,
|
||
sLayoutTitle : $._xeAdminVar.htSiteDefaultLayout[sMode].title,
|
||
sSkinName : "",
|
||
sSkinTitle : "",
|
||
htData : {}
|
||
};
|
||
|
||
//htDesign.sLayoutSrl = htDesign.htLayoutSrl[sMode];
|
||
//htDesign.sSkinName = htDesign.htSkin[sMode];
|
||
|
||
//.//
|
||
//updatePreview(htDesign);
|
||
updateSelectedDesign(htDesign);
|
||
|
||
//scrollToRight();
|
||
});
|
||
|
||
});
|
||
<!--@end-->
|
||
});
|
||
function loadLayoutInfo(){
|
||
// Site Default Layout Info
|
||
$._xeAdminVar.htSiteDefaultLayout = {};
|
||
jQuery.exec_json("layout.getLayoutAdminSiteDefaultLayout", {
|
||
site_srl : 0,
|
||
type : "P"
|
||
}, function(htData){
|
||
$._xeAdminVar.htSiteDefaultLayout.P = {
|
||
layout_srl : htData.layout_srl,
|
||
title : htData.layout_srl > 0 ? htData.title : xe.lang.no_use_layout
|
||
}
|
||
});
|
||
jQuery.exec_json("layout.getLayoutAdminSiteDefaultLayout", {
|
||
site_srl : 0,
|
||
type : "M"
|
||
}, function(htData){
|
||
$._xeAdminVar.htSiteDefaultLayout.M = {
|
||
layout_srl : htData.layout_srl,
|
||
title : htData.layout_srl > 0 ? htData.title : xe.lang.no_use_layout
|
||
}
|
||
});
|
||
}
|
||
loadLayoutInfo();
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
$('#design').bind('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
if($._xeAdminVar.sOpenDeisgnWith && $._xeAdminVar.sOpenDeisgnWith === "M"){
|
||
$('#design .x_tabbable a[href="#mobile"]').click();
|
||
}else{
|
||
$('#design .x_tabbable a[href="#pc"]').click();
|
||
}
|
||
|
||
$._xeAdminVar.sOpenDeisgnWith = "P";
|
||
});
|
||
$('#design').bind("after-show", function(){
|
||
scrollToRight();
|
||
});
|
||
|
||
$('#design .mvOption>:checkbox').change(function(){
|
||
//var $design = $('#design');
|
||
var sYN_useMobile;
|
||
|
||
if($(this).is(':checked')){
|
||
sYN_useMobile = "Y";
|
||
//$design.removeClass('_mobile_view_disabled').find('.nav').show();
|
||
} else {
|
||
sYN_useMobile = "N";
|
||
//$design.addClass('_mobile_view_disabled').find('.nav').hide();
|
||
}
|
||
jQuery.exec_json("module.procModuleAdminUpdateUseMobile", {
|
||
menu_item_srl : $._xeAdminVar.sSelectedMenuSrl,
|
||
use_mobile : sYN_useMobile
|
||
}, function(htData){
|
||
$._xeAdminVar.sOpenDeisgnWith = "M";
|
||
$('#design').show();
|
||
});
|
||
});
|
||
|
||
$('#layout ._save').click(function(ev){
|
||
ev.preventDefault();
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var sMenuId = $._xeAdminVar.sSelectedMenuSrl;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
var htParam = {
|
||
target_module_srl : htInfo.module_srl,
|
||
skin_type : sMode,
|
||
layout_srl : htDesign.sLayoutSrl
|
||
};
|
||
|
||
jQuery.exec_json("module.procModuleAdminSetDesignInfo", htParam, function(htData){
|
||
$.xeMsgBox.alert(xe.lang.success_saved);
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
$._xeAdminVar.sOpenDeisgnWith = sMode;
|
||
$('#design').show();
|
||
});
|
||
});
|
||
|
||
$('#skin ._save').click(function(ev){
|
||
ev.preventDefault();
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var sMenuId = $._xeAdminVar.sSelectedMenuSrl;
|
||
var htInfo = htNodeInfo[sMenuId];
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
var sSkinName = htDesign.sSkinName;
|
||
var ynSkinFix = (sSkinName === "")?"N":"Y";
|
||
var htParam = {
|
||
target_module_srl : htInfo.module_srl,
|
||
skin_type : sMode,
|
||
is_skin_fix : ynSkinFix,
|
||
skin_name : sSkinName,
|
||
skin_vars : "{}"
|
||
};
|
||
|
||
jQuery.exec_json("module.procModuleAdminSetDesignInfo", htParam, function(htData){
|
||
$.xeMsgBox.alert(xe.lang.success_saved);
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
$._xeAdminVar.sOpenDeisgnWith = sMode;
|
||
$('#design').show();
|
||
});
|
||
});
|
||
<!--@end-->
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
$('#design').bind('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
//$('#design').addClass('_mobile_view_disabled').find('.mvOption>:checkbox').removeAttr('checked');
|
||
//loadInstalledLayoutList("P", function(){
|
||
if($._xeAdminVar.sOpenDeisgnWith && $._xeAdminVar.sOpenDeisgnWith === "M"){
|
||
$('#design .x_tabbable a[href="#mobile"]').click();
|
||
}else{
|
||
$('#design .x_tabbable a[href="#pc"]').click();
|
||
}
|
||
|
||
//});
|
||
});
|
||
$('#design ._btn_save').click(function(ev){
|
||
ev.preventDefault();
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
//var sLayoutSrl = $._xeAdminVar.htSelectedMenuDesign.htLayoutSrl[sMode];
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
var htSkins = {};
|
||
var item;
|
||
for(var sModuleName in $._xeAdminVar.htItemTypes){
|
||
if(! $._xeAdminVar.htItemTypes.hasOwnProperty(sModuleName)) continue;
|
||
if(sModuleName === "_SHORTCUT") continue;
|
||
|
||
item = $._xeAdminVar.htAllModules[sModuleName];
|
||
if (!item) continue;
|
||
sModuleTitle = item.title;
|
||
|
||
htSkins[sModuleName] = (sMode === "P") ? item.defaultSkin.skin : item.defaultMobileSkin.skin;
|
||
}
|
||
|
||
var htParam = {
|
||
site_srl : 0,
|
||
layout_srl : htDesign.sLayoutSrl?htDesign.sLayoutSrl:"0",
|
||
target_type : sMode,
|
||
module_skin : $.stringify(htSkins)
|
||
};
|
||
|
||
//console.log(htParam);
|
||
|
||
jQuery.exec_json("admin.procAdminInsertDefaultDesignInfo", htParam, function(htData){
|
||
$.xeMsgBox.alert(xe.lang.success_saved);
|
||
$('#design').show();
|
||
});
|
||
});
|
||
|
||
<!--@end-->
|
||
|
||
$("#tmpl_menuTypeItem").template( "menuTypeItem" );
|
||
$('#add').bind("show", function(){
|
||
fillInInstalledMenuList();
|
||
});
|
||
$('#add').bind("after-show", function(){
|
||
scrollToRight();
|
||
});
|
||
function fillInInstalledMenuList(){
|
||
$.exec_json("menu.getMenuAdminInstalledMenuType", {}, function(htData){
|
||
//console.log(htData);
|
||
|
||
var sResult = "";
|
||
setItemTypes(htData.menu_types);
|
||
setAllModules(htData.all_modules);
|
||
//$._xeAdminVar.htItemTypes = htData.menu_types;
|
||
|
||
var item;
|
||
var sModuleTitle;
|
||
for(var sModuleName in $._xeAdminVar.htItemTypes){
|
||
//item = htData.menu_types[i];
|
||
if(!$._xeAdminVar.htItemTypes.hasOwnProperty(sModuleName)) continue;
|
||
|
||
item = $._xeAdminVar.htAllModules[sModuleName];
|
||
if(!item){
|
||
continue;
|
||
}
|
||
sModuleTitle = item.title;
|
||
//console.log(item);
|
||
|
||
sResult += $.tmpl( "menuTypeItem", {
|
||
ModuleName : sModuleName,
|
||
ModuleTitle : sModuleTitle
|
||
} ).get()[0].outerHTML;
|
||
}
|
||
|
||
//sResult += '<li><a href="#add_menu" data-admin-show="#add_menu" data-param=\'{ "moduleName":"", "moduleTitle":"URL 링크" }\'>URL 링크 <i class="x_icon-circle-arrow-right"></i></a></li>';
|
||
$('#add ._itemList').html(sResult);
|
||
});
|
||
}
|
||
$('#design ._btn_cancel').click(function(ev){
|
||
ev.preventDefault();
|
||
|
||
$('#design').show();
|
||
});
|
||
|
||
$('#design').bind('hide', function(e){
|
||
if(e.target == this){
|
||
$._xeAdminVar.htPrevSetting = {};
|
||
}
|
||
});
|
||
function updateSelectedDesign(htDesign){
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
/*
|
||
$._xeAdminVar.htSiteDefaultLayout.P = {
|
||
layout_srl : htData.layout_srl,
|
||
title : htData.title
|
||
}
|
||
*/
|
||
var sLayoutTitle;
|
||
|
||
switch(htDesign.sLayoutSrl){
|
||
case -1:
|
||
case "-1":
|
||
sLayoutTitle = $._xeAdminVar.htSiteDefaultLayout[sMode].title;
|
||
break;
|
||
case "":
|
||
case 0:
|
||
case "0":
|
||
sLayoutTitle = xe.lang.no_use_layout;
|
||
break;
|
||
default:
|
||
sLayoutTitle = htDesign.sLayoutTitle;
|
||
}
|
||
|
||
var sSkinTitle = htDesign.sSkinTitle;
|
||
var sSkinName = htDesign.sSkinName;
|
||
if(sSkinName == ""){
|
||
var sModuleType = htDesign.sModuleName==="page"?"ARTICLE":htDesign.sModuleName;
|
||
if($._xeAdminVar.htAllModules[sModuleType]){
|
||
if(sMode === "P"){
|
||
sSkinTitle = $._xeAdminVar.htAllModules[sModuleType].defaultSkin.title;
|
||
}else{
|
||
sSkinTitle = $._xeAdminVar.htAllModules[sModuleType].defaultMobileSkin.title;
|
||
}
|
||
}
|
||
}
|
||
|
||
if(!sSkinTitle){
|
||
sSkinTitle = '{$lang->no_skin}';
|
||
}
|
||
|
||
$('#design ._layoutName').text(sLayoutTitle);
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
$('#design ._skinTitle').text(sSkinTitle);
|
||
<!--@end-->
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
$('#design .active ._skinTitle').text(sSkinTitle);
|
||
<!--@end-->
|
||
|
||
updatePreview(htDesign);
|
||
}
|
||
function updatePreview(htParam){
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
if(!$._xeAdminVar.bSiteDesignMode && (sMode === "M" && $._xeAdminVar.htSelectedMenuDesign.sUseMobile !== 'Y')) return;
|
||
|
||
// ?act=dispLayoutPreviewWithModule&module_name=모듈이름&target_mid=모듈ID&layout_srl=레이아웃srl&skin=스킨이름&skin_type=M/P
|
||
var sURL = './?act=dispLayoutPreviewWithModule&module_name='+htParam.sModuleName+'&target_mid='+htParam.sMID+'&layout_srl='+htParam.sLayoutSrl+'&skin='+htParam.sSkinName+'&skin_type='+sMode;
|
||
|
||
$('._preview_form').attr('action', sURL);
|
||
|
||
var sTarget = (sMode === "P")?"_pc_preview_ifr":"_mobile_preview_ifr";
|
||
|
||
// somehow, Firefox doesn't recognize the visibility change of the iframe without this line and opens up a new window to submit
|
||
var tmp = ($("iframe[name="+sTarget+"]").is(':visible'));
|
||
|
||
$('._preview_form').attr('target', sTarget);
|
||
$('._preview_form').submit();
|
||
|
||
$('._preview_form').attr('target', "xe_preview");
|
||
|
||
var $iframe = $("iframe[name="+sTarget+"]");
|
||
var $container = $iframe.next('i');
|
||
var $text = $container.children('span');
|
||
var $zoom = $container.next('input');
|
||
$text.hide();
|
||
$container.removeClass('on_message');
|
||
$zoom.hide();
|
||
$container.addClass('loading');
|
||
}
|
||
|
||
$('iframe[name=_pc_preview_ifr], iframe[name=_mobile_preview_ifr]').bind("load", function(){
|
||
var $this = $(this);
|
||
var $errElm = $('#preview_error', $this.contents());
|
||
var message = $errElm.text();
|
||
var $container = $this.next('i');
|
||
var $text = $container.children('span');
|
||
var $zoom = $container.next('input');
|
||
|
||
if($errElm.length){
|
||
$text.text(message).show();
|
||
$container.addClass('on_message');
|
||
$container.removeClass('loading');
|
||
}else{
|
||
$zoom.show();
|
||
$container.removeClass('loading');
|
||
}
|
||
});
|
||
|
||
$('._pc_preview_open').click(function(ev){
|
||
window.open($('input[name=_pc_preview_ifr]').attr('src'), "xe_preview", "resizable=yes,width=" + jQuery('body').width() + ",height=" + jQuery('body').height());
|
||
//ev.preventDefault();
|
||
//
|
||
});
|
||
$('._mobile_preview_open').click(function(ev){
|
||
window.open($('input[name=_mobile_preview_ifr]').attr('src'), "xe_preview", "resizable=yes,width=480,height=800");
|
||
//ev.preventDefault();
|
||
//
|
||
});
|
||
|
||
$('#layout ._chkUseDefaultLayout').click(function(){
|
||
var $this = $(this);
|
||
if($this.is(':checked')){
|
||
$this.attr('checked','checked').parent().css('fontWeight','bold');
|
||
} else {
|
||
$this.removeAttr('checked').parent().css('fontWeight','normal');
|
||
}
|
||
updateLayoutListDisplayStatus();
|
||
});
|
||
$('input[type=checkbox].switch').change(function(ev){
|
||
var $this = $(this);
|
||
|
||
if($this.is(':checked')){
|
||
$this.attr('checked','checked');
|
||
} else {
|
||
$this.removeAttr('checked');
|
||
}
|
||
});
|
||
$("#tmpl_layout_list_item_no_layout").template( "layoutListItem_nolayout" );
|
||
$("#tmpl_layout_list_item").template( "layoutListItem" );
|
||
$("#tmpl_layout_list_item_add_new").template( "layoutListItemAddNew" );
|
||
$('#layout').on('show', function(ev){
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
$('#layout .list').show();
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
if(htDesign.sLayoutSrl == -1){
|
||
$('._chkUseDefaultLayout').attr('checked', 'checked').parent().css('fontWeight','bold');
|
||
}else{
|
||
$('._chkUseDefaultLayout').removeAttr('checked').parent().css('fontWeight','normal');
|
||
}
|
||
|
||
//updateLayoutListDisplayStatus();
|
||
//loadInstalledLayoutList("P");
|
||
});
|
||
$('#layout').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
$('#layout .list').on('show', function(){
|
||
|
||
fillInInstalledLayoutList();
|
||
});
|
||
$('#layout').on('hide', function(ev){
|
||
if(this !== ev.target) return;
|
||
});
|
||
function fillInInstalledLayoutList(){
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
loadInstalledLayoutList(sMode);
|
||
}
|
||
|
||
function updateLayoutListDisplayStatus(){
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
$ChkBox = $('#layout ._chkUseDefaultLayout');
|
||
if($ChkBox.prop('checked')){
|
||
$('#layout .list').addClass('disabled').find(':radio').attr('disabled','disabled');
|
||
htDesign.sLayoutSrl = -1;
|
||
|
||
updateSelectedDesign(htDesign);
|
||
}else{
|
||
$('#layout .list').removeClass('disabled').find(':radio').removeAttr('disabled');
|
||
|
||
var $allRadio = $('#layout .list :radio');
|
||
var $selected = $('#layout .list :radio[checked]');
|
||
|
||
// when the layer was first shown, the list is not yet available
|
||
if($allRadio.length){
|
||
if($selected.length){
|
||
$selected.click();
|
||
}else{
|
||
$($('#layout .list :radio')[0]).click();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
// sType: "P", "M" (PC/Mobile)
|
||
function loadInstalledLayoutList(sType, fnCallback){
|
||
var params = {
|
||
site_srl : 0,
|
||
layout_type : sType
|
||
};
|
||
// https://code.google.com/p/xe-core/wiki/LayoutInfo_GET_API
|
||
$.exec_json("layout.getLayoutInstanceListForJSONP", params, function(htData){
|
||
var $elItem, fnTmp;
|
||
var sResult = "";
|
||
var $List = $('#layout ._layout_list');
|
||
$List.html("");
|
||
|
||
var sSelected = "";
|
||
var sSelectedSrl = -1;
|
||
|
||
//var htDesign = $._xeAdminVar.htSelectedMenuDesign || {htLayoutSrl:{}};
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
if(htDesign.sLayoutSrl == 0){
|
||
sSelectedSrl = "0";
|
||
sSelected = "selected";
|
||
}
|
||
$List.append($.tmpl("layoutListItem_nolayout", {
|
||
Selected : sSelected
|
||
}).data('LayoutSrl', "0"));
|
||
|
||
$elItem = $.tmpl("layoutListItemAddNew", {
|
||
});
|
||
$List.append($elItem);
|
||
|
||
$._xeAdminVar.htLayoutName = {};
|
||
for(var i=0, nLen=htData.layout_list.length; i<nLen; i++){
|
||
htInfo = htData.layout_list[i];
|
||
|
||
$._xeAdminVar.htLayoutName[htInfo.layout_srl] = htInfo.title;
|
||
|
||
sSelected = "";
|
||
if(htDesign.sLayoutSrl == htInfo.layout_srl){
|
||
sSelectedSrl = htInfo.layout_srl;
|
||
sSelected = "selected";
|
||
}
|
||
|
||
$elItem = $.tmpl("layoutListItem", {
|
||
Title : htInfo.title,
|
||
ScreenShotURL : htInfo.thumbnail,
|
||
Selected : sSelected,
|
||
LayoutSrl : htInfo.layout_srl
|
||
}).data('LayoutSrl', htInfo.layout_srl).data('LayoutTitle', htInfo.title);
|
||
|
||
|
||
$List.append($elItem);
|
||
}
|
||
|
||
$List.find('.selected input').attr('checked', 'checked');
|
||
|
||
updateLayoutListDisplayStatus();
|
||
|
||
if(typeof fnCallback === "function") fnCallback();
|
||
|
||
});
|
||
/*
|
||
<li class="${Selected}">
|
||
<label><input type="radio" name="layout_item" title="${Title}"> ${Title}</label>
|
||
<button type="button" class="item" title="클릭하면 레이아웃이 적용됩니다.">
|
||
<img src="${ScreenShotURL}">
|
||
</button>
|
||
<ul>
|
||
<li><a href="#layoutSetup">설정 <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><a href="#layoutHTML">HTML/CSS <i class="x_icon-circle-arrow-right"></i></a></li>
|
||
<li><button type="button" onClick="alert('\'엔터프라이즈[2]\' 레이아웃이 생성 됐습니다.')">복사본 생성</button></li>
|
||
<li><button type="button" onClick="confirm('\'엔터프라이즈\' 레이아웃을 정말 삭제하시겠습니까? \'고급기능\'에서 다시 생성할 수 있습니다.')">삭제</button></li>
|
||
</ul>
|
||
</li>
|
||
*/
|
||
}
|
||
$('#layout').on('click', 'button._duplicateLayout', function(){
|
||
var sLayoutSrl = $(this).closest('li._layoutItem').data('LayoutSrl');
|
||
|
||
var htNames = $._xeAdminVar.htLayoutName;
|
||
var htNamesAsKey = {};
|
||
var sName = htNames[sLayoutSrl].replace(/\(\d+\)$/, '');
|
||
for(var sKey in htNames){
|
||
if(!htNames.hasOwnProperty(sKey)) continue;
|
||
|
||
htNamesAsKey[htNames[sKey]] = true;
|
||
}
|
||
var sCurName;
|
||
for(var i=2; i<9999999; i++){
|
||
sCurName = sName+"("+i+")";
|
||
|
||
if(!htNamesAsKey[sCurName]) break;
|
||
}
|
||
|
||
$.xeMsgBox.confirmDialog({
|
||
sTitle : xe.lang.input_new_layout_name,
|
||
|
||
sText : '<input type="text" name="layout_name" style="width: 95%"/><br/><div style="text-align:right">* ' + xe.lang.skip_new_layout_name + '</div>',
|
||
|
||
bSmall: true,
|
||
|
||
fnOnOK : function(){
|
||
var sTitle = $.xeMsgBox.$msgBox.find('input[type="text"]').val();
|
||
$.exec_json("layout.procLayoutAdminCopyLayout", {
|
||
layout_srl : sLayoutSrl,
|
||
title : sTitle.split(',')
|
||
}, function(htData){
|
||
fillInInstalledLayoutList();
|
||
});
|
||
},
|
||
|
||
fnOnShow : function(){
|
||
setTimeout(function(){
|
||
$.xeMsgBox.$msgBox.find('input[type="text"]').val(sCurName).focus().select();
|
||
}, 10);
|
||
}
|
||
});
|
||
});
|
||
$('#layout').on('click', 'button._deleteLayout', function(){
|
||
var $item = $($(this).closest('li._layoutItem'));
|
||
var sLayoutSrl = $item.data('LayoutSrl');
|
||
var $thumbnail = $item.find('img._thumbnail').clone();
|
||
var $label = $item.find('label');
|
||
|
||
$thumbnail.css('width', '110px');
|
||
$thumbnail.css('height', '78px');
|
||
$thumbnail.css('border', '1px solid #888');
|
||
$thumbnail.css('padding', '3px');
|
||
|
||
var $text = $('<div style="float:right;width:240px;text-align:left"></div>');
|
||
$text.text($label.text());
|
||
$.xeMsgBox.confirmDialog({
|
||
sTitle : xe.lang.confirm_delete,
|
||
|
||
sText : $thumbnail.outerHTML() + $text.html(),
|
||
|
||
bSmall: true,
|
||
|
||
bDanger: true,
|
||
|
||
fnOnOK : function(){
|
||
$.exec_json("layout.procLayoutAdminDelete", {
|
||
layout_srl : sLayoutSrl
|
||
}, function(htData){
|
||
fillInInstalledLayoutList();
|
||
});
|
||
}
|
||
});
|
||
});
|
||
|
||
$('#layout').on('click', 'button._btnScreenshot', function(){
|
||
$(this).closest('li').find('input[name=layout_item]').click();
|
||
});
|
||
$('#layout ul._layout_list').on('click', 'li._layoutItem', function(ev){
|
||
$(ev.target).find('input[name=layout_item]').click();
|
||
});
|
||
$('#layout').on('click', 'input[name=layout_item]', function(){
|
||
$('#layout').nextAll().hide();
|
||
|
||
$('#layout').find('li.selected').removeClass('selected').find('input[name="layout_item"]').removeAttr('checked');
|
||
$(this).attr('checked','checked').closest('li').addClass('selected');
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
var sLayoutSrl = $(this).closest('li').data('LayoutSrl');
|
||
var sLayoutTitle = $(this).closest('li').data('LayoutTitle');
|
||
htDesign.sLayoutSrl = sLayoutSrl;
|
||
htDesign.sLayoutTitle = sLayoutTitle;
|
||
//htDesign.sModuleName = '';
|
||
|
||
updateSelectedDesign(htDesign);
|
||
})
|
||
$('#layoutSetup').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
//console.log($._htMarkupActionParam.sLayoutSrl);
|
||
var sLayoutSrl = $._htMarkupActionParam.sLayoutSrl;
|
||
$.exec_json("layout.getLayoutAdminSetInfoView", {layout_srl: sLayoutSrl}, function(htData){
|
||
//console.log(htData);
|
||
//console.log(htData.html.match(/<script[^>]*>/));
|
||
//htData.html = htData.html.replace(/<script[^>]*><\/script>/, "");
|
||
$('#layoutSetup').find('._contents').html(htData.html);
|
||
$('#layoutSetup').find('.lang_code').xeApplyMultilingualUI();
|
||
|
||
var $configForm = $('#config_form');
|
||
$configForm.on('submit', function(ev){
|
||
ev.preventDefault();
|
||
|
||
var sUrl = $('#config_form').attr('action');
|
||
$.post( sUrl, $(this).serialize(),
|
||
function( strRes ) {
|
||
var htData = typeof strRes === 'string' ? $.parseJSON(strRes) : strRes;
|
||
$('#layout').show();
|
||
//console.log(999, strRes, htData);
|
||
}
|
||
);
|
||
})
|
||
|
||
scrollToRight();
|
||
});
|
||
})
|
||
$('#layoutSetup').bind('after-show', function(ev){
|
||
scrollToRight();
|
||
});
|
||
top.refreshLayoutList = function(htData){
|
||
$('#layout').show();
|
||
}
|
||
|
||
function doDelete(sMenuSrl, bForce, sSelectOnload, deleteModule){
|
||
var params = {
|
||
menu_item_srl : sMenuSrl,
|
||
is_force : bForce ? 'Y' : 'N',
|
||
delete_module : deleteModule ? deleteModule : 'N'
|
||
};
|
||
|
||
$.exec_json("menu.procMenuAdminDeleteItem", params, function(htData){
|
||
if(htData.error === -1001){
|
||
$.xeMsgBox.confirmDialog({
|
||
sTitle : xe.lang.confirm_delete_all_sub_items_title,
|
||
|
||
sText : xe.lang.confirm_delete_all_sub_items,
|
||
|
||
bSmall : true,
|
||
|
||
bDanger : true,
|
||
|
||
fnOnOK : function(){
|
||
doDelete(sMenuSrl, true, sSelectOnload, deleteModule);
|
||
}
|
||
});
|
||
|
||
return;
|
||
}
|
||
|
||
// select the parent of the menu being deleted
|
||
$._xeAdminVar.sSelectOnload = sSelectOnload;
|
||
loadSiteMap();
|
||
});
|
||
}
|
||
|
||
$('._deleteMenu').click(function(){
|
||
var htInfo = htNodeInfo[$._xeAdminVar.sSelectedMenuSrl];
|
||
if(htInfo.is_start_module){
|
||
alert(xe.lang.msg_cannot_delete_homemenu);
|
||
return;
|
||
}
|
||
|
||
var tmpTitle = '';
|
||
var tmpText = '';
|
||
if(htInfo.is_shortcut == 'Y')
|
||
{
|
||
tmpTitle = xe.lang.confirm_shortcut_delete;
|
||
tmpText = '<p>' + xe.lang.confirm_shortcut_desc + '</p>';
|
||
}
|
||
else
|
||
{
|
||
tmpTitle = xe.lang.confirm_menu_delete;
|
||
tmpText = '<p>' + xe.lang.confirm_menu_delete_desc + '</p>' +
|
||
'<p><label><input type="radio" name="delete_module" value="N" checked="checked"> ' + xe.lang.confirm_delete_not_contents + '</label>' +
|
||
'<label><input type="radio" name="delete_module" value="Y"> ' + xe.lang.confirm_delete_all_contents + '</label></p>';
|
||
}
|
||
|
||
$.xeMsgBox.confirmDialog({
|
||
sTitle : tmpTitle,
|
||
|
||
sText : tmpText,
|
||
|
||
bDanger : true,
|
||
|
||
fnOnOK : function(){
|
||
var sSelectedMenuSrl = $._xeAdminVar.sSelectedMenuSrl;
|
||
var sParentSrl = htNodeInfo[sSelectedMenuSrl].parent_srl;
|
||
var deleteModule = $.xeMsgBox.$msgBox.find('input[type="radio"]:checked').val();
|
||
doDelete(sSelectedMenuSrl, false, sParentSrl, deleteModule);
|
||
},
|
||
});
|
||
});
|
||
|
||
$("#tmpl_skin_list_item").template( "skinListItem");
|
||
$("#tmpl_skin_list_item_no_skin").template( "skinListItem_noskin");
|
||
$("#tmpl_skin_list_item_add_new").template( "skinListItemAddNew" );
|
||
$('#skin').on('show', function(ev){
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
htDesign.sModuleName = $._htMarkupActionParam.moduleType;
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
if(sMode == "P"){
|
||
htDesign.sSkinName = $._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultSkin.skin;
|
||
htDesign.sSkinTitle = $._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultSkin.title;
|
||
}else{
|
||
htDesign.sSkinName = $._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultMobileSkin.skin;
|
||
htDesign.sSkinTitle = $._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultMobileSkin.title;
|
||
}
|
||
<!--@end-->
|
||
|
||
$ChkBox = $('#skin ._chkUseDefault');
|
||
if($._xeAdminVar.htSelectedMenuDesign.sSkinName == ""){
|
||
$ChkBox.attr('checked', 'checked');
|
||
}else{
|
||
$ChkBox.removeAttr('checked');
|
||
}
|
||
|
||
$('#skin .list').show();
|
||
//updateSkinListDisplayStatus();
|
||
});
|
||
$('#skin').on('after-show', function(ev){
|
||
scrollToRight();
|
||
});
|
||
$('#skin').on('hide', function(ev){
|
||
if(this !== ev.target){
|
||
return;
|
||
}
|
||
});
|
||
$('#skin .list').on('show', function(){
|
||
fillInInstalledSkinList();
|
||
});
|
||
function fillInInstalledSkinList(){
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
loadInstalledSkinList(sMode);
|
||
}
|
||
|
||
$('#skin ._chkUseDefault').click(function(){
|
||
updateSkinListDisplayStatus();
|
||
});
|
||
function updateSkinListDisplayStatus(){
|
||
$ChkBox = $('#skin ._chkUseDefault');
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
if($ChkBox.is(':visible') && $ChkBox.prop('checked')){
|
||
htDesign.sTmpSkinName = htDesign.sSkinName;
|
||
|
||
htDesign.sSkinName = "";
|
||
htDesign.sSkinTitle = "";
|
||
|
||
$('#skin .list').addClass('disabled');
|
||
$ChkBox.parent().css('fontWeight','bold');
|
||
|
||
updateSelectedDesign(htDesign);
|
||
}else{
|
||
$('#skin .list').removeClass('disabled');
|
||
$ChkBox.parent().css('fontWeight','normal');
|
||
|
||
$('#skin .list .selected').click();
|
||
}
|
||
}
|
||
// sType: "P", "M" (PC/Mobile)
|
||
function loadInstalledSkinList(sType){
|
||
//params['module_name'] = 모듈이름;
|
||
//getModuleSkinInfoList
|
||
|
||
var params = {
|
||
//module_name : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sModuleType,
|
||
module_type : $._xeAdminVar.htSelectedMenuDesign.sModuleName,
|
||
skin_type : sType
|
||
};
|
||
// https://code.google.com/p/xe-core/wiki/ModuleSkinInfo_GET_API
|
||
$.exec_json("module.getModuleSkinInfoList", params, function(htData){
|
||
//console.log(htData);
|
||
|
||
//skin_info_list: Object
|
||
|
||
var sResult = "";
|
||
var $List = $('#skin ._list');
|
||
$List.html("");
|
||
|
||
var sSelected = "";
|
||
var sSelectedSkinName = "";
|
||
var sSelectedSkinTitle = "";
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
/*
|
||
$List.append($.tmpl("skinListItem_noskin", {
|
||
Selected : sSelected
|
||
}).data('SkinName', ""));
|
||
*/
|
||
//console.log(htDesign.sSkinName);
|
||
|
||
$elItem = $.tmpl("skinListItemAddNew", {
|
||
});
|
||
$List.append($elItem);
|
||
|
||
var sTmpName;
|
||
for(var sName in htData.skin_info_list){
|
||
if(!htData.skin_info_list.hasOwnProperty(sName)) continue;
|
||
if(sName == '/USE_DEFAULT/') continue;
|
||
|
||
//$._xeAdminVar.htItemTypes[sType][sName].S = htInfo.title;
|
||
//console.log(htDesign.sSkinName);
|
||
|
||
// if nothing is selected, select the first one.
|
||
//sTmpName = htDesign.sTmpSkinName || sName;
|
||
//console.log(22, sTmpName);
|
||
//if(!htDesign.sSkinName){
|
||
// htDesign.sSkinName = sTmpName;
|
||
//}
|
||
|
||
htInfo = htData.skin_info_list[sName];
|
||
//for(var i=0, nLen=htData.skin_info_list.length; i<nLen; i++){
|
||
htInfo.sName = sName;
|
||
htInfo.sTitle = htInfo.title;
|
||
|
||
sSelected = "";
|
||
//console.log(33, sTmpName, sName, htDesign.sSkinName, htInfo.sName);
|
||
var sSkinName = htDesign.sSkinName;
|
||
if(!sSkinName){
|
||
sSkinName = sType == 'P' ? $._xeAdminVar.htAllModules[htDesign.sModuleName].defaultSkin.skin : $._xeAdminVar.htAllModules[htDesign.sModuleName].defaultMobileSkin.skin;
|
||
}
|
||
if(sSkinName == htInfo.sName){
|
||
//htDesign.sTmpSkinName = "";
|
||
|
||
sSelectedSkinName = htInfo.sName;
|
||
sSelectedSkinTitle = htInfo.sTitle;
|
||
sSelected = "selected";
|
||
}
|
||
// console.log(htInfo.title);
|
||
$List.append($.tmpl("skinListItem", {
|
||
Title : htInfo.title,
|
||
ScreenShotURL : htInfo.thumbnail?htInfo.thumbnail:'./modules/layout/tpl/img/noThumbnail.png',
|
||
Selected : sSelected,
|
||
SkinName : htInfo.sName
|
||
}).data('SkinName', htInfo.sName).data('SkinTitle', htInfo.sTitle));
|
||
}
|
||
//console.log(sSelectedSkinName);
|
||
|
||
$List.find('.selected input').attr('checked', 'checked');
|
||
//console.log(sSelectedSrl);
|
||
|
||
htDesign.sSkinName = sSelectedSkinName;
|
||
htDesign.sSkinTitle = sSelectedSkinTitle;
|
||
htDesign.htSkinData = {};
|
||
updateSelectedDesign(htDesign);
|
||
|
||
updateSkinListDisplayStatus();
|
||
});
|
||
}
|
||
$('#skin').on('click', 'button._btnScreenshot', function(){
|
||
$(this).closest('li').find('input[name=skin_item]').click();
|
||
});
|
||
$('#skin ul._list').on('click', 'li._item', function(ev){
|
||
$(ev.target).find('input[name=skin_item]').click();
|
||
});
|
||
$('#skin').on('click', 'input[name=skin_item]', function(){
|
||
$('#skin').find('li.selected').removeClass('selected');
|
||
|
||
var sMode = $._xeAdminVar.htPrevSetting.bMobilePreviewTabOpen?"M":"P";
|
||
|
||
var $item = $(this).closest('li');
|
||
$item.addClass('selected');
|
||
var sSkinName = $item.data('SkinName');
|
||
var sSkinTitle = $item.data('SkinTitle');
|
||
|
||
var htDesign = $._xeAdminVar.htSelectedMenuDesign;
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteDesign')-->
|
||
if(sMode == "P"){
|
||
$._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultSkin.skin = sSkinName;
|
||
$._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultSkin.title = sSkinTitle;
|
||
}else{
|
||
$._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultMobileSkin.skin = sSkinName;
|
||
$._xeAdminVar.htAllModules[$._htMarkupActionParam.moduleType].defaultMobileSkin.title = sSkinTitle;
|
||
}
|
||
<!--@end-->
|
||
|
||
htDesign.sSkinName = sSkinName;
|
||
htDesign.sSkinTitle = sSkinTitle;
|
||
updateSelectedDesign(htDesign);
|
||
});
|
||
$('#skinSetup').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
scrollToRight();
|
||
});
|
||
$('#fullSetup').on('show', function(ev){
|
||
if(this !== ev.target) return;
|
||
|
||
$(this).find('.lang_code').xeApplyMultilingualUI();
|
||
// console.log($(this).find('.lang_code'));
|
||
});
|
||
$('#fullSetup').bind("after-show", function(ev){
|
||
scrollToRight();
|
||
});
|
||
//.//
|
||
$('#fullSetup ._save').click(function(ev){
|
||
$('#fullSetup form').submit();
|
||
});
|
||
|
||
var d365 = new Date();
|
||
d365.setTime(d365.getTime() + 60*60*24*356);
|
||
var $quickHelp = $("._quick_help");
|
||
var htQuickHelpMsg = {
|
||
'how_to_modify_menu' : xe.lang.how_to_modify_menu,
|
||
'can_drag_menu' : xe.lang.can_drag_menu,
|
||
'img_uploaded' : xe.lang.img_uploaded,
|
||
'img_deleted' : xe.lang.img_deleted
|
||
};
|
||
function showQuickHelp(sMsgCode){
|
||
$quickHelp.find('._quick_help_nomore').removeAttr('checked');
|
||
if($quickHelp.closeTimer) clearTimeout($quickHelp.closeTimer);
|
||
|
||
if(getCookie('__xe_admin_quick_help_'+sMsgCode)) return;
|
||
|
||
var sMsg = htQuickHelpMsg[sMsgCode];
|
||
$quickHelp.find('._quick_help_msg').html(sMsg);
|
||
$quickHelp.data('code', sMsgCode);
|
||
$quickHelp.fadeIn();
|
||
|
||
$quickHelp.closeTimer = setTimeout(closeQuickHelp, 10000);
|
||
}
|
||
function closeQuickHelp(bNoMore){
|
||
var sMsgCode = $quickHelp.data('code');
|
||
|
||
if(bNoMore){
|
||
setCookie('__xe_admin_quick_help_'+sMsgCode, "true", d365);
|
||
}
|
||
|
||
$quickHelp.fadeOut(1000);
|
||
}
|
||
$quickHelp.on('click', '._quick_help_nomore', function(){
|
||
closeQuickHelp(true);
|
||
});
|
||
|
||
$('#download,#downloadLayout,#downloadSkin').on('click', '._install_this', function(ev){
|
||
var $item = $(this).closest('.item');
|
||
|
||
var sPackageSrl = $item.data('sPackageSrl');
|
||
var sPackageType = $item.data('sItemType');
|
||
|
||
installPackage(sPackageSrl, sPackageType, $item);
|
||
});
|
||
// sPackageType = menu/layout/skin
|
||
function installPackage(sPackageSrl, sPackageType, $item){
|
||
|
||
//act=getAutoinstallAdminIsAuthed
|
||
var params = {};
|
||
params.package_srl = sPackageSrl;
|
||
$.exec_json("admin.getAutoinstallAdminIsAuthed", params, function(htData){
|
||
// FTP 비밀번호 뿐만 아니라 정보가 전혀 없을 경우?
|
||
switch(htData.is_authed){
|
||
case -1:
|
||
$.xeMsgBox.confirmDialog(
|
||
{
|
||
sTitle : xe.lang.need_to_ftp_setup,
|
||
sText : xe.lang.go_to_ftp_setup,
|
||
bSmall : true,
|
||
fnOnOK : function(){
|
||
var sSuccessReturnURL = current_url.setQuery('continue_install_package', sPackageSrl).setQuery('continue_install_package_type', sPackageType);
|
||
window.location.href="./?module=admin&act=dispAdminConfigFtp&success_return_url="+Base64.encode(sSuccessReturnURL);
|
||
}
|
||
}
|
||
);
|
||
return;
|
||
break;
|
||
|
||
case 0:
|
||
$.xeMsgBox.confirmDialog(
|
||
{
|
||
sTitle : xe.lang.need_ftp_password,
|
||
sText : xe.lang.password + ': <input type="password"/>',
|
||
bSmall : true,
|
||
fnOnOK : function(){
|
||
var sPw = $.xeMsgBox.$msgBox.find('input[type="password"]').val();
|
||
setTimeout(function(){
|
||
getInstallInfo(sPackageSrl, sPackageType, sPw, $item);
|
||
}, 0);
|
||
},
|
||
fnOnCancel: function(){
|
||
if($._xeAdminVar.isFromFtpSetup){
|
||
window.location = current_url.setQuery('continue_install_package', '').setQuery('continue_install_package_type', '');
|
||
$._xeAdminVar.isFromFtpSetup = false;
|
||
}
|
||
}
|
||
}
|
||
);
|
||
return;
|
||
break;
|
||
|
||
default:
|
||
break;
|
||
}
|
||
|
||
getInstallInfo(sPackageSrl, sPackageType, ".", $item);
|
||
});
|
||
}
|
||
|
||
function getInstallInfo(sPackageSrl, sPackageType, sPw, $item){
|
||
// get install info
|
||
$.exec_json('autoinstall.getAutoInstallAdminInstallInfo', {
|
||
package_srl: sPackageSrl
|
||
}, function(htData){
|
||
if(!htData) return;
|
||
|
||
// check contain core.
|
||
if(htData.package.contain_core){
|
||
$.xeMsgBox.confirmDialog(
|
||
{
|
||
sTitle : xe.lang.need_core_update,
|
||
sText : xe.lang.need_core_update_continue,
|
||
bSmall : true,
|
||
fnOnOK : function(){
|
||
setTimeout(function(){
|
||
doInstallPackage(htData.package.package_srl, sPackageType, sPw, $item);
|
||
}, 0);
|
||
}
|
||
}
|
||
);
|
||
|
||
return;
|
||
}
|
||
|
||
// pass all packagesrls
|
||
doInstallPackage(htData.package.package_srl, sPackageType, sPw, $item);
|
||
});
|
||
return;
|
||
}
|
||
|
||
function doInstallPackage(sPackageSrl, sPackageType, sPw, $item){
|
||
var htFunc = {
|
||
download: fillInInstalledMenuList,
|
||
downloadLayout: fillInInstalledLayoutList,
|
||
downloadSkin: fillInInstalledSkinList
|
||
};
|
||
|
||
//showFoggy();
|
||
$.xeFoggy.show(true);
|
||
|
||
$.exec_json("admin.procAutoinstallAdminPackageinstall", {
|
||
package_srl : sPackageSrl,
|
||
ftp_password : sPw
|
||
}, function(htData){
|
||
//hideFoggy();
|
||
$.xeFoggy.hide();
|
||
|
||
if($item){
|
||
$item.addClass('installed');
|
||
$item.addClass('up_to_date');
|
||
htFunc[sPackageType]();
|
||
}
|
||
|
||
$.xeMsgBox.alertDialog({
|
||
sText: xe.lang.installation_completed,
|
||
bNobody : true,
|
||
bSmall: true,
|
||
fnOnShow: function(){
|
||
if($._xeAdminVar.isFromFtpSetup){
|
||
setTimeout(function(){ window.location = current_url.setQuery('continue_install_package', '').setQuery('continue_install_package_type', ''); }, 500);
|
||
$._xeAdminVar.isFromFtpSetup = false;
|
||
}else{
|
||
setTimeout(function(){ $.xeMsgBox.$msgBox.find("._ok").trigger('click') }, 500);
|
||
}
|
||
}
|
||
});
|
||
}, function(htData){
|
||
$.xeMsgBox.htOptions.fnOnHide = function(){
|
||
if($._xeAdminVar.isFromFtpSetup){
|
||
window.location = current_url.setQuery('continue_install_package', '').setQuery('continue_install_package_type', '');
|
||
$._xeAdminVar.isFromFtpSetup = false;
|
||
}
|
||
}
|
||
$.xeFoggy.hide();
|
||
});
|
||
}
|
||
top.fullSetupDone = function(htData){
|
||
jQuery('#properties').show();
|
||
jQuery._xeAdminVar.oSetupWin.close();
|
||
}
|
||
|
||
$('a._openFullSetup').click(function(ev){
|
||
if($._xeAdminVar.oSetupWin){
|
||
$._xeAdminVar.oSetupWin.close();
|
||
}
|
||
|
||
$._xeAdminVar.oSetupWin = window.open($._xeAdminVar.sFullSetupUrl, "xe_fullSetup");
|
||
|
||
ev.preventDefault();
|
||
|
||
var t = this;
|
||
setTimeout(function(){
|
||
$(t).blur();
|
||
}, 0);
|
||
/*
|
||
$.exec_json("menu.getMenuAdminDetailSetup", {
|
||
menu_item_srl : htNodeInfo[$._xeAdminVar.sSelectedMenuSrl].sNodeSrl
|
||
}, function(htData){
|
||
//window.open(htData.setupUrl, "xe_fullSetup", "resizable=yes");
|
||
$._xeAdminVar.oSetupWin = window.open(htData.setupUrl, "xe_fullSetup");
|
||
|
||
});
|
||
*/
|
||
|
||
});
|
||
|
||
$('a._siteDesignSetupLink').attr('title', xe.lang.go_to_site_design_setup).click(function(){
|
||
$.xeMsgBox.alert(xe.lang.go_to_site_design_setup);
|
||
});
|
||
// Set #site height fix
|
||
<!--@if(Mobile::isMobileCheckByAgent())-->
|
||
$._xeAdminVar.prevColumn = new Array();
|
||
$._xeAdminVar.prevColumn.push($('#site_map'));
|
||
$('#site').css({ 'display': 'inline-block', 'min-width': '100%', 'box-sizing': 'border-box'});
|
||
$('#site_map').css('display', 'inline-block');
|
||
$('#site > .col').css({
|
||
'box-sizing': 'border-box',
|
||
'width': '100%',
|
||
'margin': 0
|
||
});
|
||
$('#site_map, #add').find('.cnt').css('margin-bottom', '25px');
|
||
|
||
var wHeigh = $(window).height();
|
||
|
||
$('#site > .col').bind('show', function(ev){
|
||
if(ev.target != this) return;
|
||
$(this).css('display', 'inline-block').siblings().css('display', 'none');
|
||
$._xeAdminVar.prevColumn.push(this);
|
||
});
|
||
$('#site > .col').bind('after-show', function(ev){
|
||
if(ev.target != this) return;
|
||
|
||
});
|
||
$('#site > .col').bind('hide', function(ev){
|
||
if(ev.target != this) return;
|
||
if($._xeAdminVar.prevColumn[$._xeAdminVar.prevColumn.length - 1] != this) return;
|
||
$._xeAdminVar.prevColumn.pop();
|
||
var $prev = $($._xeAdminVar.prevColumn[$._xeAdminVar.prevColumn.length - 1]);
|
||
$prev.css('display', 'inline-block');
|
||
});
|
||
<!--@else-->
|
||
$(window).resize(function(){
|
||
var wHeigh = $(window).height();
|
||
$('#site').height(wHeigh - 147).find('>.col').height(wHeigh - 167).find('.cnt').height(wHeigh - 245);
|
||
$('#skinSetup, #add').find('.cnt').height(wHeigh - 272);
|
||
|
||
<!--@if($act == 'dispMenuAdminSiteMap')-->
|
||
$('#site').find('.cnt:first').height(wHeigh - 316);
|
||
<!--@end-->
|
||
}).resize();
|
||
<!--@end-->
|
||
|
||
var sPackageSrl = getParameterByName('continue_install_package');
|
||
var sPackageType = getParameterByName('continue_install_package_type');
|
||
if(sPackageSrl && sPackageType)
|
||
{
|
||
$._xeAdminVar.isFromFtpSetup = true;
|
||
installPackage(sPackageSrl, sPackageType, null);
|
||
}
|
||
|
||
});
|
||
|
||
function getParameterByName(name){
|
||
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
|
||
var regexS = "[\\?&]" + name + "=([^&#]*)";
|
||
var regex = new RegExp(regexS);
|
||
var results = regex.exec(window.location.search);
|
||
if(results == null)
|
||
{
|
||
|
||
return "";
|
||
}
|
||
else
|
||
{
|
||
return decodeURIComponent(results[1].replace(/\+/g, " "));
|
||
}
|
||
}
|
||
|
||
function formatUpdatedDateWithTime(sDate){
|
||
//20120106184020
|
||
//2012-01-06 18:40:20
|
||
return sDate.replace(/(....)(..)(..)(..)(..)(..)/, function(all, year, mon, day, hour, min, sec){
|
||
//return year+"-"+mon+"-"+day+" "+hour+":"+min+":"+sec;
|
||
return year+"-"+mon+"-"+day+" "+hour+":"+min;
|
||
});
|
||
}
|
||
|
||
function formatUpdatedDate(sDate){
|
||
//20120106184020
|
||
//2012-01-06 18:40:20
|
||
return sDate.replace(/(....)(..)(..)(..)(..)(..)/, function(all, year, mon, day, hour, min, sec){
|
||
//return year+"-"+mon+"-"+day+" "+hour+":"+min+":"+sec;
|
||
return year+"-"+mon+"-"+day;
|
||
});
|
||
}
|
||
|
||
top.fullSetupWinLoaded = function(){
|
||
var oWin = jQuery._xeAdminVar.oSetupWin;
|
||
|
||
var $ = oWin.jQuery;
|
||
var $body = $(oWin.document.body);
|
||
|
||
var $form = $body.find('form[enctype="multipart/form-data"]');
|
||
//<iframe name="submitTarget" src="" style="position:absolute; top:-10000px; left:-10000px; width:1025px;height:769px"></iframe>
|
||
var $target = $("<iframe>").attr('name', 'submitTarget').attr('src', '').attr('style', 'position:absolute; top:-10000px; left:-10000px; width:1025px;height:769px');
|
||
$form.append($target);
|
||
|
||
$form.append($("<INPUT>").attr("type", "hidden").attr("name", "xe_js_callback").attr("value", "top.opener.top.fullSetupDone"));
|
||
$form.attr('target', 'submitTarget');
|
||
|
||
//console.log(oWin);
|
||
/*
|
||
oWin.blur();
|
||
setTimeout(oWin.focus, 0);
|
||
*/
|
||
};
|
||
|
||
|
||
jQuery.extend({
|
||
stringify : function stringify(obj) {
|
||
if ("JSON" in window) {
|
||
return JSON.stringify(obj);
|
||
}
|
||
|
||
var t = typeof (obj);
|
||
if (t != "object" || obj === null) {
|
||
// simple data type
|
||
if (t == "string") obj = '"' + obj + '"';
|
||
|
||
return String(obj);
|
||
} else {
|
||
// recurse array or object
|
||
var n, v, json = [], arr = (obj && obj.constructor == Array);
|
||
|
||
for (n in obj) {
|
||
v = obj[n];
|
||
t = typeof(v);
|
||
if (obj.hasOwnProperty(n)) {
|
||
if (t == "string") {
|
||
v = '"' + v + '"';
|
||
} else if (t == "object" && v !== null){
|
||
v = jQuery.stringify(v);
|
||
}
|
||
|
||
json.push((arr ? "" : '"' + n + '":') + String(v));
|
||
}
|
||
}
|
||
|
||
return (arr ? "[" : "{" )
|
||
+ String(json)
|
||
+ (arr ? "]" : "}" );
|
||
}
|
||
}
|
||
});
|
||
//]]>
|
||
</script>
|