FileTreeRootFolderController.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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('FileTreeRootFolderController', function(
  16. $scope,
  17. $modal,
  18. ide
  19. ) {
  20. const { rootFolder } = $scope
  21. return ($scope.onDrop = function(events, ui) {
  22. let entities
  23. if (ide.fileTreeManager.multiSelectedCount()) {
  24. entities = ide.fileTreeManager.getMultiSelectedEntityChildNodes()
  25. } else {
  26. entities = [$(ui.draggable).scope().entity]
  27. }
  28. const ids = rootFolder.children.map(entity => entity.id)
  29. for (let dropped_entity of Array.from(entities)) {
  30. if (!ids.includes(dropped_entity.id)) {
  31. try {
  32. ide.fileTreeManager.moveEntity(dropped_entity, rootFolder)
  33. } catch (err) {
  34. $modal.open({
  35. templateUrl: 'duplicateFileModalTemplate',
  36. controller: 'DuplicateFileModalController',
  37. resolve: {
  38. fileName() {
  39. return dropped_entity.name
  40. }
  41. }
  42. })
  43. }
  44. }
  45. }
  46. $scope.$digest()
  47. // clear highlight explicitly
  48. return $('.file-tree-inner .droppable-hover').removeClass('droppable-hover')
  49. })
  50. })