summaryrefslogtreecommitdiffstats
path: root/js/directive
diff options
context:
space:
mode:
Diffstat (limited to 'js/directive')
-rw-r--r--js/directive/NewsDraggable.js22
-rw-r--r--js/directive/NewsDroppable.js34
2 files changed, 56 insertions, 0 deletions
diff --git a/js/directive/NewsDraggable.js b/js/directive/NewsDraggable.js
new file mode 100644
index 000000000..76360ecb7
--- /dev/null
+++ b/js/directive/NewsDraggable.js
@@ -0,0 +1,22 @@
+/**
+ * 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('newsDraggable', () => {
+ 'use strict';
+
+ return (scope, elem, attr) => {
+ let options = scope.$eval(attr.newsDraggable);
+
+ if (angular.isDefined(options)) {
+ elem.draggable(options);
+ } else {
+ elem.draggable();
+ }
+ };
+}); \ No newline at end of file
diff --git a/js/directive/NewsDroppable.js b/js/directive/NewsDroppable.js
new file mode 100644
index 000000000..a68f26444
--- /dev/null
+++ b/js/directive/NewsDroppable.js
@@ -0,0 +1,34 @@
+/**
+ * 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('newsDroppable', ($rootScope) => {
+ 'use strict';
+
+ return (scope, elem, attr) => {
+ let details = {
+ accept: '.feed',
+ hoverClass: 'drag-and-drop',
+ greedy: true,
+ drop: (event, ui) => {
+
+ $('.drag-and-drop').removeClass('drag-and-drop');
+
+ let data = {
+ folderId: parseInt(elem.data('id'), 10),
+ feedId: parseInt($(ui.draggable).data('id'), 10)
+ };
+
+ $rootScope.$broadcast('moveFeedToFolder', data);
+ scope.$apply(attr.droppable);
+ }
+ };
+
+ elem.droppable(details);
+ };
+}); \ No newline at end of file