Updating the expand/collapse JS to allow the control key to be overriden and shortened the cookie name

- also making use of the collapse setting to collapse everything by default

--HG--
branch : dev
This commit is contained in:
Nathan Heskew 2010-07-21 14:58:23 -07:00
parent 7eedd60af7
commit 006dcd73cc
2 changed files with 12 additions and 8 deletions

View File

@ -5,8 +5,10 @@
return this;
var _this = $(this);
var __cookieName = "Exp";
var settings = $.extend({
path: "/",
key: _this.selector,
collapse: false,
remember: true
}, options);
@ -15,18 +17,20 @@
var glyph = $("<span class=\"expandoGlyph\"></span>");
glyph.data("controllees", getControllees(controller));
if (settings.remember) {
var state = $.orchard.setting("expando", { key: _this.selector + "-" + controller.text(), path: settings.path });
if (state === "closed") {
glyph.addClass("closed").data("controllees").hide();
}
if ((settings.remember && "closed" === $.orchard.setting(__cookieName, { key: settings.key + "-" + controller.text(), path: settings.path }))
|| settings.collapse) {
glyph.addClass("closed").data("controllees").hide();
}
else if (settings.collapse) {
}
glyph.click(function () {
var __this = $(this);
if (settings.remember) { // remembering closed state as true because that's not the default
if (settings.remember && !settings.collapse) { // remembering closed state as true because that's not the default - doesn't make sense to remember if the controllees are always to be collapsed by default
// need to allow specified keys since these selectors could get *really* long
$.orchard.setting("expando", !__this.hasClass("closed") ? "closed" : "open", { key: _this.selector + "-" + controller.text(), path: settings.path });
$.orchard.setting(__cookieName, !__this.hasClass("closed") ? "closed" : "open", { key: settings.key + "-" + controller.text(), path: settings.path });
}
if (__this.hasClass("closed") || __this.hasClass("closing")) {

View File

@ -25,7 +25,7 @@
<% using (this.Capture("end-of-page-scripts")) { %>
<script type="text/javascript">
$(function () {
$("#navigation h3").expandoControl(function(controller) { return controller.next(); }, { collapse: false, remember: true, path: "<%:ResolveUrl("~/Admin") %>" });
$("#navigation h3").expandoControl(function(controller) { return controller.next(); }, { key: "N42", path: "<%:ResolveUrl("~/Admin") %>" });
});
</script>
<% } %>