From b8ab9baebdd72a7a5e38c08d46681d833d7472e7 Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 17 Oct 2018 16:37:48 +0100 Subject: [PATCH 1/2] Search terms in URL --- .gitignore | 1 + package-lock.json | 60 +++++++++++-------- src/URLDataProvider.ts | 6 +- .../uv-av-extension/dependencies.js | 19 +++++- .../uv-default-extension/dependencies.js | 1 + .../uv-mediaelement-extension/dependencies.js | 1 + .../uv-pdf-extension/dependencies.js | 1 + .../uv-seadragon-extension/dependencies.js | 1 + .../uv-virtex-extension/dependencies.js | 3 + .../FooterPanel.ts | 15 ++++- 10 files changed, 78 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index ca2051b64..fe827aaae 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,7 @@ src/themes ## Misc ################# +examples Thumbs.db Desktop.ini .DS_Store diff --git a/package-lock.json b/package-lock.json index 6ce1ce546..43ec518e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -276,7 +276,6 @@ "@iiif/manifold": "1.2.36", "@types/jquery": "2.0.34", "@types/jqueryui": "^1.11.36", - "exjs": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d", "manifesto.js": "3.0.9" }, "dependencies": { @@ -309,7 +308,7 @@ }, "exjs": { "version": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d", - "from": "github:BSick7/exjs#0.5.1" + "from": "github:BSick7/exjs#87f638b98635fe8ddee36ce964e64bcce6e2bb6d" }, "typescript": { "version": "2.9.2", @@ -2951,10 +2950,6 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, - "exjs": { - "version": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2", - "from": "github:BSick7/exjs#0.5.0" - }, "expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -3621,12 +3616,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3641,17 +3638,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3768,7 +3768,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3780,6 +3781,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3794,6 +3796,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -3801,12 +3804,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3825,6 +3830,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -3905,7 +3911,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -3917,6 +3924,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4038,6 +4046,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5093,10 +5102,6 @@ "sshpk": "^1.7.0" } }, - "http-status-codes": { - "version": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", - "from": "github:edsilv/http-status-codes#v0.0.7" - }, "https-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", @@ -7327,10 +7332,6 @@ "resolved": "https://registry.npmjs.org/jsviews/-/jsviews-0.9.83.tgz", "integrity": "sha1-BpsFEigz0jFVzDziwtn7LPeJqYo=" }, - "key-codes": { - "version": "github:edsilv/key-codes#c18ff040b716097af23b18ecdbc4e4c1a559691e", - "from": "github:edsilv/key-codes#v0.0.7" - }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -7588,9 +7589,17 @@ "resolved": "https://registry.npmjs.org/manifesto.js/-/manifesto.js-3.0.9.tgz", "integrity": "sha512-sblQSbDmPszfwqdcSVOZp0eXIFMg7vUYJKIVTGRoO65HBppjS9ipRZ+jReV3dt5WQhI5J58KXJL97z5mcKL/pA==", "requires": { - "exjs": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2", - "http-status-codes": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", "request": "^2.83.0" + }, + "dependencies": { + "exjs": { + "version": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2", + "from": "github:BSick7/exjs#98195810790c0e61cb5beb510da4b756528f92f2" + }, + "http-status-codes": { + "version": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749", + "from": "github:edsilv/http-status-codes#af3a8ab9970b1f291a79b03c7382dc16aebee749" + } } }, "map-cache": { @@ -10882,7 +10891,6 @@ "requires": { "@types/three": "0.91.0", "@types/webvr-api": "0.0.31", - "key-codes": "github:edsilv/key-codes#c18ff040b716097af23b18ecdbc4e4c1a559691e", "three": "0.91.0" }, "dependencies": { @@ -10898,6 +10906,10 @@ "version": "0.0.31", "resolved": "https://registry.npmjs.org/@types/webvr-api/-/webvr-api-0.0.31.tgz", "integrity": "sha1-9gYf6IoDXTSotqDFX4dYkB7IoI4=" + }, + "key-codes": { + "version": "github:edsilv/key-codes#c18ff040b716097af23b18ecdbc4e4c1a559691e", + "from": "github:edsilv/key-codes#c18ff040b716097af23b18ecdbc4e4c1a559691e" } } }, diff --git a/src/URLDataProvider.ts b/src/URLDataProvider.ts index acd212b84..059b77acf 100644 --- a/src/URLDataProvider.ts +++ b/src/URLDataProvider.ts @@ -10,13 +10,11 @@ export default class URLDataProvider extends UVDataProvider { return Utils.Urls.getHashParameter(key, document) || defaultValue; } - public set(key: string, value: string): void { - if (!this.readonly) { + public set(key: string, value: string): void { if (value) { Utils.Urls.setHashParameter(key, value.toString(), document); } else { Utils.Urls.setHashParameter(key, '', document); - } - } + } } } \ No newline at end of file diff --git a/src/extensions/uv-av-extension/dependencies.js b/src/extensions/uv-av-extension/dependencies.js index e1d13206b..f43c36260 100644 --- a/src/extensions/uv-av-extension/dependencies.js +++ b/src/extensions/uv-av-extension/dependencies.js @@ -1,6 +1,15 @@ define(function () { + // https://developer.mozilla.org/en-US/Apps/Fundamentals/Audio_and_video_delivery/Live_streaming_web_audio_and_video + // Dash is supported everywhere except safari + // function isSafari() { + // // https://stackoverflow.com/questions/7944460/detect-safari-browser?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa + // var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); + // console.log('isSafari', isSafari); + // return isSafari; + // } function isFormatAvailable(formats, format) { var isAvailable = formats.includes(format); + //console.log('isFormatAvailable', format, isAvailable); return isAvailable; } function isHLSFormatAvailable(formats) { @@ -10,11 +19,18 @@ define(function () { return isFormatAvailable(formats, 'application/dash+xml'); } function canPlayHls() { - var doc = typeof document === 'object' && document, videoelem = doc && doc.createElement('video'), isvideosupport = Boolean(videoelem && videoelem.canPlayType), canPlay = [ + var doc = typeof document === 'object' && document, videoelem = doc && doc.createElement('video'), isvideosupport = Boolean(videoelem && videoelem.canPlayType), + // HLS manifests can go by many mime-types + canPlay = [ + // Apple santioned 'application/vnd.apple.mpegurl', + // Apple sanctioned for backwards compatibility 'audio/mpegurl', + // Very common 'audio/x-mpegurl', + // Very common 'application/x-mpegurl', + // Included for completeness 'video/x-mpegurl', 'video/mpegurl', 'application/mpegurl' @@ -45,3 +61,4 @@ define(function () { } }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/extensions/uv-default-extension/dependencies.js b/src/extensions/uv-default-extension/dependencies.js index 4c54110ab..af8b46c33 100644 --- a/src/extensions/uv-default-extension/dependencies.js +++ b/src/extensions/uv-default-extension/dependencies.js @@ -5,3 +5,4 @@ define(function () { }; }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/extensions/uv-mediaelement-extension/dependencies.js b/src/extensions/uv-mediaelement-extension/dependencies.js index d4207d39b..bae340919 100644 --- a/src/extensions/uv-mediaelement-extension/dependencies.js +++ b/src/extensions/uv-mediaelement-extension/dependencies.js @@ -5,3 +5,4 @@ define(function () { }; }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/extensions/uv-pdf-extension/dependencies.js b/src/extensions/uv-pdf-extension/dependencies.js index 7c8d0b72b..2099bf2fd 100644 --- a/src/extensions/uv-pdf-extension/dependencies.js +++ b/src/extensions/uv-pdf-extension/dependencies.js @@ -5,3 +5,4 @@ define(function () { }; }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/extensions/uv-seadragon-extension/dependencies.js b/src/extensions/uv-seadragon-extension/dependencies.js index 5730f984d..29d4c9a93 100644 --- a/src/extensions/uv-seadragon-extension/dependencies.js +++ b/src/extensions/uv-seadragon-extension/dependencies.js @@ -5,3 +5,4 @@ define(function () { }; }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/extensions/uv-virtex-extension/dependencies.js b/src/extensions/uv-virtex-extension/dependencies.js index eb319b45c..bdc564fa9 100644 --- a/src/extensions/uv-virtex-extension/dependencies.js +++ b/src/extensions/uv-virtex-extension/dependencies.js @@ -3,6 +3,9 @@ define(function () { return { sync: ['three.min'], async: ['VRControls', 'VREffect', 'stats.min', 'OBJLoader', 'MTLLoader', 'PLYLoader', 'GLTFLoader', 'Detector', 'WebVR', 'virtex', 'MetadataComponent'] + // sync: ['three.min', 'draco_decoder'], + // async: ['VRControls', 'VREffect', 'stats.min', 'DRACOLoader', 'GLTFLoader', 'OBJLoader', 'MTLLoader', 'Detector', 'WebVR', 'virtex', 'iiif-metadata-component'] }; }; }); +//# sourceMappingURL=dependencies.js.map \ No newline at end of file diff --git a/src/modules/uv-searchfooterpanel-module/FooterPanel.ts b/src/modules/uv-searchfooterpanel-module/FooterPanel.ts index 5c84bf886..0276624bb 100644 --- a/src/modules/uv-searchfooterpanel-module/FooterPanel.ts +++ b/src/modules/uv-searchfooterpanel-module/FooterPanel.ts @@ -6,6 +6,7 @@ import {ISeadragonExtension} from "../../extensions/uv-seadragon-extension/ISead import {Mode} from "../../extensions/uv-seadragon-extension/Mode"; import {AnnotationResults} from "../uv-shared-module/AnnotationResults"; import {UVUtils} from "../uv-shared-module/Utils"; +import URLDataProvider from "../../URLDataProvider"; import AnnotationGroup = Manifold.AnnotationGroup; export class FooterPanel extends BaseFooterPanel { @@ -34,6 +35,8 @@ export class FooterPanel extends BaseFooterPanel { currentPlacemarkerIndex: number; placemarkerTouched: boolean = false; terms: string; + searchUrl: string | null; + urlDataProvider: URLDataProvider; constructor($element: JQuery) { super($element); @@ -45,6 +48,9 @@ export class FooterPanel extends BaseFooterPanel { super.create(); + this.urlDataProvider = new URLDataProvider(true); + this.searchUrl = this.urlDataProvider.get('search', ''); + $.subscribe(BaseEvents.CANVAS_INDEX_CHANGED, () => { this.canvasIndexChanged(); this.setCurrentSearchResultPlacemarker(); @@ -156,7 +162,7 @@ export class FooterPanel extends BaseFooterPanel { var that = this; this.$searchButton.on('click', (e: any) => { - e.preventDefault(); + e.preventDefault(); this.search(this.$searchText.val()); }); @@ -200,6 +206,7 @@ export class FooterPanel extends BaseFooterPanel { this.$clearSearchResultsButton.on('click', (e: any) => { e.preventDefault(); $.publish(BaseEvents.CLEAR_ANNOTATIONS); + this.urlDataProvider.set('search', ''); }); // hide search options if not enabled/supported. @@ -255,6 +262,10 @@ export class FooterPanel extends BaseFooterPanel { this.$pagePositionMarker.hide(); this.$pagePositionLabel.hide(); } + //If search term exists in url, call search + if(this.searchUrl !== null && this.searchUrl !== "" && this.searchUrl !== undefined){ + this.search(this.searchUrl); + } } isSearchEnabled(): boolean { @@ -377,6 +388,8 @@ export class FooterPanel extends BaseFooterPanel { this.terms = terms; + this.urlDataProvider.set('search', this.$searchText.val()); + if (this.terms === '' || this.terms === this.content.enterKeyword) { this.extension.showMessage(this.config.modules.genericDialogue.content.emptyValue, function(){ this.$searchText.focus(); From c3d632e8d67401eaa5f7dec406fb9d093bb99cfe Mon Sep 17 00:00:00 2001 From: mark Date: Wed, 17 Oct 2018 16:50:31 +0100 Subject: [PATCH 2/2] Search terms in URL --- src/modules/uv-searchfooterpanel-module/FooterPanel.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/uv-searchfooterpanel-module/FooterPanel.ts b/src/modules/uv-searchfooterpanel-module/FooterPanel.ts index 0276624bb..d39f92df9 100644 --- a/src/modules/uv-searchfooterpanel-module/FooterPanel.ts +++ b/src/modules/uv-searchfooterpanel-module/FooterPanel.ts @@ -264,6 +264,7 @@ export class FooterPanel extends BaseFooterPanel { } //If search term exists in url, call search if(this.searchUrl !== null && this.searchUrl !== "" && this.searchUrl !== undefined){ + this.$searchText.val(this.searchUrl); this.search(this.searchUrl); } }