widget-collapsible.init.js 1.08 KB
(function($)
{		   
	$('.widget[data-toggle="collapse-widget"] .widget-body')
		.on('show.bs.collapse', function(){
			$(this).parents('.widget:first').attr('data-collapse-closed', "false");
		})
		.on('shown.bs.collapse', function(){
			setTimeout(function(){ $(window).resize(); }, 500);
		})
		.on('hidden.bs.collapse', function(){
			$(this).parents('.widget:first').attr('data-collapse-closed', "true");
		});
	
	$('.widget[data-toggle="collapse-widget"]').each(function()
	{
		// append toggle button
		if (!$(this).find('.widget-head > .collapse-toggle').length)
			$('<span class="collapse-toggle"></span>').appendTo($(this).find('.widget-head'));
		
		// make the widget body collapsible
		$(this).find('.widget-body').not('.collapse').addClass('collapse');
		
		// verify if the widget should be opened
		if ($(this).attr('data-collapse-closed') !== "true")
			$(this).find('.widget-body').addClass('in');
		
		// bind the toggle button
		$(this).find('.collapse-toggle').on('click', function(){
			$(this).parents('.widget:first').find('.widget-body').collapse('toggle');
		});
	});
})(jQuery);