From 9d4b11d59ba62478c98a25d2f61a579ff43ba2e7 Mon Sep 17 00:00:00 2001 From: cappadona Date: Tue, 4 Oct 2011 22:01:25 +0000 Subject: [PATCH] NIHVIVO-3153 Cleaned up code for more/less JavaScript. Still a work in progress. Changes include: * more/less link now stays anchored at bottom of list * "more" is now "more..." * now also acts on properties that are grouped by sub-class --- productMods/js/individual/individualUtils.js | 59 ++++++++++++-------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/productMods/js/individual/individualUtils.js b/productMods/js/individual/individualUtils.js index b8207d0a..440e15d7 100644 --- a/productMods/js/individual/individualUtils.js +++ b/productMods/js/individual/individualUtils.js @@ -37,52 +37,67 @@ $(document).ready(function(){ $toggleLink.click(function() { $itemContainer.hide(); $(this).attr('href', '#show more content'); - $(this).text('more'); + $(this).text('more...'); togglePropDisplay.showMore($toggleLink, $itemContainer); return false; }); } }; + // var $propList = $('.property-list').not('>li>ul'); var $propList = $('.property-list:not(:has(>li>ul))'); $propList.each(function() { var $additionalItems = $(this).find('li:gt(2)'); if ( $additionalItems.exists() ) { - // create toggle link - var $toggleLink = $('more').appendTo(this); - // create container for additional elements var $itemContainer = $('
').appendTo(this); + // create toggle link + var $toggleLink = $('more...').appendTo(this); + $additionalItems.appendTo($itemContainer); $itemContainer.hide(); togglePropDisplay.showMore($toggleLink, $itemContainer); - - // $wrappedItems.hide(); - - // var moreLess = $(this).find(':visible:last-child').after(' more'); - // $(additionalItems).first().before(' more'); - // $wrappedItems.before(' more'); - // togglePropDisplay.showMore($wrappedItems); - // $('.more-less').click(function() { - // $(additionalItems).show(); - // $('.more-less').attr('href', '#show less content').text('less'); - // - // }); } }); - var subPropList = '.subclass-property-list'; - $(subPropList).each(function() { - var additionalItems = $(this).find('li:gt(4)'); - if ( additionalItems.exists() ) { - $(additionalItems).hide(); - $(this).append(' more'); + var $subPropList = $('.subclass-property-list'); + $subPropList.each(function() { + var $additionalItems = $(this).find('li:gt(2)'); + if ( $additionalItems.exists() ) { + // create container for additional elements + var $itemContainer = $('
').appendTo(this); + + // create toggle link + var $toggleLink = $('more...').appendTo(this); + + $additionalItems.appendTo($itemContainer); + + $itemContainer.hide(); + + togglePropDisplay.showMore($toggleLink, $itemContainer); } }); + var $subPropSibs = $subPropList.closest('li').last().nextAll(); + var $subPropParent = $subPropList.closest('li').last().parent(); + var $additionalItems = $subPropSibs.slice(3); + if ( $additionalItems.length > 0 ) { + // create container for additional elements + var $itemContainer = $('
').appendTo($subPropParent); + + // create toggle link + var $toggleLink = $('more...').appendTo($subPropParent); + + $additionalItems.appendTo($itemContainer); + + $itemContainer.hide(); + + togglePropDisplay.showMore($toggleLink, $itemContainer); + } + // Change background color button when verbose mode is off $('a#verbosePropertySwitch:contains("Turn off")').addClass('verbose-off');