BinaryFileController.coffee 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. define [
  2. "base"
  3. ], (App) ->
  4. App.controller "BinaryFileController", ["$scope", "$rootScope", "$http", "$timeout", ($scope, $rootScope, $http, $timeout) ->
  5. $scope.bibtexPreview =
  6. loading: false
  7. error: false
  8. data: ""
  9. $scope.failedLoad = false
  10. $rootScope.$on 'entity:selected', () ->
  11. $scope.failedLoad = false
  12. window.sl_binaryFilePreviewError = () =>
  13. $scope.failedLoad = true
  14. $scope.$apply()
  15. $scope.extension = (file) ->
  16. return file.name.split(".").pop()?.toLowerCase()
  17. $scope.loadBibtexFilePreview = () ->
  18. url = "/project/#{project_id}/file/#{$scope.openFile.id}?range=0-5000"
  19. $scope.bibtexPreview.loading = true
  20. $http.get(url)
  21. .success (data) ->
  22. $scope.bibtexPreview.loading = false
  23. $scope.bibtexPreview.error = false
  24. try
  25. # remove last partial line
  26. data = data.replace(/\n.*$/, '')
  27. finally
  28. $scope.bibtexPreview.data = data
  29. $timeout($scope.setHeight, 0)
  30. .error (err) ->
  31. $scope.bibtexPreview.error = true
  32. $scope.bibtexPreview.loading = false
  33. $scope.setHeight = () ->
  34. # Behold, a ghastly hack
  35. guide = document.querySelector('.file-tree-inner')
  36. table_wrap = document.querySelector('.bib-preview .scroll-container')
  37. if table_wrap
  38. desired_height = guide.offsetHeight - 44
  39. if table_wrap.offsetHeight > desired_height
  40. table_wrap.style.height = desired_height + 'px'
  41. table_wrap.style['max-height'] = desired_height + 'px'
  42. ]