mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-16 17:59:55 +09:00
merge from branch luminous (version 1.5.4.2, ~r12561)
git-svn-id: http://xe-core.googlecode.com/svn/trunk@12611 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
2263200ce4
commit
cc47d2b247
196 changed files with 3655 additions and 2033 deletions
|
|
@ -216,6 +216,54 @@
|
|||
return $this->setRedirectUrl(Context::get('error_return_url'), $output);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleanning favorite
|
||||
* @return Object
|
||||
*/
|
||||
function cleanFavorite()
|
||||
{
|
||||
$oModel = getAdminModel('admin');
|
||||
$output = $oModel->getFavoriteList();
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
$favoriteList = $output->get('favoriteList');
|
||||
if(!$favoriteList)
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
||||
$deleteTargets = array();
|
||||
foreach($favoriteList as $favorite)
|
||||
{
|
||||
if($favorite->type == 'module')
|
||||
{
|
||||
$modulePath = './modules/' . $favorite->module;
|
||||
$modulePath = FileHandler::getRealPath($modulePath);
|
||||
if(!is_dir($modulePath))
|
||||
{
|
||||
$deleteTargets[] = $favorite->admin_favorite_srl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(!count($deleteTargets))
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
||||
$args->admin_favorite_srls = $deleteTargets;
|
||||
$output = executeQuery('admin.deleteFavorites', $args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return $output;
|
||||
}
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Enviroment gathering agreement
|
||||
* @return void
|
||||
|
|
|
|||
|
|
@ -462,41 +462,54 @@
|
|||
*/
|
||||
function getSiteAllList()
|
||||
{
|
||||
if(Context::get('domain')) $args->domain = Context::get('domain');
|
||||
$columnList = array('domain', 'site_srl');
|
||||
|
||||
$siteList = array();
|
||||
$output = executeQueryArray('admin.getSiteAllList', $args, $columnList);
|
||||
if($output->toBool()) $siteList = $output->data;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
foreach($siteList as $key => $value)
|
||||
{
|
||||
$args->site_srl = $value->site_srl;
|
||||
$list = $oModuleModel->getModuleSrlList($args);
|
||||
|
||||
if(!is_array($list))
|
||||
{
|
||||
$list = array($list);
|
||||
}
|
||||
|
||||
foreach($list as $k => $v)
|
||||
{
|
||||
if(!is_dir('./modules/' . $v->module))
|
||||
{
|
||||
unset($list[$k]);
|
||||
}
|
||||
}
|
||||
|
||||
if(!count($list))
|
||||
{
|
||||
unset($siteList[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
$this->add('site_list', $siteList);
|
||||
if(Context::get('domain')) $domain = Context::get('domain');
|
||||
$siteList = $this->getAllSitesThatHaveModules($domain);
|
||||
$this->add('site_list', $siteList);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all sites that contain modules
|
||||
* For each site domain and site_srl are retrieved
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
function getAllSitesThatHaveModules($domain = null)
|
||||
{
|
||||
$args = new stdClass();
|
||||
if($domain) $args->domain = $domain;
|
||||
$columnList = array('domain', 'site_srl');
|
||||
|
||||
$siteList = array();
|
||||
$output = executeQueryArray('admin.getSiteAllList', $args, $columnList);
|
||||
if($output->toBool()) $siteList = $output->data;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
foreach($siteList as $key => $value)
|
||||
{
|
||||
$args->site_srl = $value->site_srl;
|
||||
$list = $oModuleModel->getModuleSrlList($args);
|
||||
|
||||
if(!is_array($list))
|
||||
{
|
||||
$list = array($list);
|
||||
}
|
||||
|
||||
foreach($list as $k => $v)
|
||||
{
|
||||
if(!is_dir('./modules/' . $v->module))
|
||||
{
|
||||
unset($list[$k]);
|
||||
}
|
||||
}
|
||||
|
||||
if(!count($list))
|
||||
{
|
||||
unset($siteList[$key]);
|
||||
}
|
||||
}
|
||||
return $siteList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return site count
|
||||
* @param string $date
|
||||
|
|
|
|||
|
|
@ -468,7 +468,7 @@
|
|||
unset($layout_info);
|
||||
$layout_info = $oLayoutModel->getLayout($val->layout_srl);
|
||||
if (!$layout_info) continue;
|
||||
$layout_parse = explode('.', $layout_info->layout);
|
||||
$layout_parse = explode('|@|', $layout_info->layout);
|
||||
if (count($layout_parse) == 2){
|
||||
$thumb_path = sprintf('./themes/%s/layouts/%s/thumbnail.png', $layout_parse[0], $layout_parse[1]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -712,16 +712,16 @@
|
|||
</item>
|
||||
</item>
|
||||
<item name="about_use_ssl">
|
||||
<value xml:lang="ko"><![CDATA['선택적으로'는 회원가입, 정보수정 등의 지정된 동작(action)에서 보안접속(SSL)을 사용합니다.<br /> '항상 사용'은 모든 서비스에 SSL을 사용 합니다.]]></value>
|
||||
<value xml:lang="en"><![CDATA[Select 'Optional' to use SSL for the specified actions such as signing up and changing information.<br /> 'Always' to use SSL for all services.]]></value>
|
||||
<value xml:lang="jp"><![CDATA[「部分的に使う」は、「会員登録/会員情報変更」など指定のアクションでSSLを利用する場合。「常に使う」は、すべてのサービスにSSLを使う場合に選択します。]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中,使用选项应用于所有服务。]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[選擇手動時,在會員註冊或修改資料等動作時才會使用 SSL功能。<br/>選擇開啟時,所有的服務都會使用 SSL功能。]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Si l'on choisit 'Optionnel' , on utilise protocole SSL seulement dans quelques services comme inscription ou modification. Si l'on choisit 'Toujours', on utilise protocole SSL dans tous les services.]]></value>
|
||||
<value xml:lang="ru"><![CDATA[In case of "Optional", SSL will be used for actions such as signing up / changing information. And for "Always", your site will be served only via https]]></value>
|
||||
<value xml:lang="es"><![CDATA[Opcionalmente, la composición de suscripción / editar la información y el uso de SSL especificada en la acción es siempre el uso de SSL para todos los servicios que se utilizarán]]></value>
|
||||
<value xml:lang="tr"><![CDATA['İsteği Bağlı' seçiminde; SSL, kayıt olma/bilgi değiştirme gibi eylemler için kullanılacaktır. 'Her zaman' seçiminde, siteniz sadece http yoluyla hizmet verecektir.]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Nếu bạn chọn 'Tùy chỉnh', SSL sẽ sử dụng và những công việc như đăng kí, sửa thông tin thành viên, .<br />Chỉ chọn 'Luôn luôn' khi Website của bạn đang chạy trên Server có hỗ trợ https.]]></value>
|
||||
<value xml:lang="ko"><![CDATA['선택적으로'는 회원가입, 정보수정 등의 지정된 동작(action)에서 보안접속(SSL)을 사용합니다.<br /> '항상 사용'은 모든 서비스에 SSL을 사용 합니다.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="en"><![CDATA[Select 'Optional' to use SSL for the specified actions such as signing up and changing information.<br /> 'Always' to use SSL for all services.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="jp"><![CDATA[「部分的に使う」は、「会員登録/会員情報変更」など指定のアクションでSSLを利用する場合。「常に使う」は、すべてのサービスにSSLを使う場合に選択します。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[选择性使用选项应用于新用户注册/修改用户信息等已指定的action当中,使用选项应用于所有服务。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[選擇手動時,在會員註冊或修改資料等動作時才會使用 SSL功能。<br/>選擇開啟時,所有的服務都會使用 SSL功能。<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="fr"><![CDATA[Si l'on choisit 'Optionnel' , on utilise protocole SSL seulement dans quelques services comme inscription ou modification. Si l'on choisit 'Toujours', on utilise protocole SSL dans tous les services.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="ru"><![CDATA[In case of "Optional", SSL will be used for actions such as signing up / changing information. And for "Always", your site will be served only via https<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="es"><![CDATA[Opcionalmente, la composición de suscripción / editar la información y el uso de SSL especificada en la acción es siempre el uso de SSL para todos los servicios que se utilizarán<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="tr"><![CDATA['İsteği Bağlı' seçiminde; SSL, kayıt olma/bilgi değiştirme gibi eylemler için kullanılacaktır. 'Her zaman' seçiminde, siteniz sadece http yoluyla hizmet verecektir.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Nếu bạn chọn 'Tùy chỉnh', SSL sẽ sử dụng và những công việc như đăng kí, sửa thông tin thành viên, .<br />Chỉ chọn 'Luôn luôn' khi Website của bạn đang chạy trên Server có hỗ trợ https.<br /><span style="color:red">SSL 환경이 갖춰지지 않은 상태에서 SSL을 사용할 경우 접속이 되지 않을 수 있으니 주의하시기 바랍니다.</span>]]></value>
|
||||
</item>
|
||||
<item name="server_ports">
|
||||
<value xml:lang="ko"><![CDATA[서버 포트 지정]]></value>
|
||||
|
|
@ -1484,4 +1484,4 @@
|
|||
<value xml:lang="zh-CN"><![CDATA[管理设置]]></value>
|
||||
<value xml:lang="tr"><![CDATA[Yönetici Ayarları]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
</lang>
|
||||
|
|
|
|||
8
modules/admin/queries/deleteFavorites.xml
Normal file
8
modules/admin/queries/deleteFavorites.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="deleteFavorite" action="delete">
|
||||
<tables>
|
||||
<table name="admin_favorite" />
|
||||
</tables>
|
||||
<conditions>
|
||||
<condition operation="in" column="admin_favorite_srl" var="admin_favorite_srls" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -58,7 +58,7 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
|
|||
.x .table caption .side{float:right;font-weight:normal;margin-left:1em}
|
||||
.x .table th,
|
||||
.x .table td{border:0;padding:8px;vertical-align:top;text-align:left;border-bottom:1px solid #ddd}
|
||||
.x .table th{background:#f8f8f8;white-space:nowrap}
|
||||
.x .table th{background:#f8f8f8}
|
||||
.x .table thead th{border-bottom:1px solid #999}
|
||||
.x .table tfoot td{font-weight:bold;background:#f8f8f8}
|
||||
.x .table.even tbody tr:nth-of-type(even){background-color:#fafafa}
|
||||
|
|
@ -68,10 +68,6 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
|
|||
.x .table em{font-style:normal;font-weight:normal;color:#e00}
|
||||
.x .table th.nowr,
|
||||
.x .table td.nowr{white-space:nowrap}
|
||||
.x .table th.title,
|
||||
.x .table td.title,
|
||||
.x .table th.text,
|
||||
.x .table td.text{width:100%}
|
||||
/* Form */
|
||||
.x .form{margin:0 0 1em 0;padding:0}
|
||||
.x .form fieldset{margin:0 0 2em 0;padding:0;border:0}
|
||||
|
|
@ -149,7 +145,7 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
|
|||
.x .gnb .mnv{display:block}
|
||||
}
|
||||
/* Local Navigation */
|
||||
.x .lnb{position:relative;float:left;width:210px;margin:0 0 1em -230px;line-height:normal;zoom:1;display:inline}
|
||||
.x .lnb{position:relative;float:left;width:210px;left:-230px;margin:0 0 20px 0;line-height:normal;zoom:1;display:inline}
|
||||
.x .lnb .h2{position:relative;z-index:2;margin:0 0 -1px 0;padding:0 10px;border:1px solid #444;border-bottom:0;border-radius:4px 4px 0 0;background:#555;font-size:13px;color:#fff;line-height:36px}
|
||||
.x .lnb ul{margin:0 !important;padding:0;list-style:none;position:relative;z-index:1}
|
||||
.x .lnb li{position:relative;margin:0 0 -1px 0;vertical-align:top;zoom:1}
|
||||
|
|
@ -170,11 +166,11 @@ header,footer,section,article,aside,nav,hgroup,details,menu,figure,figcaption{di
|
|||
.x .lnb li:last-child a,
|
||||
.x .lnb li.active:last-child{border-radius:0 0 4px 4px !important}
|
||||
/* Shortcut */
|
||||
.x .sct{float:right;width:138px;position:relative;right:-160px;margin:0 0 0 -140px;padding:8px 0}
|
||||
.x .sct h2{margin:0 0 5px 15px;font-size:13px}
|
||||
.x .sct{float:left;width:210px;position:relative;left:-230px;margin:0;padding:8px 0;border:0;box-shadow:inset 0 0 1px rgba(0,0,0,0.5)}
|
||||
.x .sct h2{margin:0 0 5px 10px;font-size:13px}
|
||||
.x .sct ul{margin:0;font-size:12px}
|
||||
.x .sct li{position:relative}
|
||||
.x .sct a{text-decoration:none}
|
||||
.x .sct a{text-decoration:none;padding:3px 18px 3px 10px}
|
||||
.x .sct form{position:absolute;margin:0;padding:0;top:2px;right:-10px}
|
||||
.x .sct .text{text-decoration:none;font-weight:bold;color:#999 !important;width:16px;height:16px;margin:0}
|
||||
.x .sct .text:hover,
|
||||
|
|
@ -305,10 +301,10 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
|
|||
.x .footer .cache{float:right}
|
||||
.x .footer .vr{color:#ccc}
|
||||
/* Body */
|
||||
.x .body{position:relative;z-index:1;padding:30px 170px 30px 240px;zoom:1}
|
||||
.x .body{position:relative;z-index:1;padding:30px 10px 30px 240px;zoom:1}
|
||||
.x .body:after{content:"";display:block;clear:both}
|
||||
/* Content */
|
||||
.x .content{float:right;width:100%;margin-left:-100%;zoom:1;outline:0}
|
||||
.x .content{float:right;width:100%;margin-left:-210px;zoom:1;outline:0;min-height:500px}
|
||||
.x .content:after{content:"";display:block;clear:both}
|
||||
.x .content a{color:#33a}
|
||||
.x .content a:hover,
|
||||
|
|
@ -320,15 +316,12 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
|
|||
.x .content .portlet a:focus{text-decoration:underline}
|
||||
/* Dashboard */
|
||||
.x .dashboard .section{margin-top:0}
|
||||
.x .dashboard .portlet{float:left;width:48%;margin-right:1em;margin-top:0}
|
||||
.x .dashboard .portlet{float:left;width:48%;margin-right:1em;margin-top:0;min-height:188px}
|
||||
.x .dashboard .portlet:nth-of-type(odd){float:left;width:49%;margin-right:0}
|
||||
.x .dashboard .portlet:nth-of-type(even){float:right;width:49%;margin-right:0}
|
||||
@media all and (min-width:1300px){
|
||||
.x .dashboard .portlet{float:left !important;width:32% !important;margin-right:1em !important}
|
||||
}
|
||||
/* Single Column*/
|
||||
.x .single{padding-left:10px}
|
||||
.x .single .content{position:relative;float:left;width:100%;margin:0}
|
||||
/* Search */
|
||||
.x .search{zoom:1}
|
||||
.x .search:after{content:"";display:block;clear:both}
|
||||
|
|
@ -587,7 +580,7 @@ body.modalContainer{_height:100%;_width:100%} /* IE6 only */
|
|||
.x .header .account ul{padding-right:10px}
|
||||
.x .body{padding:1em 0 0 0}
|
||||
.x .content{float:none;margin-left:0}
|
||||
.x .lnb{float:none;width:auto;margin:1em 0}
|
||||
.x .lnb{float:none;width:auto;margin:1em 0;left:auto}
|
||||
.x .dashboard .portlet{float:none !important;width:auto !important;margin-right:0}
|
||||
.modal .fg,
|
||||
.wfsr .fg{width:auto}
|
||||
|
|
|
|||
12
modules/admin/tpl/css/admin.min.css
vendored
12
modules/admin/tpl/css/admin.min.css
vendored
File diff suppressed because one or more lines are too long
|
|
@ -23,19 +23,6 @@ jQuery(function($){
|
|||
.parent()
|
||||
.css('position', 'relative');
|
||||
|
||||
// Make selected checkbox elements bold
|
||||
var $rc_label = $('input:radio+label,input:checkbox+label'), $input_rc = $rc_label.prev('input');
|
||||
$input_rc
|
||||
.change(function(){
|
||||
var name = $(this).attr('name');
|
||||
$input_rc
|
||||
.filter(function(){ return this.name == name })
|
||||
.next('label').css('font-weight', 'normal').end()
|
||||
.filter(':checked')
|
||||
.next('label').css('font-weight', 'bold').end();
|
||||
})
|
||||
.change();
|
||||
|
||||
// Toogle checkbox all
|
||||
$('.form th>input:checkbox')
|
||||
.change(function() {
|
||||
|
|
@ -1388,22 +1375,19 @@ function completeInstallModule(ret_obj) {
|
|||
|
||||
jQuery(function($){
|
||||
$('body').ajaxComplete(function(){ hideWaitingFogLayer() });
|
||||
// admin single column layout
|
||||
if($('.x>.body .lnb').length == 0){ // When it have no lnb
|
||||
$('.x>.body').addClass('single'); // Add class single
|
||||
}
|
||||
// Details toggle in admin table
|
||||
var viewBtn = $('.x .dsTg span.side>button.text');
|
||||
var tdTitle = $('.x .dsTg td.title');
|
||||
tdTitle.each(function(){
|
||||
var $t = $(this)
|
||||
if($t.find('p.update').length==0){
|
||||
$t.addClass('tg').find('>p:not(:first-child)').hide();
|
||||
$t.addClass('tg').find('>*:not(:first-child)').hide();
|
||||
} else {
|
||||
$t.addClass('up');
|
||||
}
|
||||
});
|
||||
var details = $('.x .dsTg td.tg>p:not(:first-child)');
|
||||
$('.x .dsTg .thumb').hide();
|
||||
var details = $('.x .dsTg td.tg>*:not(:first-child), .x .dsTg .thumb');
|
||||
viewBtn.click(function(){
|
||||
viewBtn.toggleClass('details');
|
||||
details.slideToggle(200);
|
||||
|
|
|
|||
47
modules/admin/tpl/js/admin.min.js
vendored
47
modules/admin/tpl/js/admin.min.js
vendored
File diff suppressed because one or more lines are too long
4
modules/admin/tpl/js/sitemap.min.js
vendored
4
modules/admin/tpl/js/sitemap.min.js
vendored
|
|
@ -1,5 +1,5 @@
|
|||
jQuery(function(c){function o(a,c){for(var b=0,g=0;a&&a!=c;)b+=a.offsetTop,g+=a.offsetLeft,a=a.offsetParent;return{top:b,left:g}}var l=!1,k=c('<li class="placeholder">');c("form.siteMap").delegate("li:not(.placeholder)",{"mousedown.st":function(a){var d,b,g,h,n,p,i,m,j;if(!(c(a.target).is("a,input,label,textarea")||1!=a.which)){l=!0;b=c(this);p=b.height();n=b.width();g=b.parentsUntil(".siteMap").filter("ul");h=g.eq(-1);h.css("position","relative");d=a.pageY;i=o(this,h.get(0));$clone=b.clone(!0).attr("target",
|
||||
!0);for(a=g.length-1;a;a--)$clone=$clone.wrap("<li><ul /></li>").parent().parent();m=[];h.find("li").each(function(){if(b[0]===this||b.has(this).length)return!0;var a=o(this,h.get(0));m.push({top:a.top,bottom:a.top+32,item:this})});$clone.find(".side,input").remove().end().addClass("draggable").css({position:"absolute",opacity:0.6,width:n,height:p,left:i.left,top:i.top,zIndex:100}).appendTo(h.eq(0));k.css({position:"absolute",opacity:0.6,width:n,height:"5px",left:i.left,top:i.top,zIndex:99}).appendTo(h.eq(0));
|
||||
jQuery(function(c){function p(a,c){for(var b=0,g=0;a&&a!=c;)b+=a.offsetTop,g+=a.offsetLeft,a=a.offsetParent;return{top:b,left:g}}var l=!1,k=c('<li class="placeholder">');c("form.siteMap").delegate("li:not(.placeholder)",{"mousedown.st":function(a){var d,b,g,h,n,q,i,m,j;if(!(c(a.target).is("a,input,label,textarea")||1!=a.which)){l=!0;b=c(this);q=b.height();n=b.width();g=b.parentsUntil(".siteMap").filter("ul");h=g.eq(-1);h.css("position","relative");d=a.pageY;i=p(this,h.get(0));$clone=b.clone(!0).attr("target",
|
||||
!0);for(a=g.length-1;a;a--)$clone=$clone.wrap("<li><ul /></li>").parent().parent();m=[];h.find("li").each(function(){if(b[0]===this||b.has(this).length)return!0;var a=p(this,h.get(0));m.push({top:a.top,bottom:a.top+32,item:this})});$clone.find(".side,input").remove().end().addClass("draggable").css({position:"absolute",opacity:0.6,width:n,height:q,left:i.left,top:i.top,zIndex:100}).appendTo(h.eq(0));k.css({position:"absolute",opacity:0.6,width:n,height:"5px",left:i.left,top:i.top,zIndex:99}).appendTo(h.eq(0));
|
||||
b.css("opacity",0.6);c(document).unbind("mousemove.st mouseup.st").bind("mousemove.st",function(a){var b,c,e,f;j=null;a=i.top-(d-a.pageY);b=0;for(c=m.length;b<c;b++)if(f=a,e=m[b],0==b&&f<e.top&&(f=e.top),b==c-1&&f>e.bottom&&(f=e.bottom),e.top<=f&&e.bottom>=f){b=e.item;3>=Math.abs(e.top-f)?(k.css({top:e.top-3,height:"5px"}),f="before"):3>=Math.abs(e.bottom-f)?(k.css({top:e.bottom-3,height:"5px"}),f="after"):(k.css({top:e.top+3,height:"27px"}),f="prepend");j={element:b,state:f};break}$clone.css({top:a})}).bind("mouseup.st",
|
||||
function(){var a,d;l=!1;c(document).unbind("mousemove.st mouseup.st");b.css("opacity","");$clone.remove();k.remove();d=c("<li />").height(b.height());if(j){a=c(j.element);b.before(d);if("prepend"==j.state)a.find(">ul").length||a.find(">.side").after("<ul>"),a.find(">ul").prepend(b.hide());else a[j.state](b.hide());b.slideDown(100,function(){b.removeClass("active")});d.slideUp(100,function(){var a=d.parent();d.remove();a.children("li").length||a.remove()});b.trigger("dropped.st")}});return!1}},"mouseover.st":function(){l||
|
||||
c(this).addClass("active");return!1},"mouseout.st":function(){l||c(this).removeClass("active");return!1}}).find("li").prepend('<button type="button" class="moveTo">Move to</button>').append('<span class="vr"></span><span class="hr"></span>').find("input:text").focus(function(){var a=c(this),d=a.prev("label"),b=a.parent();a.width(b.width()-(parseInt(b.css("text-indent"))||0)-a.next(".side").width()-60).css("opacity","");d.hide()}).blur(function(){var a=c(this),d=a.prev("label"),b=a.val();a.width(0).css("opacity",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue