diff options
Diffstat (limited to 'js')
-rw-r--r-- | js/controller/ContentController.js | 14 | ||||
-rw-r--r-- | js/controller/ShareController.js | 6 | ||||
-rw-r--r-- | js/directive/ClickOutside.js | 31 |
3 files changed, 44 insertions, 7 deletions
diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js index 15459c01b..ab01bf0cd 100644 --- a/js/controller/ContentController.js +++ b/js/controller/ContentController.js @@ -12,6 +12,7 @@ app.controller('ContentController', function (Publisher, FeedResource, ItemResou $filter) { 'use strict'; + this.showDropdown = []; var self = this; ItemResource.clear(); @@ -222,4 +223,15 @@ app.controller('ContentController', function (Publisher, FeedResource, ItemResou }; this.activeItem = this.getFirstItem(); -});
\ No newline at end of file + + this.openDropdown = function(itemId){ + let actualItem = this.showDropdown[itemId]; + this.showDropdown = []; + this.showDropdown[itemId] = !actualItem; + }; + + this.hide = function(){ + this.showDropdown = []; + }; + +}); diff --git a/js/controller/ShareController.js b/js/controller/ShareController.js index 8d7235d89..eb056ce19 100644 --- a/js/controller/ShareController.js +++ b/js/controller/ShareController.js @@ -12,12 +12,6 @@ app.controller('ShareController', function (ShareResource, Loading) { 'use strict'; - this.showDropDown = false; - - this.toggleDropdown = function() { - this.showDropDown = !this.showDropDown; - }; - /** Array containing users to share an item with */ this.userList = []; diff --git a/js/directive/ClickOutside.js b/js/directive/ClickOutside.js new file mode 100644 index 000000000..7021a6330 --- /dev/null +++ b/js/directive/ClickOutside.js @@ -0,0 +1,31 @@ +/** +* Nextcloud - News +* +* This file is licensed under the Affero General Public License version 3 or +* later. See the COPYING file. +* +* @author Marco Nassabain <marco.nassabain@hotmail.com> +* @author Nicolas Wendling <nicolas.wendling1011@gmail.com> +* @author Jimmy Huynh <natorisaki@gmail.com> +* @author Aurélien David <dav.aurelien@gmail.com> +*/ +app.directive('clickOutside', function ($document) { + 'use strict'; + + return { + restrict: 'A', + scope: { + clickOutside: '&' + }, + link: function (scope, el) { + + $document.on('click', function (e) { + if (el !== e.target && !el[0].contains(e.target)) { + scope.$apply(function () { + scope.$eval(scope.clickOutside); + }); + } + }); + } + }; +}); |