/home/dvjjulio/softtrash/public/js/PowerNetwork.js
/**
 * Created by oliver on 13/05/16.
 */
var PowerNetwork = function(){
    return {
        init: function(){
            $('#send-btn').click( function( event ){
                event.preventDefault();
                var form = new FormData();
                form.append( 'actor_id', $( '#actor_id option:selected' ).val() );
                form.append( 'related_actor_id', $( '#related_actor_id option:selected' ).val() );
                form.append( 'typerelationship_id', $( '#typerelationship_id option:selected' ).val() );
                form.append( '_token', $( '#csrf-token' ).val() );
                $.ajax({
                    url: main_path + '/redespoder/actor/add_relationship',
                    data: form,
                    type: 'POST',
                    processData: false,
                    contentType: false,
                    success:  function( response ){
                        var type = 'success'
                        if( response.status !== true ){
                            type = 'danger';
                        }
                        $.bootstrapGrowl( response.message , {
                            type: type,
                            delay: 5000,
                            allow_dismis: true  });
                        $('#actor_id').val('').prop( 'selected', false ).trigger("chosen:updated");
                        $('#related_actor_id').val('').prop( 'selected', false ).trigger("chosen:updated");
                        $('#typerelationship_id').val('').prop( 'selected', false ).trigger("chosen:updated");
                    },
                    fail: function( response ){
                        var message = 'Algo horrible sucedio :S';
                        if( typeof response.message !== 'undefined' ){
                            message = response.message;
                        }
                        $.bootstrapGrowl( message , {
                            type: 'danger',
                            delay: 5000,
                            allow_dismis: true  });
                    }
                });
            });

            $( '#btn-modal-delete' ).click( function( event ){
                event.preventDefault();
                var _id   = $('#del-rel-actor-id option:selected').val();
                var _name = $('#del-rel-actor-id option:selected').text();
                $( '#lbl-actor-name' ).html( '' );
                $( '#lbl-actor-name' ).append( '<h3>'+_name+'</h3>' );
                $("table#table-relationships tbody").html( '' );
                $.ajax( {
                    url: main_path + '/redespoder/actor/relationships/' + _id,
                    type: 'GET',
                    success: function( response ){
                        if( response.status === true ){
                            var _html = '';
                            $.each( response.data, function( i, item ){
                                _html += '<tr>';
                                _html += '    <td style="width: 180px;">' + item.related_actors.name + '</td>';
                                _html += '    <td class="text-right" style="width: 70px;">';
                                _html += '      <div class="btn-group btn-group-xs">';
                                _html += '          <button class="btn btn-xs btn-danger btn-delete-rel" data-id="' + item.id + '"><i class="gi gi-remove_2"></i></button>';
                                _html += '      </div>';
                                _html += '    </td>';
                                _html += '</tr>';
                            });
                            $("table#table-relationships tbody").append( _html );
                            PowerNetwork.assignEvents();
                        }
                    }, fail: function( response ){
                        $.bootstrapGrowl( response.message , {
                            type: 'danger',
                            daley: 5000,
                            allow_dismiss: true
                        });
                    }
                });
                $('#modal-delete-relationship').modal('show');
            });

            $('#network-btn').click(function( event ){
                event.preventDefault();
                var actor_id = $( '#network-actor-id option:selected' ).val();
                var type_id = $( '#type-relationship-id option:selected' ).val();
                var depth = $( '#search-depth option:selected' ).val();
                if( type_id !== '-1' ||  depth  !== '1' )
                    var path = main_path + '/redespoder/relationships/' + actor_id + '/' + type_id + '/' + depth
                else
                    var path = main_path + '/redespoder/relationships/' + actor_id
                $.ajax({
                    url: path ,
                    type: 'GET',
                    success: function( response ){
                        var _parent = $('#my_svg').parent();
                        $('#my_svg').remove();
                        _parent.append( '<svg id="my_svg"></svg>' );
                        if( response.data.nodes === null ){
                            $.bootstrapGrowl( 'No hay datos que mostrar para la consulta solicitada...', {
                                type: 'danger',
                                delay: 5000,
                                allow_dismiss: true
                            });
                        } else{
                            Graph.nodes = response.data.nodes;
                            Graph.lastNodeId  = response.data.lastNodeId;
                            Graph.links       = response.data.links;
                            Graph.init();
                        }
                    }, fail: function( response ){
                        $.bootstrapGrowl( 'Error: Hubo un problema a recopilar la informacion', {
                            type: 'danger',
                            delay: 5000,
                            allow_dismiss: true
                        })
                    }
                });
            });
        },
        assignEvents : function(){
            $('.btn-delete-rel').click( function(){
                var _rel_id = $( this ).data( 'id' );
                var _row = $( this ).closest('tr');

                $.ajax({
                    url: main_path + '/redespoder/actor/remove_relationship',
                    type: 'POST',
                    data: { _delete_rel_id: _rel_id, _token: $('#_token').val() },
                    success: function( response ){
                        if( response.status ===  true){
                            _row.remove();
                            $.bootstrapGrowl( response.message, {
                                type: 'success',
                                delay: 5200,
                                allow_dismiss: true
                            });
                        } else {
                            $.bootstrapGrowl( response.message, {
                                type: 'danger',
                                delay: 5200,
                                allow_dismiss: true
                                });
                        }
                    }, fails: function( response ){

                    }
                });
            });
        }
    }
}();