summaryrefslogtreecommitdiffstats
path: root/js/directive
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 01:11:53 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2014-05-23 01:11:53 +0200
commit8f833877eebd93f1c938833dd28255c63037588f (patch)
treefc304acb29c2327ead6648bf308243bdfb6ee468 /js/directive
parenta0b6fad1ada52457c2c5022fcb7685c1fff16abb (diff)
fix slideup
Diffstat (limited to 'js/directive')
-rw-r--r--js/directive/NewsReadFile.js25
-rw-r--r--js/directive/NewsSlideUp.js75
-rw-r--r--js/directive/NewsTriggerClick.js (renamed from js/directive/NewsForwardClick.js)0
3 files changed, 89 insertions, 11 deletions
diff --git a/js/directive/NewsReadFile.js b/js/directive/NewsReadFile.js
index d3ed5b80e..89ed0adfc 100644
--- a/js/directive/NewsReadFile.js
+++ b/js/directive/NewsReadFile.js
@@ -10,19 +10,22 @@
app.directive('newsReadFile', () => {
'use strict';
- return (scope, elm, attr) => {
+ return (scope, elem, attr) => {
- let file = elm[0].files[0];
- let reader = new FileReader();
+ elem.change(() => {
- reader.onload = (event) => {
- elm[0].value = 0;
- scope.$fileContent = event.target.result;
- scope.$apply(attr.newsReadFile); // FIXME: is there a more flexible
- // solution where we dont have to
- // bind the file to scope?
- };
+ let file = elem[0].files[0];
+ let reader = new FileReader();
- reader.reasAsText(file);
+ reader.onload = (event) => {
+ elem[0].value = 0;
+ // FIXME: is there a more flexible solution where we dont have
+ // to bind the file to scope?
+ scope.$fileContent = event.target.result;
+ scope.$apply(attr.newsReadFile);
+ };
+
+ reader.readAsText(file);
+ });
};
}); \ No newline at end of file
diff --git a/js/directive/NewsSlideUp.js b/js/directive/NewsSlideUp.js
new file mode 100644
index 000000000..437a119e7
--- /dev/null
+++ b/js/directive/NewsSlideUp.js
@@ -0,0 +1,75 @@
+/**
+ * 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('newsSlideUp', ($rootScope, $document) => {
+ 'use strict';
+
+ return (scope, elem, attr) => {
+ // defaults
+ let slideArea = elem;
+ let cssClass = false;
+
+ let options = scope.$eval(attr.newsSlideUp);
+
+ if (options) {
+ if (options.selector) {
+ slideArea = $(options.selector);
+ }
+
+ if (options.cssClass) {
+ cssClass = options.cssClass;
+ }
+
+
+ if (options.hideOnFocusLost) {
+ $($document[0].body).click(() => {
+ $rootScope.$broadcast('newsSlideUp');
+ });
+
+ $rootScope.$on('newsSlideUp', (scope, params) => {
+ if (params !== slideArea &&
+ slideArea.is(':visible') &&
+ !slideArea.is(':animated')) {
+
+ slideArea.slideUp();
+
+ if (cssClass) {
+ elem.removeClass(cssClass);
+ }
+ }
+ });
+
+ slideArea.click((event) => {
+ $rootScope.$broadcast('newsSlideUp', slideArea);
+ event.stopPropagation();
+ });
+
+ elem.click((event) => {
+ $rootScope.$broadcast('newsSlideUp', slideArea);
+ event.stopPropagation();
+ });
+ }
+ }
+
+ elem.click(() => {
+ if (slideArea.is(':visible') && !slideArea.is(':animated')) {
+ slideArea.slideUp();
+ if (cssClass) {
+ elem.removeClass(cssClass);
+ }
+ } else {
+ slideArea.slideDown();
+ if (cssClass) {
+ elem.addClass(cssClass);
+ }
+ }
+ });
+
+ };
+}); \ No newline at end of file
diff --git a/js/directive/NewsForwardClick.js b/js/directive/NewsTriggerClick.js
index d5c43e442..d5c43e442 100644
--- a/js/directive/NewsForwardClick.js
+++ b/js/directive/NewsTriggerClick.js