Просмотр исходного кода

Make bib previews more robust.

Shane Kilkelly 10 лет назад
Родитель
Сommit
b70a993572

+ 4 - 4
services/web/app/views/project/editor/binary-file.jade

@@ -19,11 +19,11 @@ div.binary-file.full-size(
 		onabort="sl_binaryFilePreviewError()"
 	)
 	
-	div(ng-if="(['bib'].indexOf(extension(openFile)) > -1) && !bibtex.error", ng-init="loadBibtexFilePreview()")
-		div.bib-loading(ng-if="bibtexPreview.loading")
+	div(ng-if="(['bib'].indexOf(extension(openFile)) > -1) && !bibtexPreview.error")
+		div.bib-loading(ng-show="bibtexPreview.loading == true")
 			| #{translate('loading')}...
 
-		div.bib-preview(ng-if="!bibtexPreview.loading && !bibtexPreview.error")
+		div.bib-preview(ng-show="bibtexPreview.data && !bibtexPreview.loading && !bibtexPreview.error")
 			div.scroll-container
 				p
 					| {{ bibtexPreview.data }}
@@ -31,7 +31,7 @@ div.binary-file.full-size(
 					| ...
 	
 	p.no-preview(
-		ng-if="failedLoad || bibtex.error || ['bib', 'png', 'jpg', 'jpeg', 'gif', 'pdf', 'eps'].indexOf(extension(openFile)) == -1"
+		ng-if="failedLoad || bibtexPreview.error || ['bib', 'png', 'jpg', 'jpeg', 'gif', 'pdf', 'eps'].indexOf(extension(openFile)) == -1"
 	) #{translate("no_preview_available")}
 
 	a.btn.btn-info(

+ 12 - 1
services/web/public/coffee/ide/binary-files/controllers/BinaryFileController.coffee

@@ -8,11 +8,18 @@ define [
 		$scope.bibtexPreview =
 			loading: false
 			error: false
-			data: ""
+			data: null
 
 		$scope.failedLoad = false
+
 		$rootScope.$on 'entity:selected', () ->
 			$scope.failedLoad = false
+			$scope.loadBibtexIfRequired()
+
+		$scope.loadBibtexIfRequired = () ->
+			if $scope.extension($scope.openFile) == 'bib'
+				$scope.bibtexPreview.data = null
+				$timeout($scope.loadBibtexFilePreview, 0)
 
 		window.sl_binaryFilePreviewError = () =>
 			$scope.failedLoad = true
@@ -24,6 +31,7 @@ define [
 		$scope.loadBibtexFilePreview = () ->
 			url = "/project/#{project_id}/file/#{$scope.openFile.id}?range=0-#{TWO_MEGABYTES}"
 			$scope.bibtexPreview.loading = true
+			$scope.$apply()
 			$http.get(url)
 				.success (data) ->
 					$scope.bibtexPreview.loading = false
@@ -47,4 +55,7 @@ define [
 				if table_wrap.offsetHeight > desired_height
 					table_wrap.style.height = desired_height + 'px'
 					table_wrap.style['max-height'] = desired_height + 'px'
+
+		$scope.loadBibtexIfRequired()
+
 	]