1
0
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

This commit is contained in:
Bernhard Posselt 2013-07-18 17:06:22 +02:00
parent 9807ee7d6b
commit 866f5e8ed8
3 changed files with 105 additions and 11 deletions
js
app/directives
public
templates

View 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

View File

@ -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) {

View File

@ -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>