116 lines
5.6 KiB
JavaScript
116 lines
5.6 KiB
JavaScript
![]() |
/* $This file is distributed under the terms of the license in /doc/license.txt$ */
|
||
|
|
||
|
$(document).ready(function(){
|
||
|
|
||
|
$.extend(this, individualLocalName);
|
||
|
|
||
|
retrieveLocalStorage();
|
||
|
|
||
|
// expands/collapses the div within each property group
|
||
|
$.each($('section.property-group'), function() {
|
||
|
var groupName = $(this).attr("id");
|
||
|
$(this).children("nav").children("img").click(function() {
|
||
|
if ( $("div[id='" + groupName + "Group']").is(":visible") ) {
|
||
|
$("div[id='" + groupName + "Group']").slideUp(222);
|
||
|
$(this).attr("src", $(this).attr("src").replace("collapse-prop-group","expand-prop-group"));
|
||
|
$("section#" + groupName).children("h2").removeClass("expandedPropGroupH2");
|
||
|
}
|
||
|
else {
|
||
|
$("div[id='" + groupName + "Group']").slideDown(222);
|
||
|
$(this).attr("src", $(this).attr("src").replace("expand-prop-group","collapse-prop-group"));
|
||
|
$("section#" + groupName).children("h2").addClass("expandedPropGroupH2");
|
||
|
}
|
||
|
manageLocalStorage();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
// expands/collapses all property groups together
|
||
|
$.each($('a#propertyGroupsToggle'), function() {
|
||
|
$('a#propertyGroupsToggle').click(function() {
|
||
|
var anchorHtml = $(this).html();
|
||
|
if ( anchorHtml.indexOf('expand') > -1 ) {
|
||
|
$.each($('section.property-group'), function() {
|
||
|
$("div[id='" + $(this).attr("id") + "Group']").slideDown(222);
|
||
|
var innerSrc = $(this).children("nav").children("img").attr("src");
|
||
|
$(this).children("nav").children("img").attr("src",innerSrc.replace("expand-prop-group","collapse-prop-group"));
|
||
|
$(this).children("h2").addClass("expandedPropGroupH2");
|
||
|
});
|
||
|
$(this).html("collapse all");
|
||
|
}
|
||
|
else {
|
||
|
$.each($('section.property-group'), function() {
|
||
|
$("div[id='" + $(this).attr("id") + "Group']").slideUp(222);
|
||
|
var innerSrc = $(this).children("nav").children("img").attr("src");
|
||
|
$(this).children("nav").children("img").attr("src",innerSrc.replace("collapse-prop-group","expand-prop-group"));
|
||
|
$(this).children("h2").removeClass("expandedPropGroupH2");
|
||
|
});
|
||
|
$(this).html("expand all");
|
||
|
}
|
||
|
manageLocalStorage();
|
||
|
});
|
||
|
});
|
||
|
|
||
|
// Next two functions -- keep track of which property group tabs have been expanded,
|
||
|
// so if we return from a custom form or a related individual, even via the back button,
|
||
|
// the property groups will be expanded as before.
|
||
|
function manageLocalStorage() {
|
||
|
var localName = this.individualLocalName;
|
||
|
// is this individual already stored? If not, how many have been stored?
|
||
|
// If the answer is 3, remove the first one in before adding the new one
|
||
|
var current = amplify.store(localName);
|
||
|
var profiles = amplify.store("profiles");
|
||
|
if ( current == undefined ) {
|
||
|
if ( profiles == undefined ) {
|
||
|
var lnArray = [];
|
||
|
lnArray.push(localName);
|
||
|
amplify.store("profiles", lnArray);
|
||
|
}
|
||
|
else if ( profiles != undefined && profiles.length >= 3 ) {
|
||
|
firstItem = profiles[0];
|
||
|
amplify.store(firstItem, null);
|
||
|
profiles.splice(0,1);
|
||
|
profiles.push(localName);
|
||
|
amplify.store("profiles", profiles)
|
||
|
}
|
||
|
else if ( profiles != undefined && profiles.length < 3 ) {
|
||
|
profiles.push(localName);
|
||
|
amplify.store("profiles", profiles)
|
||
|
}
|
||
|
}
|
||
|
var groups = [];
|
||
|
$.each($('section.property-group').children("nav").children("img"), function() {
|
||
|
if ( $(this).attr('src').indexOf('collapse-prop-group') > -1 ) {
|
||
|
groups.push($(this).attr('groupName'));
|
||
|
}
|
||
|
});
|
||
|
amplify.store(localName, groups);
|
||
|
var checkLength = amplify.store(localName);
|
||
|
if ( checkLength.length == 0 ) {
|
||
|
amplify.store(localName, null);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function retrieveLocalStorage() {
|
||
|
var localName = this.individualLocalName;
|
||
|
var groups = amplify.store(individualLocalName);
|
||
|
if ( groups != undefined ) {
|
||
|
for ( i = 0; i < groups.length; i++) {
|
||
|
var groupName = groups[i];
|
||
|
// unlikely, but it's possible a group that was previously opened and stored won't be displayed
|
||
|
// because the object properties would have been deleted. So ensure that the group in local
|
||
|
// storage has been rendered on the page. More likely, a user navigated from a quick view to a full
|
||
|
// profile, opened a group, then navigated back to the quick view where the group isn't rendered.
|
||
|
if ($("section#" + groupName).length ) {
|
||
|
$("div[id='" + groupName + "Group']").slideDown(1);
|
||
|
$("img[groupName='" + groupName + "']").attr("src", $("img[groupName='" + groupName + "']").attr("src").replace("expand-prop-group","collapse-prop-group"));
|
||
|
$("section#" + groupName).children("h2").addClass("expandedPropGroupH2");
|
||
|
}
|
||
|
}
|
||
|
if ( groups.length == $('section.property-group').length ) {
|
||
|
$('a#propertyGroupsToggle').html('collapse all');
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|