From 11fb5127631d76a98799f0e3239456c2c460429e Mon Sep 17 00:00:00 2001 From: diminator Date: Mon, 20 Jul 2015 18:59:32 +0200 Subject: [PATCH 1/5] s3 urls anonymous and refactored zencoder with multiple thumbnail sizes --- js/components/ascribe_media/media_player.js | 2 +- js/components/ascribe_uploader/react_s3_fine_uploader.js | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/js/components/ascribe_media/media_player.js b/js/components/ascribe_media/media_player.js index 3d032bef..749a9b0b 100644 --- a/js/components/ascribe_media/media_player.js +++ b/js/components/ascribe_media/media_player.js @@ -153,7 +153,7 @@ let MediaPlayer = React.createClass({ if (this.props.mimetype === 'video' && this.props.encodingStatus !== undefined && this.props.encodingStatus !== 100) { return (
-

Please be patient, the video is been encoded

+

Please be patient, the video is being encoded

diff --git a/js/components/ascribe_uploader/react_s3_fine_uploader.js b/js/components/ascribe_uploader/react_s3_fine_uploader.js index e6c5cb20..3ececa6d 100644 --- a/js/components/ascribe_uploader/react_s3_fine_uploader.js +++ b/js/components/ascribe_uploader/react_s3_fine_uploader.js @@ -209,6 +209,7 @@ var ReactS3FineUploader = React.createClass({ requestKey(fileId) { let defer = new fineUploader.Promise(); let filename = this.state.uploader.getName(fileId); + let uuid = this.state.uploader.getUuid(fileId); window.fetch(this.props.keyRoutine.url, { method: 'post', @@ -220,7 +221,8 @@ var ReactS3FineUploader = React.createClass({ credentials: 'include', body: JSON.stringify({ 'filename': filename, - 'file_class': this.props.keyRoutine.fileClass, + 'category': this.props.keyRoutine.fileClass, + 'uuid': uuid, 'piece_id': this.props.keyRoutine.pieceId }) }) From e7d85d6eb8273b643bee52bfb11fbef13454374e Mon Sep 17 00:00:00 2001 From: diminator Date: Tue, 21 Jul 2015 15:52:58 +0200 Subject: [PATCH 2/5] updated thumbnails: - support multiformat - runs in celery (way faster registration!) updated s3 url generation: - anonymous "/DEPLOYMENT/USER_ID_MD5/PIECE_FILE_HASH/CATEGORY/FILENAME.EXT" - refactored code !!!!install postgres hstore extension sudo apt-get install postgresql postgresql-contrib sudo su - postgres psql mysite_db -c 'create extension hstore;' ./manage.py migrate --- js/components/ascribe_accordion_list/accordion_list_item.js | 2 +- js/components/ascribe_detail/edition_container.js | 5 +++++ js/components/ascribe_detail/media_container.js | 3 ++- sass/ascribe_accordion_list.scss | 1 + 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/js/components/ascribe_accordion_list/accordion_list_item.js b/js/components/ascribe_accordion_list/accordion_list_item.js index 00235d96..96fe619c 100644 --- a/js/components/ascribe_accordion_list/accordion_list_item.js +++ b/js/components/ascribe_accordion_list/accordion_list_item.js @@ -155,7 +155,7 @@ let AccordionListItem = React.createClass({
- +
diff --git a/js/components/ascribe_detail/edition_container.js b/js/components/ascribe_detail/edition_container.js index 15086434..89105086 100644 --- a/js/components/ascribe_detail/edition_container.js +++ b/js/components/ascribe_detail/edition_container.js @@ -27,6 +27,11 @@ let EditionContainer = React.createClass({ let timerId = window.setInterval(() => EditionActions.fetchOne(this.props.params.editionId), 10000); this.setState({timerId: timerId}); } + let thumbnail = state.edition.thumbnail; + if (state.edition.digital_work.mime === 'image' && typeof isEncoding === 'number' && isEncoding !== 100 && !this.state.timerId) { + let timerId = window.setInterval(() => EditionActions.fetchOne(this.props.params.editionId), 10000); + this.setState({timerId: timerId}); + } }, componentDidMount() { diff --git a/js/components/ascribe_detail/media_container.js b/js/components/ascribe_detail/media_container.js index f7ed5cfc..6bf58a9c 100644 --- a/js/components/ascribe_detail/media_container.js +++ b/js/components/ascribe_detail/media_container.js @@ -18,7 +18,8 @@ let MediaContainer = React.createClass({ }, render() { - let thumbnail = this.props.content.thumbnail; + let thumbnail = this.props.content.thumbnail.thumbnail_sizes && this.props.content.thumbnail.thumbnail_sizes['600x600'] ? + this.props.content.thumbnail.thumbnail_sizes['600x600'] : this.props.content.thumbnail.url_safe; let mimetype = this.props.content.digital_work.mime; let embed = null; let extraData = null; diff --git a/sass/ascribe_accordion_list.scss b/sass/ascribe_accordion_list.scss index 1b682735..3d5d071c 100644 --- a/sass/ascribe_accordion_list.scss +++ b/sass/ascribe_accordion_list.scss @@ -32,6 +32,7 @@ $ascribe-accordion-list-font: 'Source Sans Pro'; height: 110px; padding:0; cursor: pointer; + text-align: center; img { max-width: 100%; max-height: 100%; From af59c703641e8748cc9de9e6f01d03476914524c Mon Sep 17 00:00:00 2001 From: diminator Date: Tue, 21 Jul 2015 16:59:19 +0200 Subject: [PATCH 3/5] fixed media player text --- js/components/ascribe_media/media_player.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/components/ascribe_media/media_player.js b/js/components/ascribe_media/media_player.js index 749a9b0b..598c6d2d 100644 --- a/js/components/ascribe_media/media_player.js +++ b/js/components/ascribe_media/media_player.js @@ -153,7 +153,7 @@ let MediaPlayer = React.createClass({ if (this.props.mimetype === 'video' && this.props.encodingStatus !== undefined && this.props.encodingStatus !== 100) { return (
-

Please be patient, the video is being encoded

+

We successfully received your video and it is now being encoded, you can leave this page and check back on the status later.

From 35051bf67bf27ad1a68ed4321953535030d0918c Mon Sep 17 00:00:00 2001 From: diminator Date: Tue, 21 Jul 2015 17:29:58 +0200 Subject: [PATCH 4/5] fixed media player text --- js/components/ascribe_media/media_player.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/js/components/ascribe_media/media_player.js b/js/components/ascribe_media/media_player.js index 598c6d2d..b4d821ae 100644 --- a/js/components/ascribe_media/media_player.js +++ b/js/components/ascribe_media/media_player.js @@ -153,7 +153,10 @@ let MediaPlayer = React.createClass({ if (this.props.mimetype === 'video' && this.props.encodingStatus !== undefined && this.props.encodingStatus !== 100) { return (
-

We successfully received your video and it is now being encoded, you can leave this page and check back on the status later.

+

+ We successfully received your video and it is now being encoded. +
You can leave this page and check back on the status later.
+

From 62bdf97a2f1277bc2d7760b9fd9e71b919741cd6 Mon Sep 17 00:00:00 2001 From: diminator Date: Tue, 21 Jul 2015 21:13:46 +0200 Subject: [PATCH 5/5] cleanup of SPOOL old code --- js/components/ascribe_detail/edition_container.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/js/components/ascribe_detail/edition_container.js b/js/components/ascribe_detail/edition_container.js index 89105086..15086434 100644 --- a/js/components/ascribe_detail/edition_container.js +++ b/js/components/ascribe_detail/edition_container.js @@ -27,11 +27,6 @@ let EditionContainer = React.createClass({ let timerId = window.setInterval(() => EditionActions.fetchOne(this.props.params.editionId), 10000); this.setState({timerId: timerId}); } - let thumbnail = state.edition.thumbnail; - if (state.edition.digital_work.mime === 'image' && typeof isEncoding === 'number' && isEncoding !== 100 && !this.state.timerId) { - let timerId = window.setInterval(() => EditionActions.fetchOne(this.props.params.editionId), 10000); - this.setState({timerId: timerId}); - } }, componentDidMount() {