FileTreeRootFolderController.js 1.6 KB

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