1*7c0a1357SAdam Hornacek/* 2*7c0a1357SAdam Hornacek * CDDL HEADER START 3*7c0a1357SAdam Hornacek * 4*7c0a1357SAdam Hornacek * The contents of this file are subject to the terms of the 5*7c0a1357SAdam Hornacek * Common Development and Distribution License (the "License"). 6*7c0a1357SAdam Hornacek * You may not use this file except in compliance with the License. 7*7c0a1357SAdam Hornacek * 8*7c0a1357SAdam Hornacek * See LICENSE.txt included in this distribution for the specific 9*7c0a1357SAdam Hornacek * language governing permissions and limitations under the License. 10*7c0a1357SAdam Hornacek * 11*7c0a1357SAdam Hornacek * When distributing Covered Code, include this CDDL HEADER in each 12*7c0a1357SAdam Hornacek * file and include the License file at LICENSE.txt. 13*7c0a1357SAdam Hornacek * If applicable, add the following below this CDDL HEADER, with the 14*7c0a1357SAdam Hornacek * fields enclosed by brackets "[]" replaced with your own identifying 15*7c0a1357SAdam Hornacek * information: Portions Copyright [yyyy] [name of copyright owner] 16*7c0a1357SAdam Hornacek * 17*7c0a1357SAdam Hornacek * CDDL HEADER END 18*7c0a1357SAdam Hornacek */ 19*7c0a1357SAdam Hornacek 20*7c0a1357SAdam Hornacek/* 21*7c0a1357SAdam Hornacek * Copyright (c) 2016, 2021 Oracle and/or its affiliates. All rights reserved. 22*7c0a1357SAdam Hornacek */ 23*7c0a1357SAdam Hornacek 24*7c0a1357SAdam Hornacek/* 25*7c0a1357SAdam Hornacek * This file contains JavaScript code used by repos.jspf. 26*7c0a1357SAdam Hornacek */ 27*7c0a1357SAdam Hornacek 28*7c0a1357SAdam Hornacek(function ($) { 29*7c0a1357SAdam Hornacek const Accordion = function ($parent, options) { 30*7c0a1357SAdam Hornacek const inner = { 31*7c0a1357SAdam Hornacek initialized: false, 32*7c0a1357SAdam Hornacek options: {}, 33*7c0a1357SAdam Hornacek defaults: { 34*7c0a1357SAdam Hornacek "showAllSelector": ".accordion_show_all", 35*7c0a1357SAdam Hornacek "hideAllSelector": ".accordion_hide_all" 36*7c0a1357SAdam Hornacek }, 37*7c0a1357SAdam Hornacek $panels: [], 38*7c0a1357SAdam Hornacek determineButtonsVisibility: function() { 39*7c0a1357SAdam Hornacek const decision = inner.$panels.filter(":visible").length === inner.$panels.length; 40*7c0a1357SAdam Hornacek return { 41*7c0a1357SAdam Hornacek hide: decision ? inner.options.showAllSelector : inner.options.hideAllSelector, 42*7c0a1357SAdam Hornacek show: decision ? inner.options.hideAllSelector : inner.options.showAllSelector 43*7c0a1357SAdam Hornacek }; 44*7c0a1357SAdam Hornacek }, 45*7c0a1357SAdam Hornacek init: function () { 46*7c0a1357SAdam Hornacek inner.$panels = inner.options.parent.find(".panel-body-accordion"); 47*7c0a1357SAdam Hornacek 48*7c0a1357SAdam Hornacek inner.options.parent.find(".panel-heading-accordion").click(function (e) { 49*7c0a1357SAdam Hornacek $(this).parent().find(".panel-body-accordion").each(function () { 50*7c0a1357SAdam Hornacek if ($(this).data("accordion-visible")) { 51*7c0a1357SAdam Hornacek $(this).hide(). 52*7c0a1357SAdam Hornacek data("accordion-visible", false). 53*7c0a1357SAdam Hornacek parent(). 54*7c0a1357SAdam Hornacek find(".panel-heading-accordion .fold"). 55*7c0a1357SAdam Hornacek removeClass('fold-up'). 56*7c0a1357SAdam Hornacek addClass('fold-down'); 57*7c0a1357SAdam Hornacek } else { 58*7c0a1357SAdam Hornacek $(this).show(). 59*7c0a1357SAdam Hornacek data("accordion-visible", true). 60*7c0a1357SAdam Hornacek parent(). 61*7c0a1357SAdam Hornacek find(".panel-heading-accordion .fold"). 62*7c0a1357SAdam Hornacek removeClass('fold-down'). 63*7c0a1357SAdam Hornacek addClass('fold-up'); 64*7c0a1357SAdam Hornacek } 65*7c0a1357SAdam Hornacek }); 66*7c0a1357SAdam Hornacek 67*7c0a1357SAdam Hornacek const btn = inner.determineButtonsVisibility(); 68*7c0a1357SAdam Hornacek inner.options.parent.find(btn.hide).hide(); 69*7c0a1357SAdam Hornacek inner.options.parent.find(btn.show).show(); 70*7c0a1357SAdam Hornacek return false; 71*7c0a1357SAdam Hornacek }); 72*7c0a1357SAdam Hornacek 73*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.showAllSelector).click(function (e) { 74*7c0a1357SAdam Hornacek inner.$panels. 75*7c0a1357SAdam Hornacek data("accordion-visible", true). 76*7c0a1357SAdam Hornacek show(). 77*7c0a1357SAdam Hornacek parent(). 78*7c0a1357SAdam Hornacek find(".panel-heading-accordion .fold"). 79*7c0a1357SAdam Hornacek removeClass('fold-down'). 80*7c0a1357SAdam Hornacek addClass('fold-up'); 81*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.hideAllSelector).show(); 82*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.showAllSelector).hide(); 83*7c0a1357SAdam Hornacek return false; 84*7c0a1357SAdam Hornacek }); 85*7c0a1357SAdam Hornacek 86*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.hideAllSelector).click(function (e) { 87*7c0a1357SAdam Hornacek inner.$panels. 88*7c0a1357SAdam Hornacek data("accordion-visible", false). 89*7c0a1357SAdam Hornacek hide(). 90*7c0a1357SAdam Hornacek parent(). 91*7c0a1357SAdam Hornacek find(".panel-heading-accordion .fold"). 92*7c0a1357SAdam Hornacek removeClass('fold-up'). 93*7c0a1357SAdam Hornacek addClass('fold-down'); 94*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.hideAllSelector).hide(); 95*7c0a1357SAdam Hornacek inner.options.parent.find(inner.options.showAllSelector).show(); 96*7c0a1357SAdam Hornacek return false; 97*7c0a1357SAdam Hornacek }); 98*7c0a1357SAdam Hornacek 99*7c0a1357SAdam Hornacek 100*7c0a1357SAdam Hornacek const btn = inner.determineButtonsVisibility(); 101*7c0a1357SAdam Hornacek inner.options.parent.find(btn.hide).hide(); 102*7c0a1357SAdam Hornacek inner.options.parent.find(btn.show).show(); 103*7c0a1357SAdam Hornacek 104*7c0a1357SAdam Hornacek inner.initialized = true; 105*7c0a1357SAdam Hornacek } 106*7c0a1357SAdam Hornacek }; 107*7c0a1357SAdam Hornacek 108*7c0a1357SAdam Hornacek const init = (function ($parent, options) { 109*7c0a1357SAdam Hornacek if (inner.initialized) { 110*7c0a1357SAdam Hornacek return; 111*7c0a1357SAdam Hornacek } 112*7c0a1357SAdam Hornacek inner.options = $.extend({}, {parent: $parent}, inner.defaults, options); 113*7c0a1357SAdam Hornacek inner.init(); 114*7c0a1357SAdam Hornacek })($parent, options); 115*7c0a1357SAdam Hornacek }; 116*7c0a1357SAdam Hornacek 117*7c0a1357SAdam Hornacek $.fn.accordion = function (options) { 118*7c0a1357SAdam Hornacek return this.each(function () { 119*7c0a1357SAdam Hornacek options = options || {}; 120*7c0a1357SAdam Hornacek return new Accordion($(this), options); 121*7c0a1357SAdam Hornacek }); 122*7c0a1357SAdam Hornacek }; 123*7c0a1357SAdam Hornacek})(jQuery); 124*7c0a1357SAdam Hornacek 125*7c0a1357SAdam Hornacek$(document).ready(function () { 126*7c0a1357SAdam Hornacek $("#footer").addClass("main_page"); 127*7c0a1357SAdam Hornacek 128*7c0a1357SAdam Hornacek $(".projects").accordion(); 129*7c0a1357SAdam Hornacek 130*7c0a1357SAdam Hornacek $(".projects_select_all").click(function (e) { 131*7c0a1357SAdam Hornacek $("#project .name"); 132*7c0a1357SAdam Hornacek 133*7c0a1357SAdam Hornacek if (!e.ctrlKey) { 134*7c0a1357SAdam Hornacek $("#project").searchableOptionList().deselectAll(); 135*7c0a1357SAdam Hornacek } 136*7c0a1357SAdam Hornacek $(this).closest('.panel').find('.name').each(function(){ 137*7c0a1357SAdam Hornacek $("#project").searchableOptionList().selectAll($(this).text()); 138*7c0a1357SAdam Hornacek }); 139*7c0a1357SAdam Hornacek 140*7c0a1357SAdam Hornacek return false; 141*7c0a1357SAdam Hornacek }); 142*7c0a1357SAdam Hornacek domReadyHistory(); 143*7c0a1357SAdam Hornacek}); 144