FileTreeFolderController.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  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. * DS207: Consider shorter variations of null checks
  14. * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md
  15. */
  16. define(['base'], App =>
  17. App.controller('FileTreeFolderController', function(
  18. $scope,
  19. ide,
  20. $modal,
  21. localStorage
  22. ) {
  23. $scope.expanded =
  24. localStorage(`folder.${$scope.entity.id}.expanded`) || false
  25. $scope.toggleExpanded = function() {
  26. $scope.expanded = !$scope.expanded
  27. return localStorage(
  28. `folder.${$scope.entity.id}.expanded`,
  29. $scope.expanded
  30. )
  31. }
  32. $scope.onDrop = function(events, ui) {
  33. let entities
  34. if (ide.fileTreeManager.multiSelectedCount()) {
  35. entities = ide.fileTreeManager.getMultiSelectedEntityChildNodes()
  36. } else {
  37. entities = [$(ui.draggable).scope().entity]
  38. }
  39. for (let dropped_entity of Array.from(entities)) {
  40. try {
  41. ide.fileTreeManager.moveEntity(dropped_entity, $scope.entity)
  42. } catch (err) {
  43. $modal.open({
  44. templateUrl: 'duplicateFileModalTemplate',
  45. controller: 'DuplicateFileModalController',
  46. resolve: {
  47. fileName() {
  48. return dropped_entity.name
  49. }
  50. }
  51. })
  52. }
  53. }
  54. $scope.$digest()
  55. // clear highlight explicitly
  56. return $('.file-tree-inner .droppable-hover').removeClass(
  57. 'droppable-hover'
  58. )
  59. }
  60. $scope.orderByFoldersFirst = function(entity) {
  61. // We need this here as well as in FileTreeController
  62. // since the file-entity diretive creates a new scope
  63. // that doesn't inherit from previous scopes.
  64. if ((entity != null ? entity.type : undefined) === 'folder') {
  65. return '0'
  66. }
  67. return '1'
  68. }
  69. $scope.openNewDocModal = () =>
  70. $modal.open({
  71. templateUrl: 'newFileModalTemplate',
  72. controller: 'NewFileModalController',
  73. size: 'lg',
  74. resolve: {
  75. parent_folder() {
  76. return $scope.entity
  77. },
  78. projectFeatures() {
  79. return ide.$scope.project.features
  80. },
  81. type() {
  82. return 'doc'
  83. },
  84. userFeatures() {
  85. return ide.$scope.user.features
  86. }
  87. }
  88. })
  89. $scope.openNewFolderModal = () =>
  90. $modal.open({
  91. templateUrl: 'newFolderModalTemplate',
  92. controller: 'NewFolderModalController',
  93. resolve: {
  94. parent_folder() {
  95. return $scope.entity
  96. }
  97. }
  98. })
  99. return ($scope.openUploadFileModal = () =>
  100. $modal.open({
  101. templateUrl: 'newFileModalTemplate',
  102. controller: 'NewFileModalController',
  103. size: 'lg',
  104. resolve: {
  105. parent_folder() {
  106. return $scope.entity
  107. },
  108. projectFeatures() {
  109. return ide.$scope.project.features
  110. },
  111. type() {
  112. return 'upload'
  113. },
  114. userFeatures() {
  115. return ide.$scope.user.features
  116. }
  117. }
  118. }))
  119. }))