From e1a47683ef798f0569edebdf66e340ca439e357f Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 11 Aug 2014 16:29:15 +0200 Subject: Trigger events when app-settings visibility changes --- core/js/apps.js | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'core') diff --git a/core/js/apps.js b/core/js/apps.js index 5f221bb9826..d874f8598fa 100644 --- a/core/js/apps.js +++ b/core/js/apps.js @@ -43,15 +43,26 @@ var areaSelector = $(button).data('apps-slide-toggle'); var area = $(areaSelector); + function hideArea() { + area.slideUp(function() { + area.trigger(new $.Event('hide')); + }); + } + function showArea() { + area.slideDown(function() { + area.trigger(new $.Event('show')); + }); + } + // do nothing if the area is animated if (!area.is(':animated')) { // button toggles the area if (button === event.target) { if (area.is(':visible')) { - area.slideUp(); + hideArea(); } else { - area.slideDown(); + showArea(); } // all other areas that have not been clicked but are open @@ -59,7 +70,7 @@ } else { var closest = $(event.target).closest(areaSelector); if (area.is(':visible') && closest[0] !== area[0]) { - area.slideUp(); + hideArea(); } } } @@ -73,4 +84,4 @@ registerAppsSlideToggle(); }); -}(document, jQuery, OC)); \ No newline at end of file +}(document, jQuery, OC)); -- cgit v1.2.3 From 997653fd09c27eeeaa93f59a18d1631ee464b81c Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 11 Aug 2014 17:51:17 +0200 Subject: Replaced spaces with tabs in apps.js --- core/js/apps.js | 108 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) (limited to 'core') diff --git a/core/js/apps.js b/core/js/apps.js index d874f8598fa..21fae58985e 100644 --- a/core/js/apps.js +++ b/core/js/apps.js @@ -10,38 +10,38 @@ (function (document, $, exports) { - 'use strict'; + 'use strict'; - var dynamicSlideToggleEnabled = false; + var dynamicSlideToggleEnabled = false; - exports.Apps = { - enableDynamicSlideToggle: function () { - dynamicSlideToggleEnabled = true; - } - }; + exports.Apps = { + enableDynamicSlideToggle: function () { + dynamicSlideToggleEnabled = true; + } + }; - /** - * Provides a way to slide down a target area through a button and slide it - * up if the user clicks somewhere else. Used for the news app settings and - * add new field. - * - * Usage: - * - *
I'm sliding up
- */ - var registerAppsSlideToggle = function () { - var buttons = $('[data-apps-slide-toggle]'); + /** + * Provides a way to slide down a target area through a button and slide it + * up if the user clicks somewhere else. Used for the news app settings and + * add new field. + * + * Usage: + * + *
I'm sliding up
+ */ + var registerAppsSlideToggle = function () { + var buttons = $('[data-apps-slide-toggle]'); - $(document).click(function (event) { + $(document).click(function (event) { - if (dynamicSlideToggleEnabled) { - buttons = $('[data-apps-slide-toggle]'); - } + if (dynamicSlideToggleEnabled) { + buttons = $('[data-apps-slide-toggle]'); + } - buttons.each(function (index, button) { + buttons.each(function (index, button) { - var areaSelector = $(button).data('apps-slide-toggle'); - var area = $(areaSelector); + var areaSelector = $(button).data('apps-slide-toggle'); + var area = $(areaSelector); function hideArea() { area.slideUp(function() { @@ -54,34 +54,34 @@ }); } - // do nothing if the area is animated - if (!area.is(':animated')) { - - // button toggles the area - if (button === event.target) { - if (area.is(':visible')) { - hideArea(); - } else { - showArea(); - } - - // all other areas that have not been clicked but are open - // should be slid up - } else { - var closest = $(event.target).closest(areaSelector); - if (area.is(':visible') && closest[0] !== area[0]) { - hideArea(); - } - } - } - }); - - }); - }; - - - $(document).ready(function () { - registerAppsSlideToggle(); - }); + // do nothing if the area is animated + if (!area.is(':animated')) { + + // button toggles the area + if (button === event.target) { + if (area.is(':visible')) { + hideArea(); + } else { + showArea(); + } + + // all other areas that have not been clicked but are open + // should be slid up + } else { + var closest = $(event.target).closest(areaSelector); + if (area.is(':visible') && closest[0] !== area[0]) { + hideArea(); + } + } + } + }); + + }); + }; + + + $(document).ready(function () { + registerAppsSlideToggle(); + }); }(document, jQuery, OC)); -- cgit v1.2.3 From 288b6d40713de3707b489a1028935fabae62e021 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 12 Aug 2014 18:04:52 +0200 Subject: make singleselect check for gravity wish, and make it south for default quota --- core/js/singleselect.js | 6 +++++- settings/templates/users/part.setquota.php | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/js/singleselect.js b/core/js/singleselect.js index c22b5232207..6a4c104ffba 100644 --- a/core/js/singleselect.js +++ b/core/js/singleselect.js @@ -2,10 +2,14 @@ $.fn.singleSelect = function () { return this.each(function (i, select) { var input = $(''), + gravity = $(select).attr('data-gravity'), inputTooltip = $(select).attr('data-inputtitle'); if (inputTooltip){ input.attr('title', inputTooltip); } + if (typeof gravity === 'undefined') { + gravity = 'n' + } select = $(select); input.css('position', 'absolute'); input.css({ @@ -35,7 +39,7 @@ input.css(select.offset()); input.show(); if ($.fn.tipsy){ - input.tipsy({gravity: 'n', trigger: 'manual'}); + input.tipsy({gravity: gravity, trigger: 'manual'}); input.tipsy('show'); } select.css('background-color', 'white'); diff --git a/settings/templates/users/part.setquota.php b/settings/templates/users/part.setquota.php index ee9b918eace..55e31a930e9 100644 --- a/settings/templates/users/part.setquota.php +++ b/settings/templates/users/part.setquota.php @@ -6,7 +6,7 @@ t('Default Quota'));?> - " data-gravity="s"> -- cgit v1.2.3 From 4220e0c7da091330f6a4f6a2e1669fb4ece482bd Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Wed, 13 Aug 2014 14:20:14 +0200 Subject: it does not affect gravity on planet earth, but only for tipsy --- core/js/singleselect.js | 2 +- settings/templates/users/part.setquota.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'core') diff --git a/core/js/singleselect.js b/core/js/singleselect.js index 6a4c104ffba..79ae0874dbd 100644 --- a/core/js/singleselect.js +++ b/core/js/singleselect.js @@ -2,7 +2,7 @@ $.fn.singleSelect = function () { return this.each(function (i, select) { var input = $(''), - gravity = $(select).attr('data-gravity'), + gravity = $(select).attr('data-tipsy-gravity'), inputTooltip = $(select).attr('data-inputtitle'); if (inputTooltip){ input.attr('title', inputTooltip); diff --git a/settings/templates/users/part.setquota.php b/settings/templates/users/part.setquota.php index 55e31a930e9..afbbee82063 100644 --- a/settings/templates/users/part.setquota.php +++ b/settings/templates/users/part.setquota.php @@ -6,7 +6,7 @@ t('Default Quota'));?> - " data-tipsy-gravity="s"> -- cgit v1.2.3 From 3c7fbbef22035a228293a3baf79b0d185a8f2393 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Fri, 15 Aug 2014 12:43:24 +0200 Subject: Do not close container/slider when clicking on single select field --- core/js/singleselect.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'core') diff --git a/core/js/singleselect.js b/core/js/singleselect.js index 79ae0874dbd..1b2016aabb9 100644 --- a/core/js/singleselect.js +++ b/core/js/singleselect.js @@ -87,6 +87,10 @@ $(this).tipsy('hide'); } }); + input.click(function(ev) { + // prevent clicks to close any container + ev.stopPropagation(); + }); }); }; })(jQuery); -- cgit v1.2.3