summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXéfir Destiny <xefir@crystalyx.net>2014-07-23 23:14:48 +0200
committerXéfir Destiny <xefir@crystalyx.net>2014-07-23 23:14:48 +0200
commita6d1484935117b592415ed7da4f7b91da15c08a0 (patch)
tree541fcd74fa85b6a9ccb4ab7a85b5d9d9bb999f8d
parentd85e1cab1ef9876d15be6632c7358af17645f5c4 (diff)
Final smash and tested with different type of audios and videos
-rw-r--r--js/app/directives/audio.coffee4
-rw-r--r--js/app/directives/video.coffee44
-rw-r--r--js/public/app.js56
-rw-r--r--templates/part.items.php16
4 files changed, 110 insertions, 10 deletions
diff --git a/js/app/directives/audio.coffee b/js/app/directives/audio.coffee
index 3d6d94062..719adc282 100644
--- a/js/app/directives/audio.coffee
+++ b/js/app/directives/audio.coffee
@@ -34,8 +34,8 @@ angular.module('News').directive 'newsAudio', ->
'<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' +
'ng-transclude></a>'
link: (scope, elm, attrs) ->
- source = elm.children().children('source')[0]
- cantPlay = false
+ source = elm.children('audio').children('source')[0]
+ cantPlay = !document.createElement('audio').canPlayType(attrs['type']);
source.addEventListener 'error', ->
scope.$apply ->
cantPlay = true
diff --git a/js/app/directives/video.coffee b/js/app/directives/video.coffee
new file mode 100644
index 000000000..cf7454f84
--- /dev/null
+++ b/js/app/directives/video.coffee
@@ -0,0 +1,44 @@
+###
+
+ownCloud - News
+
+@author Bernhard Posselt
+@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+License as published by the Free Software Foundation; either
+version 3 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+
+You should have received a copy of the GNU Affero General Public
+License along with this library. If not, see <http://www.gnu.org/licenses/>.
+
+###
+
+angular.module('News').directive 'newsVideo', ->
+ directive =
+ restrict: 'E'
+ scope:
+ src: '@'
+ type: '@'
+ transclude: true
+ template: '' +
+ '<video controls="controls" preload="none" ng-hide="cantPlay()">' +
+ '<source ng-src="{{ src|trustUrl }}">' +
+ '</video>' +
+ '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' +
+ 'ng-transclude></a>'
+ link: (scope, elm, attrs) ->
+ source = elm.children('video').children('source')[0]
+ cantPlay = !document.createElement('video').canPlayType(attrs['type']);
+ source.addEventListener 'error', ->
+ scope.$apply ->
+ cantPlay = true
+
+ scope.cantPlay = -> cantPlay
+
diff --git a/js/public/app.js b/js/public/app.js
index c1c2363be..fcdf6934e 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -105,8 +105,60 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
template: '' + '<audio controls="controls" preload="none" ng-hide="cantPlay()">' + '<source ng-src="{{ src|trustUrl }}">' + '</audio>' + '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' + 'ng-transclude></a>',
link: function(scope, elm, attrs) {
var cantPlay, source;
- source = elm.children().children('source')[0];
- cantPlay = false;
+ source = elm.children('audio').children('source')[0];
+ cantPlay = !document.createElement('audio').canPlayType(attrs['type']);
+ source.addEventListener('error', function() {
+ return scope.$apply(function() {
+ return cantPlay = true;
+ });
+ });
+ return scope.cantPlay = function() {
+ return cantPlay;
+ };
+ }
+ };
+ });
+
+}).call(this);
+
+// Generated by CoffeeScript 1.6.3
+/*
+
+ownCloud - News
+
+@author Bernhard Posselt
+@copyright 2012 Bernhard Posselt dev@bernhard-posselt.com
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+License as published by the Free Software Foundation; either
+version 3 of the License, or any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+
+You should have received a copy of the GNU Affero General Public
+License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+
+(function() {
+ angular.module('News').directive('newsVideo', function() {
+ var directive;
+ return directive = {
+ restrict: 'E',
+ scope: {
+ src: '@',
+ type: '@'
+ },
+ transclude: true,
+ template: '' + '<video controls="controls" preload="none" ng-hide="cantPlay()">' + '<source ng-src="{{ src|trustUrl }}">' + '</video>' + '<a ng-href="{{ src|trustUrl }}" class="button" ng-show="cantPlay()" ' + 'ng-transclude></a>',
+ link: function(scope, elm, attrs) {
+ var cantPlay, source;
+ source = elm.children('video').children('source')[0];
+ cantPlay = !document.createElement('video').canPlayType(attrs['type']);
source.addEventListener('error', function() {
return scope.$apply(function() {
return cantPlay = true;
diff --git a/templates/part.items.php b/templates/part.items.php
index 0ba499080..aea772642 100644
--- a/templates/part.items.php
+++ b/templates/part.items.php
@@ -64,12 +64,16 @@
</h2>
<div class="enclosure" ui-if="item.enclosureLink" ng-switch="item.enclosureMime.split('/')[0]">
- <audio ng-switch-when="audio" type="{{ item.enclosureMime }}" ng-src="{{ item.enclosureLink|trustUrl }}" controls><?php
- p($l->t('Download'))
- ?></audio>
- <video ng-switch-when="video" type="{{ item.enclosureMime }}" ng-src="{{ item.enclosureLink|trustUrl }}" controls><?php
- p($l->t('Download'))
- ?></video>
+ <div ng-switch-when="audio">
+ <news-audio type="{{ item.enclosureMime }}" ng-src="{{ item.enclosureLink|trustUrl }}"><?php
+ p($l->t('Download'))
+ ?></news-audio>
+ </div>
+ <div ng-switch-when="video">
+ <news-video type="{{ item.enclosureMime }}" ng-src="{{ item.enclosureLink|trustUrl }}"><?php
+ p($l->t('Download'))
+ ?></news-video>
+ </div>
<img ng-switch-when="image" type="{{ item.enclosureMime }}" ng-src="{{ item.enclosureLink|trustUrl }}" alt="" />
<a ng-switch-default type="{{ item.enclosureMime }}" ng-href="{{ item.enclosureLink|trustUrl }}"><?php
p($l->t('Download'))