mirror of
https://github.com/chylex/Nextcloud-News.git
synced 2025-04-09 10:15:44 +02:00
display download link if audio file is not playable, fix #250
This commit is contained in:
parent
9807ee7d6b
commit
866f5e8ed8
43
js/app/directives/audio.coffee
Normal file
43
js/app/directives/audio.coffee
Normal file
@ -0,0 +1,43 @@
|
||||
###
|
||||
|
||||
ownCloud - News
|
||||
|
||||
@author Bernhard Posselt
|
||||
@copyright 2012 Bernhard Posselt nukeawhale@gmail.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 'newsAudio', ->
|
||||
directive =
|
||||
restrict: 'E'
|
||||
scope:
|
||||
src: '@'
|
||||
type: '@'
|
||||
transclude: true
|
||||
template: '' +
|
||||
'<audio controls="controls" preload="none" ng-hide="cantPlay()">' +
|
||||
'<source src="{{ src }}">' +
|
||||
'</audio>' +
|
||||
'<a href="{{ src }}" class="button" ng-show="cantPlay()" ' +
|
||||
'ng-transclude></a>'
|
||||
link: (scope, elm, attrs) ->
|
||||
source = elm.children().children('source')[0]
|
||||
cantPlay = false
|
||||
source.addEventListener 'error', ->
|
||||
scope.$apply ->
|
||||
cantPlay = true
|
||||
|
||||
scope.cantPlay = -> cantPlay
|
@ -91,6 +91,58 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
(function() {
|
||||
angular.module('News').directive('newsAudio', function() {
|
||||
var directive;
|
||||
return directive = {
|
||||
restrict: 'E',
|
||||
scope: {
|
||||
src: '@',
|
||||
type: '@'
|
||||
},
|
||||
transclude: true,
|
||||
template: '' + '<audio controls="controls" preload="none" ng-hide="cantPlay()">' + '<source src="{{ src }}">' + '</audio>' + '<a href="{{ src }}" 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.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 nukeawhale@gmail.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('droppable', [
|
||||
'$rootScope', function($rootScope) {
|
||||
|
@ -8,7 +8,7 @@
|
||||
{{ getRelativeDate(item.pubDate) }}
|
||||
</span>
|
||||
</h2>
|
||||
|
||||
|
||||
<div class="utils">
|
||||
<ul class="primary_item_utils">
|
||||
<li ng-class="{ important: item.isStarred() }"
|
||||
@ -20,7 +20,7 @@
|
||||
</div>
|
||||
|
||||
<h1 class="item_title">
|
||||
<a ng-click="itemBusinessLayer.setRead(item.id)"
|
||||
<a ng-click="itemBusinessLayer.setRead(item.id)"
|
||||
target="_blank" ng-href="{{ item.url|ocSanitizeURL }}">
|
||||
{{ item.title|ocRemoveTags:['em', 'b', 'i'] }}
|
||||
</a>
|
||||
@ -30,7 +30,7 @@
|
||||
<span ng-show="itemBusinessLayer.noFeedActive() && feedBusinessLayer.getFeedLink(item.feedId)">
|
||||
<?php p($l->t('from')) ?>
|
||||
<a target="_blank" ng-href="{{ feedBusinessLayer.getFeedLink(item.feedId)|ocSanitizeURL }}"
|
||||
class="from_feed">{{ itemBusinessLayer.getFeedTitle(item.id) }}</a>
|
||||
class="from_feed">{{ itemBusinessLayer.getFeedTitle(item.id) }}</a>
|
||||
</span>
|
||||
<span ui-if="item.author">
|
||||
<?php p($l->t('by')) ?>
|
||||
@ -39,21 +39,20 @@
|
||||
</h2>
|
||||
|
||||
<div class="enclosure" ui-if="item.enclosureLink">
|
||||
<audio controls="controls" ng-src="{{ item.enclosureLink }}"
|
||||
type="{{ item.enclosureType }}" preload="none">
|
||||
<?php p($l->t('Cant play audio format')) ?> {{item.enclosureType}}
|
||||
</audio>
|
||||
<news-audio type="{{ item.enclosureType }}" src="{{ item.enclosureLink }}"/><?php
|
||||
p($l->t('Download'))
|
||||
?></audio>
|
||||
</div>
|
||||
|
||||
<div class="body"
|
||||
ng-click="itemBusinessLayer.setRead(item.id)"
|
||||
|
||||
<div class="body"
|
||||
ng-click="itemBusinessLayer.setRead(item.id)"
|
||||
ng-bind-html-unsafe="item.body">
|
||||
</div>
|
||||
|
||||
<div class="bottom_utils">
|
||||
<ul class="secondary_item_utils"
|
||||
ng-class="{ show_keep_unread: itemBusinessLayer.isKeptUnread(item.id) }">
|
||||
<li ng-click="itemBusinessLayer.toggleKeepUnread(item.id)"
|
||||
<li ng-click="itemBusinessLayer.toggleKeepUnread(item.id)"
|
||||
class="keep_unread"><?php p($l->t('Keep unread')); ?>
|
||||
<input type="checkbox" ng-checked="itemBusinessLayer.isKeptUnread(item.id)"/>
|
||||
</li>
|
||||
|
Loading…
Reference in New Issue
Block a user