mirror of
				https://github.com/telekom-security/tpotce.git
				synced 2025-07-02 01:27:27 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			112 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /**
 | |
|  * ownCloud - core
 | |
|  *
 | |
|  * 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
 | |
|  */
 | |
| 
 | |
| (function (document, $, exports) {
 | |
| 
 | |
| 	'use strict';
 | |
| 
 | |
| 	var dynamicSlideToggleEnabled = false;
 | |
| 
 | |
| 	exports.Apps = {
 | |
| 		enableDynamicSlideToggle: function () {
 | |
| 			dynamicSlideToggleEnabled = true;
 | |
| 		}
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * Shows the #app-sidebar and add .with-app-sidebar to subsequent siblings
 | |
| 	 *
 | |
| 	 * @param {Object} [$el] sidebar element to show, defaults to $('#app-sidebar')
 | |
| 	 */
 | |
| 	exports.Apps.showAppSidebar = function($el) {
 | |
| 		var $appSidebar = $el || $('#app-sidebar');
 | |
| 		$appSidebar.removeClass('disappear');
 | |
| 		$('#app-content').addClass('with-app-sidebar').trigger(new $.Event('appresized'));
 | |
| 
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * Shows the #app-sidebar and removes .with-app-sidebar from subsequent
 | |
| 	 * siblings
 | |
| 	 *
 | |
| 	 * @param {Object} [$el] sidebar element to hide, defaults to $('#app-sidebar')
 | |
| 	 */
 | |
| 	exports.Apps.hideAppSidebar = function($el) {
 | |
| 		var $appSidebar = $el || $('#app-sidebar');
 | |
| 		$appSidebar.addClass('disappear');
 | |
| 		$('#app-content').removeClass('with-app-sidebar').trigger(new $.Event('appresized'));
 | |
| 	};
 | |
| 
 | |
| 	/**
 | |
| 	 * 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:
 | |
| 	 * <button data-apps-slide-toggle=".slide-area">slide</button>
 | |
| 	 * <div class=".slide-area" class="hidden">I'm sliding up</div>
 | |
| 	 */
 | |
| 	var registerAppsSlideToggle = function () {
 | |
| 		var buttons = $('[data-apps-slide-toggle]');
 | |
| 
 | |
| 		$(document).click(function (event) {
 | |
| 
 | |
| 			if (dynamicSlideToggleEnabled) {
 | |
| 				buttons = $('[data-apps-slide-toggle]');
 | |
| 			}
 | |
| 
 | |
| 			buttons.each(function (index, button) {
 | |
| 
 | |
| 				var areaSelector = $(button).data('apps-slide-toggle');
 | |
| 				var area = $(areaSelector);
 | |
| 
 | |
| 				function hideArea() {
 | |
| 					area.slideUp(OC.menuSpeed*4, function() {
 | |
| 						area.trigger(new $.Event('hide'));
 | |
| 					});
 | |
| 				}
 | |
| 				function showArea() {
 | |
| 					area.slideDown(OC.menuSpeed*4, function() {
 | |
| 						area.trigger(new $.Event('show'));
 | |
| 					});
 | |
| 				}
 | |
| 
 | |
| 				// do nothing if the area is animated
 | |
| 				if (!area.is(':animated')) {
 | |
| 
 | |
| 					// button toggles the area
 | |
| 					if ($(button).is($(event.target).closest('[data-apps-slide-toggle]'))) {
 | |
| 						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));
 | 
