style. also, made sense of aspect-edit.js

This commit is contained in:
danielvincent 2010-10-22 00:15:46 -07:00
parent 69528b95a3
commit e1f4e12b8f
3 changed files with 102 additions and 95 deletions

View file

@ -10,7 +10,7 @@
%h2
Manage aspects
.right
= link_to(t('.add_a_new_aspect'), "#add_aspect_pane", :class => "new_aspect add_aspect_button button", :title => t('.add_a_new_aspect'))
= link_to("+ #{t('.add_a_new_aspect')}", "#add_aspect_pane", :class => "new_aspect add_aspect_button button", :title => t('.add_a_new_aspect'))
.span-4.append-1.last
%h3=t('.requests')
@ -21,10 +21,8 @@
%li.grey No new requests
- else
- for request in @remote_requests
%li.requested_person{:id => request.person.id, :request_id => request.id}
%li.person.request{:data=>{:guid=>request.id, :person_id=>request.person.id}}
= person_image_tag(request.person)
.name
= request.person.real_name
%h3 Remove from Aspect
.aspect_remove
@ -36,32 +34,34 @@
.span-19.last
%ul#aspect_list
- for aspect in @aspects
%li.aspect
%li.aspect{:data=>{:guid=>aspect.id}}
.aspect_name
%span.edit_name_field
%h3{:contenteditable => true}= aspect.name
%h3{:contenteditable=>true}
= aspect.name
%span.tip click to edit
%ul.tools
%li= link_to t('.add_a_new_friend'), "#add_request_pane_#{aspect.id}", :class => 'add_request_button'
%li!= remove_link(aspect)
%ul.dropzone{:id => aspect.id}
%ul.dropzone{:data=>{:aspect_id=>aspect.id}}
-if aspect.people.size < 1
%li.grey Drag to add people
-else
-for person in aspect.people
%li.person{:id => person.id, :class => person.id, :from_aspect_id => aspect.id}
%li.person{:data=>{:guid=>person.id, :aspect_id=>aspect.id}}
.delete
.x
X
.circle
= person_image_tag(person)
.fancybox_content
%div{:id => "add_request_pane_#{aspect.id}"}
= render "requests/new_request", :aspect => aspect

View file

@ -4,9 +4,9 @@
*/
function decrementRequestsCounter() {
var $new_requests = $(".new_requests"),
request_html = $new_requests.html(),
old_request_count = request_html.match(/\d+/);
var $new_requests = $(".new_requests");
var request_html = $new_requests.html();
var old_request_count = request_html.match(/\d+/);
if( old_request_count == 1 ) {
$new_requests.html(
@ -19,82 +19,116 @@ function decrementRequestsCounter() {
}
}
// Dragging person between aspects
$(function() {
// Multiple classes here won't work
$("ul .person").draggable({
revert: true
});
$("ul .person").draggable({ revert: true });
$("ul .requested_person").draggable({ revert: true });
$("ul .requested_person").draggable({
revert: true
});
$(".aspect ul").droppable({
$(".aspect ul.dropzone").droppable({
hoverClass: 'active',
drop: function(event, ui) {
if ($(ui.draggable[0]).hasClass('requested_person')){
var dropzone = $(this);
var person = ui.draggable;
if( person.hasClass('request') ){
$.ajax({
type: "DELETE",
url: "/requests/" + ui.draggable[0].getAttribute('request_id') ,
data: {"accept" : true , "aspect_id" : $(this)[0].id },
url: "/requests/" + person.attr('data-guid'),
data: {"accept" : true, "aspect_id" : dropzone.attr('data-aspect_id') },
success: function(data){
decrementRequestsCounter();
}
});
};
var dropzone = $(this)[0];
if ($(this)[0].id == ui.draggable[0].getAttribute('from_aspect_id')){
ui.draggable.css('background','none');
} else {
ui.draggable.css('background','none');
if( dropzone.attr('data-aspect_id') != person.attr('data-aspect_id' )){
$.ajax({
url: "/aspects/move_friend/",
data: {"friend_id" : ui.draggable[0].id,
"from" : ui.draggable[0].getAttribute('from_aspect_id'),
"to" : { "to" : dropzone.id }},
data: {"friend_id" : person.attr('data-guid'),
"from" : person.attr('data-aspect_id'),
"to" : { "to" : dropzone.attr('data-aspect_id') }},
success: function(data){
ui.draggable.attr('from_aspect_id', dropzone.id);
ui.draggable.css('background','none');
person.attr('data-aspect_id', dropzone.attr('data-aspect_id'));
}});
}
$(this).closest("ul").append(ui.draggable);
$(this).closest("ul").append(person);
}
});
$(".aspect_remove ul").droppable({
hoverClass: 'active',
drop: function(event, ui) {
if ($( "." + ui.draggable[0].id).length == 1) {
var person = ui.draggable;
if ( person.attr('data-guid').length == 1 ) {
alert("You can not remove the person from the last aspect");
} else {
if (!$(ui.draggable[0]).hasClass('requested_person')){
var aspect = ui.draggable[0].getAttribute('from_aspect_id')
var person_id = ui.draggable[0].id
if( !person.hasClass('request') ){
$.ajax({
type: "POST",
url: "/aspects/remove_from_aspect",
data:{
'friend_id' : person_id,
'aspect_id' : aspect
}
'friend_id' : person.attr('data-guid'),
'aspect_id' : person.attr('data-aspect_id') }
});
}
$(ui.draggable[0]).fadeOut('slow');
$(ui.draggable[0]).remove();
person.fadeOut('slow', $(this).remove());
}
}
});
$(".aspect h3").live( 'focus', function() {
});
var $this = $(this),
id = $this.closest("li").children("ul").attr("id"),
link = "/aspects/"+ id;
// Person deletion
$(".delete").live("click", function() {
var person = $(this).closest("li.person");
if (person.hasClass('request')){
if( confirm("Ignore request?") ){
var request_id = person.attr("data-guid");
$.ajax({
type: "DELETE",
url: "/requests/" + request_id,
success: function () {
decrementRequestsCounter();
}
});
}
} else {
if( confirm("Remove this person from all aspects?") ){
var person_id = $(this).closest("li.person").attr('data-guid');
$.ajax({
type: "DELETE",
url: "/people/" + person_id,
success: function() {
person.fadeOut(200);
}
});
}
}
});
// Editing aspect name
$(".aspect h3").live('focus', function() {
var $this = $(this);
var id = $this.closest("li.aspect").attr("data-guid");
var link = "/aspects/"+ id;
$this.keypress(function(e) {
if (e.which == 13) {
@ -113,40 +147,4 @@ $(function() {
$("#aspect_nav a[href='"+link+"']").text($this.text());
});
});
});
});
//deletion
$(".delete").live("click", function() {
var person = $(this).closest("li.person");
request_id = person.attr("request_id");
if (request_id){
if( confirm("Remove this person from all aspects?") ){
$.ajax({
type: "DELETE",
url: "/requests/" + request_id,
success: function () {
decrementRequestsCounter();
}
});
}
} else {
if( confirm("Remove this person from all aspects?") ){
var person_id = $(this).closest("li.person").attr('id');
$.ajax({
type: "DELETE",
url: "/people/" + person_id,
success: function() {
person.fadeOut(200);
}
});
}
}
});

View file

@ -903,13 +903,7 @@ h1.big_text
:padding 2px
.aspect,
.requests,
.remove,
.aspect_remove
:list
:style none
.aspect
h3
:display inline-block
@ -944,7 +938,11 @@ h1.big_text
&:last-child
:margin
:right 0
.aspect,
.requests,
.aspect_remove
:list
:style none
.grey
:color #999
:cursor default
@ -954,25 +952,27 @@ h1.big_text
:min-height 20px
:margin 0
:bottom 25px
:background
:color #efefef
:border 1px solid #ccc
:-webkit-border-radius 10px
:-moz-border-radius 10px
:border-radius 10px
:list
:style none
:padding 15px
:border 2px dashed #ccc
&.active
:background
:color #fafafa
:color rgba(255,252,127,0.2)
.person,
.requested_person
.person
:display inline-block
:cursor move
:z-index 10
:position relative
:padding 0
:margin 0
:margin 5px
:color #eee
@ -980,6 +980,7 @@ h1.big_text
:height 70px
:width 70px
:border-radius 5px
:-webkit-box-shadow 0 1px 2px #999
&:hover
.delete
@ -1034,6 +1035,10 @@ h1.big_text
:color rgba(208,49,43,1)
.requests
ul.dropzone
:border 2px solid #ccc
ul#settings_nav
:display inline
:list
@ -1153,6 +1158,10 @@ header
h2
:display inline
.right
:margin
:top 10px
.modal_title_bar
:width 100%
:background