FileTreeFolderController.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  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. ide.fileTreeManager.moveEntity(dropped_entity, $scope.entity)
  41. }
  42. $scope.$digest()
  43. // clear highlight explicitly
  44. return $('.file-tree-inner .droppable-hover').removeClass(
  45. 'droppable-hover'
  46. )
  47. }
  48. $scope.orderByFoldersFirst = function(entity) {
  49. // We need this here as well as in FileTreeController
  50. // since the file-entity diretive creates a new scope
  51. // that doesn't inherit from previous scopes.
  52. if ((entity != null ? entity.type : undefined) === 'folder') {
  53. return '0'
  54. }
  55. return '1'
  56. }
  57. $scope.openNewDocModal = () =>
  58. $modal.open({
  59. templateUrl: 'newFileModalTemplate',
  60. controller: 'NewFileModalController',
  61. size: 'lg',
  62. resolve: {
  63. parent_folder() {
  64. return $scope.entity
  65. },
  66. projectFeatures() {
  67. return ide.$scope.project.features
  68. },
  69. type() {
  70. return 'doc'
  71. },
  72. userFeatures() {
  73. return ide.$scope.user.features
  74. }
  75. }
  76. })
  77. $scope.openNewFolderModal = () =>
  78. $modal.open({
  79. templateUrl: 'newFolderModalTemplate',
  80. controller: 'NewFolderModalController',
  81. resolve: {
  82. parent_folder() {
  83. return $scope.entity
  84. }
  85. }
  86. })
  87. return ($scope.openUploadFileModal = () =>
  88. $modal.open({
  89. templateUrl: 'newFileModalTemplate',
  90. controller: 'NewFileModalController',
  91. size: 'lg',
  92. resolve: {
  93. parent_folder() {
  94. return $scope.entity
  95. },
  96. projectFeatures() {
  97. return ide.$scope.project.features
  98. },
  99. type() {
  100. return 'upload'
  101. },
  102. userFeatures() {
  103. return ide.$scope.user.features
  104. }
  105. }
  106. }))
  107. }))