# HG changeset patch # User Nicholas Jillings # Date 1516113187 0 # Node ID c8707694f4e745ac49e54eaacedbf995875882f8 # Parent 90c7b42264d4d7166a3fd679b0d7f9032e67456a #200 Dragging audio onto the page element will add the audio fragment to that page. diff -r 90c7b42264d4 -r c8707694f4e7 test_create.html --- a/test_create.html Fri Jan 12 23:31:29 2018 +0000 +++ b/test_create.html Tue Jan 16 14:33:07 2018 +0000 @@ -469,7 +469,7 @@
-
+

Page

diff -r 90c7b42264d4 -r c8707694f4e7 test_create/test_core.js --- a/test_create/test_core.js Fri Jan 12 23:31:29 2018 +0000 +++ b/test_create/test_core.js Tue Jan 16 14:33:07 2018 +0000 @@ -31,6 +31,42 @@ var AngularInterface = angular.module("creator", []); +AngularInterface.directive("dropzone", function () { + return { + restrict: "A", + link: function (scope, elem) { + elem.bind('dragover', function (evt) { + evt.stopPropagation(); + evt.preventDefault(); + }); + elem.bind('dragend', function (evt) { + console.log(evt); + evt.stopPropagation(); + evt.preventDefault(); + }); + elem.bind('drop', function (event) { + var evt = event.originalEvent; + console.log(evt); + evt.stopPropagation(); + evt.preventDefault(); + + var files = evt.dataTransfer.files; + for (var i = 0, f; f = files[i]; i++) { + var reader = new FileReader(); + reader.readAsArrayBuffer(f); + + reader.onload = (function (theFile) { + return function (e) { + scope.addAudioElementFromFile(theFile.name); + scope.$apply(); + }; + })(f); + } + }); + } + } +}); + var specification = new Specification(); window.onload = function () { @@ -211,9 +247,9 @@ } }; $s.select = function (name) { - $s.selected = name; - } - // Get the test interface specifications + $s.selected = name; + } + // Get the test interface specifications $s.file = undefined; $s.description = ""; @@ -492,6 +528,10 @@ $s.addAudioElement = function () { $s.page.addAudioElement(); }; + $s.addAudioElementFromFile = function (filename) { + var fragment = $s.page.addAudioElement(); + fragment.url = filename; + }; $s.removeAudioElement = function (element) { var index = $s.page.audioElements.findIndex(function (a) { return a == element;