From ee3d2332ec97487893ae5f1f46b599c550b25eb6 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Mon, 30 Mar 2015 16:20:05 +0200 Subject: fix #156 --- js/directive/NewsEnclosure.js | 53 ------------------------------------------ js/directive/NewsPlayOne.js | 30 ++++++++++++++++++++++++ js/directive/NewsStickyMenu.js | 27 +++++++++++++++++++++ 3 files changed, 57 insertions(+), 53 deletions(-) delete mode 100644 js/directive/NewsEnclosure.js create mode 100644 js/directive/NewsPlayOne.js create mode 100644 js/directive/NewsStickyMenu.js (limited to 'js/directive') diff --git a/js/directive/NewsEnclosure.js b/js/directive/NewsEnclosure.js deleted file mode 100644 index c424b50c3..000000000 --- a/js/directive/NewsEnclosure.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * ownCloud - News - * - * This file is licensed under the Affero General Public License version 3 or - * later. See the COPYING file. - * - * @author Bernhard Posselt - * @copyright Bernhard Posselt 2014 - */ -app.directive('newsEnclosure', function () { - 'use strict'; - return { - restrict: 'E', - scope: { - link: '@', - type: '@' - }, - transclude: true, - template: '
' + - '' + - '' + - '
' + - '
', - link: function (scope, elem) { - if (scope.type.indexOf('audio') === 0) { - scope.mediaType = 'audio'; - } else { - scope.mediaType = 'video'; - } - var source = elem.children() - .children(scope.mediaType) - .children('source')[0]; - - var cantPlay = false; - - scope.cantPlay = function () { - return cantPlay; - }; - - source.addEventListener('error', function () { - scope.$apply(function () { - cantPlay = true; - }); - }); - } - }; -}); \ No newline at end of file diff --git a/js/directive/NewsPlayOne.js b/js/directive/NewsPlayOne.js new file mode 100644 index 000000000..860101668 --- /dev/null +++ b/js/directive/NewsPlayOne.js @@ -0,0 +1,30 @@ +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt + * @copyright Bernhard Posselt 2014 + */ + +/** + * Pause playback on elements other than the current one + */ +app.directive('newsPlayOne', function ($rootScope) { + 'use strict'; + return { + restrict: 'A', + link: function (scope, elem) { + elem.on('play', function () { + $rootScope.$broadcast('playing', elem); + }); + + $rootScope.$on('playing', function (scope, args) { + if (args[0] !== elem[0]) { + elem[0].pause(); + } + }); + } + }; +}); \ No newline at end of file diff --git a/js/directive/NewsStickyMenu.js b/js/directive/NewsStickyMenu.js new file mode 100644 index 000000000..f212721bb --- /dev/null +++ b/js/directive/NewsStickyMenu.js @@ -0,0 +1,27 @@ +/** + * ownCloud - News + * + * This file is licensed under the Affero General Public License version 3 or + * later. See the COPYING file. + * + * @author Bernhard Posselt + * @copyright Bernhard Posselt 2014 + */ +app.directive('newsStickyMenu', function () { + 'use strict'; + + return function (scope, elem, attr) { + var height = 40; + + $(attr.newsStickyMenu).scroll(function () { + var scrollHeight = $(this).scrollTop(); + + if (scrollHeight > height) { + elem.addClass('fixed'); + elem.css('top', scrollHeight); + } else { + elem.removeClass('fixed'); + } + }); + }; +}); \ No newline at end of file -- cgit v1.2.3