Implement dragndrop to edit sitemaps (still working)

git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@8723 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
taggon 2011-08-04 08:31:35 +00:00
parent c00dd923b8
commit f94ab07b93
3 changed files with 104 additions and 28 deletions

View file

@ -310,51 +310,55 @@ button.text{border:0;overflow:visible;padding:0;margin:0;color:#33a;background:n
.siteMap .lined ul{padding:0;margin:0;border-top:1px solid #eee;zoom:1}
.siteMap .lined li{position:relative;padding:0;margin:0;cursor:all-scroll;list-style:none;zoom:1}
.siteMap .lined li li{border-top:1px solid #eee}
.siteMap li li{text-indent:32px}
.siteMap li li li{text-indent:64px}
.siteMap li li li li{text-indent:96px}
.siteMap li li li li li{text-indent:128px}
.siteMap li li li li li li{text-indent:160px}
.siteMap li li li li li li li{text-indent:192px}
.siteMap li li li li li li li li{text-indent:224px}
.siteMap li li li li li li li li li{text-indent:256px}
.siteMap li li li li li li li li li li{text-indent:288px}
.siteMap li li li li li li li li li li li{text-indent:320px}
.siteMap li li li li li li li li li li li li{text-indent:352px}
.siteMap li li{text-indent:18px}
.siteMap li li li{text-indent:36px}
.siteMap li li li li{text-indent:54px}
.siteMap li li li li li{text-indent:72px}
.siteMap li li li li li li{text-indent:90px}
.siteMap li li li li li li li{text-indent:108px}
.siteMap li li li li li li li li{text-indent:126px}
.siteMap li li li li li li li li li{text-indent:144px}
.siteMap li li li li li li li li li li{text-indent:162px}
.siteMap li li li li li li li li li li li{text-indent:180px}
.siteMap li li li li li li li li li li li li{text-indent:198px}
.siteMap li *{vertical-align:middle}
.siteMap li .moveTo+input{width:200px;border:0;padding:0 .5em}
.siteMap li .moveTo+input:hover,
.siteMap li .moveTo+input:active,
.siteMap li .moveTo+input:focus{border:1px dotted #ccc;overflow:visible}
.siteMap .moveTo{position:relative;z-index:2;width:32px;height:32px;padding:32px 0 0 0;margin:0 .5em;_margin-top:-1px;overflow:hidden;background:#fff url(../img/iconMoveTo.gif) no-repeat;border:0}
.siteMap .moveTo{position:relative;z-index:2;width:22px;height:32px;padding:32px 0 0 0;margin:0 3px;_margin-top:-1px;overflow:hidden;background:#fff url(../img/iconMoveTo.gif) no-repeat center 0;border:0;cursor:move}
.siteMap li.active,
.siteMap li.active .moveTo{background-color:#f7f7f7}
.siteMap li.active li,
.siteMap li.active ul{border-top-color:#fff}
.siteMap li.active .moveTo{background-position:0 -32px}
.siteMap .vr{display:none;position:absolute;z-index:1;left:16px;top:-16px;margin:0 .5em;height:100%;border-left:1px solid #ccc;overflow:hidden}
.siteMap .hr{display:none;position:absolute;z-index:1;left:16px;top:16px;margin:0 .5em;width:16px;border-top:1px solid #ccc;overflow:hidden}
.siteMap li.active ul{border-top-color:#f7f7f7}
.siteMap li.active .moveTo{background-position:center -32px}
.siteMap .vr,
.siteMap .hr{display:none;position:absolute;z-index:1;left:14px;border:0px solid #ccc;overflow:hidden}
.siteMap .vr{top:-16px;height:100%;border-left-width:1px}
.siteMap .hr{top:16px;width:16px;border-top-width:1px}
.siteMap li.active .vr,
.siteMap li.active li .hr{display:block}
.siteMap li li .vr,
.siteMap li li li .hr{left:48px}
.siteMap li li li .hr{left:32px}
.siteMap li li li .vr,
.siteMap li li li li .hr{left:80px}
.siteMap li li li li .hr{left:50px}
.siteMap li li li li .vr,
.siteMap li li li li li .hr{left:112px}
.siteMap li li li li li .hr{left:68px}
.siteMap li li li li li .vr,
.siteMap li li li li li li .hr{left:144px}
.siteMap li li li li li li .hr{left:86px}
.siteMap li li li li li li .vr,
.siteMap li li li li li li li .hr{left:176px}
.siteMap li li li li li li li .hr{left:104px}
.siteMap li li li li li li li .vr,
.siteMap li li li li li li li li .hr{left:208px}
.siteMap li li li li li li li li .hr{left:122px}
.siteMap li li li li li li li li .vr,
.siteMap li li li li li li li li li .hr{left:240px}
.siteMap li li li li li li li li li .hr{left:140px}
.siteMap li li li li li li li li li .vr,
.siteMap li li li li li li li li li li .hr{left:272px}
.siteMap li li li li li li li li li li .hr{left:158px}
.siteMap li li li li li li li li li li .vr,
.siteMap li li li li li li li li li li li .hr{left:304px}
.siteMap li li li li li li li li li li li .hr{left:176px}
.siteMap li li li li li li li li li li li .vr,
.siteMap li li li li li li li li li li li li .hr{left:336px}
.siteMap .side{padding-top:0 !important;padding-bottom:0 !important;line-height:30px}
.siteMap .side{padding-top:0 !important;padding-bottom:0 !important;line-height:30px;background:transparent !important}
.siteMap .side button{text-indent:0;line-height:1}
.siteMap .tgMap{position:absolute; top:12px; right:1em; padding:0 16px 0 0; line-height:16px; background:url(../img/iconArrow.gif) no-repeat right -126px}
.siteMap.fold .tgMap{background-position:right -158px}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 133 B

After

Width:  |  Height:  |  Size: 118 B

Before After
Before After

View file

@ -0,0 +1,72 @@
/* NHN (developers@xpressengine.com) */
jQuery(function($){
$('form.siteMap')
.find('li')
.prepend('<button type="button" class="moveTo">Move to</button>')
.append('<span class="vr"></span><span class="hr"></span>')
.mouseover(function(){
$(this).addClass('active');
return false;
})
.mouseout(function(){
$(this).removeClass('active');
return false;
})
.mousedown(function(event){
var $this, $clone, $target = $(event.target), $uls, $ghost, $last;
if($target.is('a,input:text,textarea')) return;
$this = $(this);
$clone = $this.clone(true).find('.side,input').remove().end();
$uls = $this.parentsUntil('form.siteMap').filter('ul');
$ghost = $last = $('<ul class="lined" />');
for(var i=1,c=$uls.length; i < c; i++) {
$last = $last.append('<li><ul /></li>').find('>ul');
}
$last.append($clone);
$ghost
.css({
backgroundColor : '#fff',
position : 'absolute',
opacity : .5
});
return false;
})
.find('input:text')
.each(function(i,input){
var $this = $(this), id='sitemap-id-'+i;
$this
.attr('id', id)
.css({width:0,opacity:0,overflow:'hidden'})
.before('<label />')
.prev('label')
.attr('for', id)
.text($this.val());
})
.end()
.end()
$('<div id="dropzone-marker" />')
.css({display:'none',position:'absolute',backgroundColor:'#000',opacity:0.7})
.appendTo('body');
/*
$('.tgMap').click(function(){
var t = $(this);
t.parent('.siteMap').toggleClass('fold');
if(t.parent('.siteMap').hasClass('fold')){
t.text('펼치기').next('.lined').slideUp(200).next('.btnArea').hide();
} else {
t.text('접기').next('.lined').slideDown(200).next('.btnArea').show();
}
return false;
});
*/
});