Skip to content
Extraits de code Groupes Projets
aspect-edit.js 3,09 ko
Newer Older
  • Learn to ignore specific revisions
  • Raphael's avatar
    Raphael a validé
    /*   Copyright (c) 2010, Diaspora Inc.  This file is
    
    Raphael's avatar
    Raphael a validé
    *   licensed under the Affero General Public License version 3.  See
    *   the COPYRIGHT file.
    */
    
    function decrementRequestsCounter() {
      var $new_requests = $(".new_requests"),
    
          request_html  = $new_requests.html(),
    
          old_request_count = request_html.match(/\d+/);
    
    
      if( old_request_count == 1 ) {
    
          request_html.replace(/ \(\d+\)/,'')
    
          request_html.replace(/\d+/,old_request_count-1)
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
    $(function() {
    
      // Multiple classes here won't work
      $("ul .person").draggable({
    
      $("ul .requested_person").draggable({
        revert: true
      });
    
    Raphael's avatar
    Raphael a validé
      $(".aspect ul").droppable({
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
        drop: function(event, ui) {
    
          if ($(ui.draggable[0]).hasClass('requested_person')){
            $.ajax({
              type: "DELETE",
              url: "/requests/" + ui.draggable[0].getAttribute('request_id') ,
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
              data: {"accept" : true  , "aspect_id" : $(this)[0].id },
              success: function(data){
    
                decrementRequestsCounter();
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
              }
    
          };
            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-color','orange');
    
              $.ajax({
                url: "/aspects/move_friend/",
                data: {"friend_id" : ui.draggable[0].id,
                       "from" : ui.draggable[0].getAttribute('from_aspect_id'),
                       "to" : { "to" : dropzone.id }},
                success: function(data){
                  ui.draggable.attr('from_aspect_id', dropzone.id);
                  ui.draggable.css('background','none');
                }});
    
    
          $(this).closest("ul").append(ui.draggable);
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
        }
      });
    
    
      $(".remove ul").droppable({
    
        drop: function(event, ui) {
    
    
          if ($(ui.draggable[0]).hasClass('requested_person')){
            $.ajax({
              type: "DELETE",
    
              url: "/requests/" + ui.draggable.attr('request_id'),
    
              success: function () {
                decrementRequestsCounter();
              }
    
              url: "/people/" + ui.draggable.attr('id'),
    
              success: function () {
                alert("Removed Friend, proably want an undo countdown.")
              }
    
          $(ui.draggable[0]).fadeOut('slow'); // ui.draggable.fadeOut('slow')
    
      $(".aspect h1").live( 'focus', function() {
    
    
        var $this = $(this),
            id    = $this.closest("li").children("ul").attr("id"),
    
        $this.keypress(function(e) {
          if (e.which == 13) {
            e.preventDefault();
            $this.blur();
    
            //save changes
            $.ajax({
              type: "PUT",
              url: link,
              data: {"aspect" : {"name" : $this.text() }}
            });
          }
          //update all other aspect links
          $this.keyup(function(e) {
            $("#aspect_nav a[href='"+link+"']").text($this.text());
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
          });
        });
      });
    
    Daniel Vincent Grippi's avatar
    Daniel Vincent Grippi a validé
    });