mirror of
https://github.com/Poniverse/Pony.fm.git
synced 2025-01-31 03:16:42 +01:00
#4: Keep the dropdown menu open after selecting a track or album download in a cacheable format.
This commit is contained in:
parent
b2408e3d84
commit
b441a58819
5 changed files with 32 additions and 13 deletions
|
@ -1,7 +1,7 @@
|
||||||
<div class="resource-details album-details" bindonce="album">
|
<div class="resource-details album-details" bindonce="album">
|
||||||
<ul class="dropdowns">
|
<ul class="dropdowns">
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="btn btn-small btn-info dropdown-toggle" ng-disabled="album.is_downloadable == 0">
|
<a href="#" class="btn btn-small btn-info dropdown-toggle" ng-disabled="album.is_downloadable == 0" auto-close="outsideClick">
|
||||||
Downloads
|
Downloads
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" ng-show="album.is_downloadable == 1">
|
<ul class="dropdown-menu" ng-show="album.is_downloadable == 1">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<div class="resource-details track-details" bindonce="track">
|
<div class="resource-details track-details" bindonce="track">
|
||||||
<ul class="dropdowns">
|
<ul class="dropdowns">
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="#" class="btn btn-small btn-info dropdown-toggle" ng-disabled="track.is_downloadable == 0">
|
<a href="#" class="btn btn-small btn-info dropdown-toggle" ng-disabled="track.is_downloadable == 0" auto-close="outsideClick">
|
||||||
Downloads
|
Downloads
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" ng-show="track.is_downloadable == 1">
|
<ul class="dropdown-menu" ng-show="track.is_downloadable == 1">
|
||||||
|
|
|
@ -52,5 +52,5 @@ angular.module('ponyfm').controller "album", [
|
||||||
$timeout $scope.getCachedAlbum(id, format), 5000
|
$timeout $scope.getCachedAlbum(id, format), 5000
|
||||||
else
|
else
|
||||||
$scope.isInProgress = false
|
$scope.isInProgress = false
|
||||||
$window.open $scope.albumUrl, '_blank'
|
$window.open $scope.albumUrl
|
||||||
]
|
]
|
||||||
|
|
|
@ -84,5 +84,5 @@ angular.module('ponyfm').controller "track", [
|
||||||
$timeout $scope.getCachedTrack(id, format), 5000
|
$timeout $scope.getCachedTrack(id, format), 5000
|
||||||
else
|
else
|
||||||
$scope.isInProgress = false
|
$scope.isInProgress = false
|
||||||
$window.open $scope.trackUrl, '_blank'
|
$window.location = $scope.trackUrl#, '_blank'
|
||||||
]
|
]
|
||||||
|
|
|
@ -1269,10 +1269,29 @@ angular.module('ui.bootstrap.dropdownToggle', []).directive('dropdownToggle', ['
|
||||||
element.parent().addClass('open');
|
element.parent().addClass('open');
|
||||||
openElement = element;
|
openElement = element;
|
||||||
closeMenu = function (event) {
|
closeMenu = function (event) {
|
||||||
|
|
||||||
|
// Dropdowns with with the `auto-close="outsideClick"` attribute are handled differently.
|
||||||
|
// They will only close if the user clicks somewhere outside of the dropdown menu.
|
||||||
|
//
|
||||||
|
// => Partially backported from: https://github.com/angular-ui/bootstrap/pull/3045/files
|
||||||
|
if ('autoClose' in attrs && attrs.autoClose === 'outsideClick') {
|
||||||
|
if (typeof event !== 'undefined' && !element.parent()[0].contains(event.target)) {
|
||||||
|
// Only close the menu if we detect a click outside the element.
|
||||||
|
$document.unbind('click', closeMenu);
|
||||||
|
element.parent().removeClass('open');
|
||||||
|
closeMenu = angular.noop;
|
||||||
|
openElement = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If this isn't an "outside click", handle it as usual.
|
||||||
if (event) {
|
if (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
$document.unbind('click', closeMenu);
|
$document.unbind('click', closeMenu);
|
||||||
element.parent().removeClass('open');
|
element.parent().removeClass('open');
|
||||||
closeMenu = angular.noop;
|
closeMenu = angular.noop;
|
||||||
|
|
Loading…
Reference in a new issue