FileTreeRootFolderController.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* eslint-disable
  2. camelcase,
  3. max-len,
  4. no-return-assign,
  5. no-undef,
  6. */
  7. // TODO: This file was created by bulk-decaffeinate.
  8. // Fix any style issues and re-enable lint.
  9. /*
  10. * decaffeinate suggestions:
  11. * DS101: Remove unnecessary use of Array.from
  12. * DS102: Remove unnecessary code created because of implicit returns
  13. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  14. */
  15. define(['../../../base'], App =>
  16. App.controller('FileTreeRootFolderController', function($scope, $modal, ide) {
  17. const { rootFolder } = $scope
  18. return ($scope.onDrop = function(events, ui) {
  19. let entities
  20. if (ide.fileTreeManager.multiSelectedCount()) {
  21. entities = ide.fileTreeManager.getMultiSelectedEntityChildNodes()
  22. } else {
  23. entities = [$(ui.draggable).scope().entity]
  24. }
  25. const ids = rootFolder.children.map(entity => entity.id)
  26. for (let dropped_entity of Array.from(entities)) {
  27. if (!ids.includes(dropped_entity.id)) {
  28. try {
  29. ide.fileTreeManager.moveEntity(dropped_entity, rootFolder)
  30. } catch (err) {
  31. $modal.open({
  32. templateUrl: 'duplicateFileModalTemplate',
  33. controller: 'DuplicateFileModalController',
  34. resolve: {
  35. fileName() {
  36. return dropped_entity.name
  37. }
  38. }
  39. })
  40. }
  41. }
  42. }
  43. $scope.$digest()
  44. // clear highlight explicitly
  45. return $('.file-tree-inner .droppable-hover').removeClass(
  46. 'droppable-hover'
  47. )
  48. })
  49. }))