From 4b0215f7f90c2819576d13b923f29ea529b72827 Mon Sep 17 00:00:00 2001 From: Jeremy Huff Date: Tue, 1 Jan 2019 23:59:47 -0600 Subject: [PATCH] WIp --- src/main/resources/templates/index.html | 53 +++++++---- .../components/singleResultViewerComponent.js | 92 +++++++++++++++++++ src/main/webapp/app/config/appConfig.js | 6 +- .../app/controllers/singleResultController.js | 29 +----- .../app/directives/contentViewerDirective.js | 2 + .../app/model/singleResultContextModel.js | 3 +- .../styles/sass/discovery-context/_all.scss | 4 + .../views/components/singleResultViewer.html | 5 + .../app/views/discovery/single-result.html | 7 -- 9 files changed, 142 insertions(+), 59 deletions(-) create mode 100644 src/main/webapp/app/components/singleResultViewerComponent.js create mode 100644 src/main/webapp/app/views/components/singleResultViewer.html diff --git a/src/main/resources/templates/index.html b/src/main/resources/templates/index.html index 2b2dedca..4c1e7da1 100644 --- a/src/main/resources/templates/index.html +++ b/src/main/resources/templates/index.html @@ -30,30 +30,42 @@ + +
+
+
+
+
+ +
+
+
+
+
+ + +
-
- -
@@ -201,6 +213,7 @@ + diff --git a/src/main/webapp/app/components/singleResultViewerComponent.js b/src/main/webapp/app/components/singleResultViewerComponent.js new file mode 100644 index 00000000..cb78868b --- /dev/null +++ b/src/main/webapp/app/components/singleResultViewerComponent.js @@ -0,0 +1,92 @@ +sage.component("singleResultViewer", { + templateUrl: "views/components/singleResultViewer.html", + bindings: {}, + controller: function($scope, $routeParams, SingleResultContextService, $q) { + + $scope.ready = false; + + var getContentType = function(url) { + + var defer = $q.defer(); + + var extension; + + if(url) { + extension = url.split('.').pop(); + } + + if(extension) { + var ct = "default"; + var keys = Object.keys(appConfig.contentMap); + for(var i in keys) { + var key = keys[i] + var types = appConfig.contentMap[key]; + var index = types.indexOf(extension); + if(index !== -1) { + defer.resolve(types[index] || ct); + break; + } + } + } else { + var xhttp = new XMLHttpRequest(); + xhttp.open('HEAD', url); + xhttp.onreadystatechange = function () { + if (this.readyState == this.DONE) { + var ct = this.getResponseHeader("Content-Type"); + defer.resolve(ct); + } + }; + xhttp.send(); + } + + return defer.promise; + }; + + $scope.singleResultMode = function() { + return $routeParams.resultId != null; + }; + + SingleResultContextService.getSingleResult().then(function(sr) { + + $scope.singleResultContext = sr; + + getContentType().then(function(ct) { + console.log(ct); + $scope.contentType = ct; + $scope.ready = true; + }); + + console.log($scope.singleResultContext); + + }); + + } +}); + +sage.service("SingleResultContextService", function($q) { + + var singleResultContextService = this; + + var defer; + + var singleResult; + + singleResultContextService.getSingleResult = function() { + + defer = $q.defer(); + + if(singleResult) { + defer.resolve(singleResult); + } + + return defer.promise; + }; + + singleResultContextService.setSingleResult = function(sr, trigger) { + trigger = false; + singleResult = sr; + if(defer) defer.resolve(singleResult); + trigger = true; + }; + +}); \ No newline at end of file diff --git a/src/main/webapp/app/config/appConfig.js b/src/main/webapp/app/config/appConfig.js index fbaac6aa..e2dedfc6 100644 --- a/src/main/webapp/app/config/appConfig.js +++ b/src/main/webapp/app/config/appConfig.js @@ -30,12 +30,12 @@ var appConfig = { // Set this to 'admin' or 'user' if using mock AuthService // otherwise set to null or false + 'mockRole': null, - 'contentMap': {"image": ["image/jpeg","image/png","image/gif"],"seadragon": ["image/jp2","image/tiff"]}, - 'cantaloupeBaseUrl': 'https://api-dev.library.tamu.edu/iiif/2/', + 'contentMap': {"image": ["image/jpeg","image/png","image/gif", "text/html;charset=UTF-8", "jpg"],"seadragon": ["image/jp2","image/tiff"]}, - 'mockRole': null, + 'cantaloupeBaseUrl': 'https://api-dev.library.tamu.edu/iiif/2/', 'defaultThumbnailURI': "resources/images/default-thumbnail.jpg" diff --git a/src/main/webapp/app/controllers/singleResultController.js b/src/main/webapp/app/controllers/singleResultController.js index 0e70cb7b..fb0ebd76 100644 --- a/src/main/webapp/app/controllers/singleResultController.js +++ b/src/main/webapp/app/controllers/singleResultController.js @@ -1,4 +1,4 @@ -sage.controller('SingleResultController', function ($controller, $scope, $routeParams, SingleResultContext, appConfig) { +sage.controller('SingleResultController', function ($controller, $scope, $routeParams, SingleResultContext) { angular.extend(this, $controller('CoreAdminController', { $scope: $scope @@ -8,33 +8,6 @@ sage.controller('SingleResultController', function ($controller, $scope, $routeP slug: $routeParams.slug, resultId: $routeParams.resultId, }); - - $scope.getContentType = function(url) { - var contentType, extension; - - if(url) { - extension = url.split('.').pop(); - console.log(extension); - } - - if(extension) { - contentType = extension; - } else { - var xhttp = new XMLHttpRequest(); - xhttp.open('HEAD', url); - xhttp.onreadystatechange = function () { - if (this.readyState == this.DONE) { - console.log(this.status); - var t = this.getResponseHeader("Content-Type"); - console.log(t); - contentType = t; - } - }; - xhttp.send(); - } - - return contentType; - }; $scope.singleResultContext = singleResultContext; diff --git a/src/main/webapp/app/directives/contentViewerDirective.js b/src/main/webapp/app/directives/contentViewerDirective.js index 6bd7da84..11b96a6d 100644 --- a/src/main/webapp/app/directives/contentViewerDirective.js +++ b/src/main/webapp/app/directives/contentViewerDirective.js @@ -14,8 +14,10 @@ sage.directive("contentviewer", function($filter) { typeLoop: for (var type in viewerMap) { for (var supportedType in viewerMap[type]) { + console.log($scope.contentType); if ($scope.contentType === viewerMap[type][supportedType]) { viewerTemplate = type; + console.log(viewerTemplate); break typeLoop; } } diff --git a/src/main/webapp/app/model/singleResultContextModel.js b/src/main/webapp/app/model/singleResultContextModel.js index 019cabf8..98d48ebf 100644 --- a/src/main/webapp/app/model/singleResultContextModel.js +++ b/src/main/webapp/app/model/singleResultContextModel.js @@ -1,4 +1,4 @@ -sage.model("SingleResultContext", function ($q, $location, $routeParams, WsApi, Result, Field, Search) { +sage.model("SingleResultContext", function ($q, $location, $routeParams, WsApi, SingleResultContextService) { return function SingleResultContext() { var singleResultContext = this; @@ -12,6 +12,7 @@ sage.model("SingleResultContext", function ($q, $location, $routeParams, WsApi, }).then(function(res) { var rc = angular.fromJson(res.body).payload.SingleResultContext; angular.extend(singleResultContext, rc); + SingleResultContextService.setSingleResult(singleResultContext); }); }); diff --git a/src/main/webapp/app/resources/styles/sass/discovery-context/_all.scss b/src/main/webapp/app/resources/styles/sass/discovery-context/_all.scss index ec184c72..d757e4e1 100644 --- a/src/main/webapp/app/resources/styles/sass/discovery-context/_all.scss +++ b/src/main/webapp/app/resources/styles/sass/discovery-context/_all.scss @@ -152,4 +152,8 @@ } } +} + +.single-item-viewer { + font: initial; } \ No newline at end of file diff --git a/src/main/webapp/app/views/components/singleResultViewer.html b/src/main/webapp/app/views/components/singleResultViewer.html new file mode 100644 index 00000000..0859901d --- /dev/null +++ b/src/main/webapp/app/views/components/singleResultViewer.html @@ -0,0 +1,5 @@ +
+
+ +
+
diff --git a/src/main/webapp/app/views/discovery/single-result.html b/src/main/webapp/app/views/discovery/single-result.html index 1b3bd48e..5f0c1dc8 100644 --- a/src/main/webapp/app/views/discovery/single-result.html +++ b/src/main/webapp/app/views/discovery/single-result.html @@ -1,12 +1,5 @@

{{singleResultContext.title | removeBrackets}}

-
-
- - -
-
-