summaryrefslogtreecommitdiffstats
path: root/js/directive
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2015-03-30 16:20:05 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2015-03-30 16:20:05 +0200
commitee3d2332ec97487893ae5f1f46b599c550b25eb6 (patch)
treee5a46f12fc027e3deb7c9436160595bb60d99356 /js/directive
parent026ccbc8875fc78b665dec95c308afe8a3c5899e (diff)
fix #156
Diffstat (limited to 'js/directive')
-rw-r--r--js/directive/NewsEnclosure.js53
-rw-r--r--js/directive/NewsPlayOne.js30
-rw-r--r--js/directive/NewsStickyMenu.js27
3 files changed, 57 insertions, 53 deletions
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 <dev@bernhard-posselt.com>
- * @copyright Bernhard Posselt 2014
- */
-app.directive('newsEnclosure', function () {
- 'use strict';
- return {
- restrict: 'E',
- scope: {
- link: '@',
- type: '@'
- },
- transclude: true,
- template: '<div>' +
- '<video controls preload="none" ' +
- 'ng-show="mediaType==\'video\' && !cantPlay()">' +
- '<source ng-src="{{ link|trustUrl }}" type="{{ type }}">' +
- '</video>' +
- '<audio controls preload="none" ' +
- 'ng-show="mediaType==\'audio\' && !cantPlay()">' +
- '<source ng-src="{{ link|trustUrl }}" type="{{ type }}">' +
- '</audio>' +
- '<div ng-transclude ng-show="cantPlay()"></div>' +
- '</div>',
- 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 <dev@bernhard-posselt.com>
+ * @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 <dev@bernhard-posselt.com>
+ * @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