From 065c3cb77e0f4b2966c72682b3b2349593fca61c Mon Sep 17 00:00:00 2001 From: Alexander Zayats Date: Mon, 6 Feb 2017 13:44:54 +0200 Subject: [PATCH 1/2] Move bower.json to root directory, add .bowerrc, add make deps target (#101) * Move bower.json to root directory and add .bowerrc add deps make target * More precise XBlock and xblock-utils version specification * Update README with make tasks instead of commands, add clean, deps-test & tools make targets * Update .travis.yml to utilize Makefile and cache node_modules --- .bowerrc | 8 ++++++ .travis.yml | 9 ++++--- Makefile | 13 ++++++++++ README.md | 27 +++++--------------- video_xblock/static/bower.json => bower.json | 0 requirements.txt | 4 +-- 6 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 .bowerrc rename video_xblock/static/bower.json => bower.json (100%) diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 00000000..a3f98830 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,8 @@ +{ + "directory": "video_xblock/static/bower_components", + "scripts": { + "preinstall": "", + "postinstall": "", + "preuninstall": "" + } +} diff --git a/.travis.yml b/.travis.yml index e1235370..1cc4ff75 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,10 @@ python: - "2.7.10" - "2.7.13" -cache: pip +cache: + pip: true + directories: + - node_modules # NPM packages before_install: # Install latest stable NodeJS version. Required for eslint. @@ -11,11 +14,11 @@ before_install: # Install binary package for lxml to speed up build - sudo apt-get -qq update - sudo apt-get install -y python-lxml - - pip install -r test_requirements.txt before_script: + - make deps-test # Install eslint, eslint-config-edx and their dependencies - - npm install "eslint@^2.12.0" eslint-config-edx "eslint-plugin-dollar-sign@0.0.5" "eslint-plugin-import@^1.9.2" + - make tools script: - make quality-py diff --git a/Makefile b/Makefile index 1759ffbb..e8b5a630 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,9 @@ all: quality test +clean: + -rm -rf node_modules/ + test: test-py test-py: @@ -16,5 +19,15 @@ quality-py: quality-js: eslint video_xblock/static/js/ +deps: + pip install -r requirements.txt + bower install + +deps-test: + pip install -r test_requirements.txt + +tools: + npm install "eslint@^2.12.0" eslint-config-edx "eslint-plugin-dollar-sign@0.0.5" "eslint-plugin-import@^1.9.2" + package: echo "Here be static dependencies packaging" diff --git a/README.md b/README.md index a4ec51d8..6fb246d0 100644 --- a/README.md +++ b/README.md @@ -2,23 +2,24 @@ [![Coverage Status](https://coveralls.io/repos/github/raccoongang/xblock-video/badge.svg?branch=dev)](https://coveralls.io/github/raccoongang/xblock-video?branch=dev) # xblock-video + XBlock to embed videos hosted on different video platform into your courses. ## Installation -```bash +```shell sudo -sHu edxapp source ~/edxapp_env # Clone and install xblock git clone https://github.com/raccoongang/xblock-video.git cd xblock-video pip install -e . -# Install external JavaScript dependencies -cd video_xblock/static -bower install +# Install Python and JavaScript dependencies +make deps ``` ## Enabling in Studio + You can enable the Wistia xblock in studio through the advanced settings: @@ -38,15 +39,14 @@ TODO Install dependencies and development tools: ```shell -> pip install -r requirements.txt -> pip install -r test_requirements.txt -> npm install "eslint@^2.12.0" eslint-config-edx "eslint-plugin-dollar-sign@0.0.5" "eslint-plugin-import@^1.9.2" +> make deps deps-test tools ``` Run quality checks: ```shell > make quality ``` + Run tests: ```shell > make test @@ -57,16 +57,3 @@ Run tests: The code in this repository is licensed under the GPL v3 licence unless otherwise noted. Please see `LICENSE` file for details. - - -## Tests - -Assuming revealjs is installed as above, you can run python tests like so: - -```nosetests video_xblock``` - -To get statement coverage: - -```nosetests video_xblock --with-coverage --coverage-package=video_xblock``` - - diff --git a/video_xblock/static/bower.json b/bower.json similarity index 100% rename from video_xblock/static/bower.json rename to bower.json diff --git a/requirements.txt b/requirements.txt index 0efbaac3..897606d7 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ -git+https://github.com/edx/XBlock.git#egg=XBlock==0.4.12 -git+https://github.com/edx/xblock-utils.git#egg=xblock-utils==1.0.2 +git+https://github.com/edx/XBlock.git@xblock-0.4.12#egg=XBlock==0.4.12 +git+https://github.com/edx/xblock-utils.git@v1.0.2#egg=xblock-utils==1.0.2 pycaption<1.0 # The latest Python 2.7 compatible version requests==2.9.1 babelfish==0.5.5 From c15a1bd8946d951bc9de954694d839a01c13a249 Mon Sep 17 00:00:00 2001 From: Alexander Zayats Date: Mon, 6 Feb 2017 14:25:27 +0200 Subject: [PATCH 2/2] Fix saving playback progress by correctly reading it from localStorage (#102) --- video_xblock/static/js/player_state.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/video_xblock/static/js/player_state.js b/video_xblock/static/js/player_state.js index 42898cc9..ffc61b7d 100644 --- a/video_xblock/static/js/player_state.js +++ b/video_xblock/static/js/player_state.js @@ -107,10 +107,10 @@ var saveState = function() { * Save player progress in browser's local storage. * We need it when user is switching between tabs. */ -var saveProgressToLocalStore = function() { +var saveProgressToLocalStore = function saveProgressToLocalStore() { var player = this; var playbackProgress = localStorage.getItem('playbackProgress'); - if (playbackProgress === undefined) { + if (!playbackProgress) { playbackProgress = '{}'; } playbackProgress = JSON.parse(playbackProgress);