define('jira/togglelist/toggle-list', ['jira/lib/class', 'jquery'], function (Class, jQuery) { /** * A generic control for toggling the visibility of some list elements. * *

Use

* *
Markup:
* *
     * 
     * Show more
     * Show less
     * 
* *
JavaScript:
* *
     * new ToggleList({
     *     more: $("#my-list li:gt(4)"),
     *     showMoreLink: $("#show-more-of-my-list"),
     *     showLessLink: $("#show-less-of-my-list")
     * });
     * 
* * @class ToggleList * @extends Class */ return Class.extend({ /* * @param {Object} options: * - {jQuery} more - the elements in the list to be toggled * - {jQuery} showMoreLink - the link to toggle showing the "more" elements * - {jQuery} showLessLink - the link to toggle hiding the "more" elements * - {jQuery} showMoreContainer (optional) - the container of the showMoreLink * - {jQuery} showLessContainer (optional) - the container of the showLessLink */ init: function init(options) { var more = options.more; var showMoreContainer = options.showMoreContainer || options.showMoreLink; var showLessContainer = options.showLessContainer || options.showLessLink; var showMoreLink = options.showMoreLink; var showLessLink = options.showLessLink; if (!more || !more.length) { // Nothing to toggle, make sure toggle controls are hidden showMoreContainer.hide(); showLessContainer.hide(); return; } // Default visibility state more.hide(); showMoreContainer.show(); showLessContainer.hide(); var toggle = function toggle(e) { e.preventDefault(); more.toggle(); showMoreContainer.toggle(); showLessContainer.toggle(); }; showMoreLink.click(toggle); showLessLink.click(toggle); } }); }); AJS.namespace('JIRA.ToggleList', null, require('jira/togglelist/toggle-list'));