Drag and Drop Demo

this fiddle allows you to play with drag and drop directives

by Danish Farman

HTML

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.19/angular-sanitize.js"></script>
<script src="http://adaptv.github.io/adapt-strap/dist/adapt-strap.js"></script>
<script src="http://adaptv.github.io/adapt-strap/dist/adapt-strap.tpl.js"></script>
<link rel="stylesheet" href="http://adaptv.github.io/adapt-strap/dist/adapt-strap.css">
<div ng-app="adaptv.adaptStrapDocs" ng-controller="draggableCtrl">
<p>( Drag car from the <strong>list of cars</strong> to the <strong>basket</strong>. )</p>
  <div class="rows">
    <div class="col-md-3">
      <ul id="car-list" class="list-group">
        <li class="list-group-item active">List of Cars</li>
        <!-- ========== Usage Drag ========== -->
        <li class="list-group-item"
            ad-drag="true"
            ad-drag-data="car"
            ad-drag-begin="onDragStart($data, $dragElement, $event);"
            ad-drag-end="onDataEnd($data, $dragElement, $event);"
            ng-repeat="car in models.cars">
          <span>
            <span class="glyphicon glyphicon-th"></span>
            {{ car.name }} - {{ car.modelYear }} ( {{ car.price | currency }} )
          </span>
        </li>
      </ul>
    </div>
    <div class="col-md-4">
      <!-- ========== Usage Drop ========== -->
      <ul id="my-basket"
          class="list-group"
          ad-drop="true"
          ad-drop-over="onDragOver($data, $dragElement, $dropElement, $event);"
          ad-drop-end="onDrop($data, $dragElement, $dropElement, $event);">
        <li class="list-group-item disabled">My Basket</li>
        <li class="list-group-item"
            ad-drag="true"
            ng-repeat="car in models.basket">
          <span>
            <span class="glyphicon glyphicon-thumbs-up"></span>
            {{ car.name }} - {{ car.modelYear }} ( {{ car.price | currency }} )
          </span>
        </li>
        <li class="list-group-item"...

JavaScript

// ========== initialize documentation app module ========== //
angular.module('adaptv.adaptStrapDocs', [
  'ngSanitize',
  'adaptv.adaptStrap'
])

// ========== controllers ========== //
angular.module('adaptv.adaptStrapDocs')
  .controller('draggableCtrl', ['$scope', function($scope) {
    $scope.models = {
      basket: [],
      cars: [
        {
          id: 1,
          name: 'Audi A4',
          modelYear: 2009,
          price: 34000
        },
        {
          id: 2,
          name: 'BMW 328i',
          modelYear: 2012,
          price: 39000
        },
        {
          id: 3,
          name: 'Audi A6',
          modelYear: 2012,
          price: 44000
        },
        {
          id: 4,
          name: 'Audi S8',
          modelYear: 2014,
          price: 100000
        },
        {
          id: 5,
          name: 'Audi A4',
          modelYear: 2009,
          price: 34000
        }
      ]
    };

    $scope.remove = function(l, o) {
      var index = l.indexOf(o);
      l.splice(index, 1);
    };

    $scope.onDragStart = function() {

    };

    $scope.onDragEnd = function() {

    };

    $scope.onDragOver = function() {

    };

    $scope.onDrop = function(data, dragElement, dropElement) {
      if (dropElement.attr('id') === 'my-basket') {
        $scope.models.basket.push(data);
        $scope.remove($scope.models.cars, data);
      }
    };
  }]);