             q.promise
 
 
+        # Listen for movies changes
+        $rootScope.$on "refresh.movies", () ->
+            $scope.init()
+
+        # Add drop event to document
+        document.addEventListener "dragover", (e) -> e.preventDefault() and e.stopPropagation()
+        document.addEventListener "dragleave", (e) -> e.preventDefault() and e.stopPropagation()
+        document.addEventListener "drop", (e) ->
+            e.preventDefault()
+            e.stopPropagation()
+            $scope.drop e.dataTransfer.files
+
         # Init app
         $scope.init()

         # Open movie details
         # @method open_movie
         # @param {Object} movie
        ###
        $scope.open_movie = (movie, apply) ->
            $rootScope.selected = movie
            if apply then $rootScope.$apply()


        ###*

         # @method init
        ###
        $scope.init = () ->
            $scope.reset_movies()

            # Read DB
            $db.movies.find {}, (e, movies) ->
                if e then console.error "DB", e

                # Add existing movies to main grid
