<!DOCTYPE html>
<html>

  <head>
    <link data-require="kendoUI@*" data-semver="2016.2.504" rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.common.min.css" />
    <link data-require="kendoUI@*" data-semver="2016.2.504" rel="stylesheet" href="//kendo.cdn.telerik.com/2016.2.504/styles/kendo.default.min.css" />
    <link data-require="bootstrap-css@3.1.1" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
    <link rel="stylesheet" href="style.css" />
  </head>

  <body ng-app="myApp">
    <div ng-controller="myCtrl as controller">
      <p>The kendo grid headers can be dragged but need to be placed in the same way as the basic table (not sure why but 
      in plunker the k-drop="onDrop" does not work so it will not populate the input field)</p>
      
      <div style="margin: 20px 0">
        <label for="test2">Kendo grid Draggable header test</label>
        <input type="text" id="test2" class="form-control dropTarget" name="test" placeholder="Input text" kendo-droptarget k-drop="onDrop">
      </div>
      

      <div id="grid" style="margin-top: 20px"></div>
      
    </div>
    <script data-require="jquery@*" data-semver="1.10.2" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script data-require="angular.js@1.3.15" data-semver="1.3.15" src="https://code.angularjs.org/1.3.15/angular.js"></script>
    <script data-require="kendoUI@*" data-semver="2016.2.504" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
    <script data-require="kendoUI@*" data-semver="2016.2.504" src="//kendo.cdn.telerik.com/2016.2.504/js/kendo.all.min.js"></script>
    <script data-require="bootstrap@*" data-semver="3.1.1" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
    <script src="script.js"></script>
  </body>

</html>
var myCtrl = function($scope) {
  'use strict';
  var self = this;
  
  // START html datatransfer drag

  document.addEventListener("dragstart", function( event ) {
      var text = event.target.innerHTML;
      event.dataTransfer.setData('text/plain', '['+ text +']');
      console.log(event);
      // without transparency a border shows up on the drag
      event.target.style.opacity = 0.5;
  }, false);
  
  document.addEventListener("drop", function( event ) {
    console.log(event)
    if ( event.target.id !== "test1" ) {
        event.preventDefault();
    }
  }, false);

  document.addEventListener("dragend", function() {
      // reset the transparency
      event.target.style.opacity = "";
  }, false);


  // END html datatransfer drag
  
  // START Kendo drag and drop
  
  this.input = '';

  var val = '';
  var dragged;

  $scope.onDragStart = function(e) {
      val = '[' + $(e.target).data('field') + ']';
      //console.log(e.target);
      dragged = e.target;
  };

  $scope.draggableHint = function(e) {
      return e.clone().css({"background": "transparent", "font-weight": "normal"});
  };

  $scope.onDrop = function(e) {
      console.log("drop2");
      console.log(val);
      console.log(e.toElement.value);
      e.toElement.value += val;
  };

  var dataSource = new kendo.data.DataSource({
      data: [
          { "Area": 10, "Height": 10, "Width": 10, "Volume": 10 },
          { "Area": 20, "Height": 20, "Width": 20, "Volume": 20 },
      ],
      pageSize: 5
  });

  var grid = $("#grid").kendoGrid({
      dataSource: dataSource,
      //selectable: "multiple cell",
      //allowCopy: true,
      columns: [
          { field: "Area" },
          { field: "Height" },
          { field: "Width" },
          { field: "Volume" }
      ]
  }).data("kendoGrid");

  $(grid.element).kendoDraggable({
      // to drag the table row filter tr, eg. "th, tr"
      filter: "th",
      hint: $scope.draggableHint,
      dragstart: function (e) {
          $scope.onDragStart(e);
          
      }

  });
  
  $('#test2').kendoDropTarget({});

// END Kendo drag and drop

};

myCtrl.$inject = ['$scope'];
angular.module('myApp', []).controller('myCtrl', myCtrl);
body{
  margin: 0 0 0 10px;
  width: 50%;
}

#grid {
  margin-top: 10px;
}



.table-grid  {
    border-collapse:collapse;
    border-spacing:0;
    margin:20px 0;
    width: 100%;
}

.table-grid td{
    font-size:12px;
    padding:5px 5px;
    border-style:solid;
    border-width:1px;
    overflow:hidden;
    word-break:normal;

}
.table-grid th{
    font-size:12px;
    font-weight:normal;padding:5px 5px;
    border-style:solid;
    border-width:1px;
    overflow:hidden;
    word-break:normal;
}