mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-09-19 01:57:55 +08:00
Merge
--HG-- branch : dev
This commit is contained in:
@@ -35,8 +35,8 @@ namespace Orchard.Blogs.Handlers {
|
|||||||
// Ensure we get the "right" set of published posts for the blog
|
// Ensure we get the "right" set of published posts for the blog
|
||||||
blog.ContentItem.ContentManager.Flush();
|
blog.ContentItem.ContentManager.Flush();
|
||||||
|
|
||||||
var posts = _blogPostService.Get(blog, VersionOptions.Published).ToList();
|
var postsCount = _blogPostService.Get(blog, VersionOptions.Published).Count();
|
||||||
blog.PostCount = posts.Count;
|
blog.PostCount = postsCount;
|
||||||
});
|
});
|
||||||
|
|
||||||
OnInitializing<BlogPost>((context, bp) => {
|
OnInitializing<BlogPost>((context, bp) => {
|
||||||
|
@@ -30,49 +30,50 @@
|
|||||||
if (feature == features.First())
|
if (feature == features.First())
|
||||||
featureClassName += " first";
|
featureClassName += " first";
|
||||||
if (feature == features.Last())
|
if (feature == features.Last())
|
||||||
featureClassName += " last"; %>
|
featureClassName += " last";%>
|
||||||
<li class="<%: featureClassName %>" id="<%: featureId %>" title="<%: T("{0} is {1}", Html.AttributeEncode(feature.Descriptor.Name), featureState) %>">
|
<li class="<%:featureClassName%>" id="<%:featureId%>" title="<%:T("{0} is {1}", Html.AttributeEncode(feature.Descriptor.Name), featureState)%>">
|
||||||
<div class="summary">
|
<div class="summary">
|
||||||
<div class="properties">
|
<div class="properties">
|
||||||
<h3><%:feature.Descriptor.Name %></h3>
|
<h3><%:feature.Descriptor.Name%></h3>
|
||||||
<p class="description"><%:feature.Descriptor.Description %></p><%
|
<p class="description"><%:feature.Descriptor.Description%></p><%
|
||||||
if (feature.Descriptor.Dependencies != null && feature.Descriptor.Dependencies.Any()) { %>
|
if (feature.Descriptor.Dependencies != null && feature.Descriptor.Dependencies.Any()) {%>
|
||||||
<div class="dependencies">
|
<div class="dependencies">
|
||||||
<h4><%: T("Depends on:")%></h4>
|
<h4><%:T("Depends on:")%></h4>
|
||||||
<%: Html.UnorderedList(
|
<%:Html.UnorderedList(
|
||||||
feature.Descriptor.Dependencies.OrderBy(s => s),
|
feature.Descriptor.Dependencies.OrderBy(s => s),
|
||||||
(s, i) => Html.Link(s, string.Format("#{0}", s.AsFeatureId(n => T(n)))),
|
(s, i) => Html.Link(s, string.Format("#{0}", s.AsFeatureId(n => T(n)))),
|
||||||
"",
|
"",
|
||||||
"dependency",
|
"dependency",
|
||||||
"") %>
|
"")%>
|
||||||
</div><%
|
</div><%
|
||||||
} %>
|
}%>
|
||||||
</div><%
|
</div>
|
||||||
if (showActions) { %>
|
<div class="actions">
|
||||||
<div class="actions"><%
|
<%
|
||||||
|
if (showActions) {
|
||||||
if (feature.IsEnabled) {
|
if (feature.IsEnabled) {
|
||||||
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Disable", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Disable", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
||||||
<%: Html.Hidden("id", feature.Descriptor.Name, new { id = "" })%>
|
<%:Html.Hidden("id", feature.Descriptor.Name, new {id = ""})%>
|
||||||
<%: Html.Hidden("force", true)%>
|
<%:Html.Hidden("force", true)%>
|
||||||
<button type="submit"><%: T("Disable") %></button><%
|
<button type="submit"><%:T("Disable")%></button><%
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Enable", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Enable", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
||||||
<%: Html.Hidden("id", feature.Descriptor.Name, new { id = "" })%>
|
<%: Html.Hidden("id", feature.Descriptor.Name, new { id = "" })%>
|
||||||
<%: Html.Hidden("force", true)%>
|
<%: Html.Hidden("force", true)%>
|
||||||
<button type="submit"><%: T("Enable") %></button><%
|
<button type="submit"><%: T("Enable") %></button><%
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if(Model.FeaturesThatNeedUpdate.Contains(feature.Descriptor.Name)){
|
if(Model.FeaturesThatNeedUpdate.Contains(feature.Descriptor.Name)){
|
||||||
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Update", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
using (Html.BeginFormAntiForgeryPost(string.Format("{0}", Url.Action("Update", new { area = "Orchard.Modules" })), FormMethod.Post, new {@class = "inline link"})) { %>
|
||||||
<%: Html.Hidden("id", feature.Descriptor.Name, new { id = "" })%>
|
<%: Html.Hidden("id", feature.Descriptor.Name, new { id = "" })%>
|
||||||
<%: Html.Hidden("force", true)%>
|
<%: Html.Hidden("force", true)%>
|
||||||
<button type="submit" class="update"><%: T("Update") %></button><%
|
<button type="submit" class="update"><%: T("Update") %></button><%
|
||||||
}
|
}
|
||||||
}
|
}%>
|
||||||
%>
|
</div>
|
||||||
</div><%
|
|
||||||
} %>
|
|
||||||
</div>
|
</div>
|
||||||
</li><%
|
</li><%
|
||||||
} %>
|
} %>
|
||||||
|
@@ -5,26 +5,48 @@
|
|||||||
__cookieName: "Orchrd", // Orchard, on a diet
|
__cookieName: "Orchrd", // Orchard, on a diet
|
||||||
__cookieExpiration: 180, // roughly 6 months
|
__cookieExpiration: 180, // roughly 6 months
|
||||||
cookie: function (scope, value, options) { // a light-weight wrapper around $.cookie for an Orchard.* cookie name
|
cookie: function (scope, value, options) { // a light-weight wrapper around $.cookie for an Orchard.* cookie name
|
||||||
return $.cookie($.orchard.__cookieName + (scope ? "-" + scope.toLowerCase() : ""), value, options);
|
return $.cookie($.orchard.__cookieName + (scope ? scope.toLowerCase() : ""), value, options);
|
||||||
|
},
|
||||||
|
cookiesInTheOrchard: function () {
|
||||||
|
return $.orchard.cookiesLike($.orchard.__cookieName);
|
||||||
|
},
|
||||||
|
cookiesLike: function (name) {
|
||||||
|
var jar = [];
|
||||||
|
// taken from the $.cookie plugin to get all of the cookies that begin with the name
|
||||||
|
if (document.cookie && document.cookie != '') {
|
||||||
|
var cookies = document.cookie.split(';');
|
||||||
|
for (var i = 0; i < cookies.length; i++) {
|
||||||
|
var cookie = jQuery.trim(cookies[i]);
|
||||||
|
// Does this cookie string begin with the name we want?
|
||||||
|
if (cookie.split("=")[0].substring(0, name.length) === (name)) {
|
||||||
|
jar.push(decodeURIComponent(cookie.substring(cookie.indexOf("=") + 1)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jar;
|
||||||
},
|
},
|
||||||
setting: function (name, value, options) { // cookie-stored settings (only, at the moment)
|
setting: function (name, value, options) { // cookie-stored settings (only, at the moment)
|
||||||
if (value && value.path) {
|
if (value && value.path) {
|
||||||
options = value;
|
options = value;
|
||||||
value = undefined;
|
value = undefined;
|
||||||
}
|
}
|
||||||
var scope = (options && options.path && options.path.replace(/\W+/g, "-")) || ""; // this could become a problem with long paths as it's appended to the cookie name
|
var key = (name + ((options && !!options.key && ("-" + options.key)) || "")).replace(/\W+/g, "-");
|
||||||
var cookie = $.orchard.cookie(scope);
|
|
||||||
var key = (name + ((options && !!options.key && options.key) || "")).replace(/\W+/g, "-");
|
|
||||||
if (typeof value === "undefined") { // try to get the setting value from the default "root" cookie
|
if (typeof value === "undefined") { // try to get the setting value from the default "root" cookie
|
||||||
if (cookie) {
|
var cookies = $.orchard.cookiesInTheOrchard();
|
||||||
var data = $.parseJSON(cookie);
|
for (var i = 0; i < cookies.length; i++) {
|
||||||
return data && data[key];
|
var data = $.parseJSON(cookies[i]);
|
||||||
|
var value = data && data[key];
|
||||||
|
if (typeof value !== "undefined") {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
else { // store the setting value - the setting isn't removable by the way, setting to "" might be enough for most cases
|
else { // store the setting value - the setting isn't removable by the way, setting to "" might be enough for most cases
|
||||||
var data = (cookie && $.parseJSON(cookie)) || {};
|
var scope = (options && options.path && options.path.replace(/\W+/g, "-")) || ""; // this could become a problem with long paths as it's appended to the cookie name
|
||||||
data[key] = value;
|
var cookie = $.orchard.cookie(scope);
|
||||||
|
var newData = (cookie && $.parseJSON(cookie)) || {};
|
||||||
|
newData[key] = value;
|
||||||
var dataString = (function (obj) { //todo: pull out into a seperate function
|
var dataString = (function (obj) { //todo: pull out into a seperate function
|
||||||
if (!obj) { return ""; }
|
if (!obj) { return ""; }
|
||||||
var k, str = "{";
|
var k, str = "{";
|
||||||
@@ -35,7 +57,7 @@
|
|||||||
str = str.substring(0, str.length - 1);
|
str = str.substring(0, str.length - 1);
|
||||||
}
|
}
|
||||||
return str + "}";
|
return str + "}";
|
||||||
})(data);
|
})(newData);
|
||||||
$.orchard.cookie(scope, dataString, { expires: $.orchard.__cookieExpiration, path: (options && options.path) || "/" }); // todo: default path should be app path
|
$.orchard.cookie(scope, dataString, { expires: $.orchard.__cookieExpiration, path: (options && options.path) || "/" }); // todo: default path should be app path
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -69,6 +91,7 @@
|
|||||||
//_controllees.slideUp(200); <- hook this back up when chrome behaves, or when I care less
|
//_controllees.slideUp(200); <- hook this back up when chrome behaves, or when I care less
|
||||||
_controllees.hide()
|
_controllees.hide()
|
||||||
}
|
}
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// collapsable areas - anything with a data-controllerid attribute has its visibility controlled by the id-ed radio/checkbox
|
// collapsable areas - anything with a data-controllerid attribute has its visibility controlled by the id-ed radio/checkbox
|
||||||
|
@@ -1,6 +1,54 @@
|
|||||||
$(document).ready(function(){
|
(function ($) {
|
||||||
$("#navigation li span").click(function() {
|
$.fn.extend({
|
||||||
$(this).next().next().slideToggle(400);
|
expandoControl: function (getControllees, options) {
|
||||||
return false;
|
if (typeof getControllees !== "function")
|
||||||
|
return this;
|
||||||
|
|
||||||
|
var _this = $(this);
|
||||||
|
var __cookieName = "Exp";
|
||||||
|
var settings = $.extend({
|
||||||
|
path: "/",
|
||||||
|
key: _this.selector,
|
||||||
|
collapse: false,
|
||||||
|
remember: true
|
||||||
|
}, options);
|
||||||
|
_this.each(function (index, element) {
|
||||||
|
var controller = $(element);
|
||||||
|
var glyph = $("<span class=\"expandoGlyph\"></span>");
|
||||||
|
|
||||||
|
glyph.data("controllees", getControllees(controller));
|
||||||
|
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 && !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(__cookieName, !__this.hasClass("closed") ? "closed" : "open", { key: settings.key + "-" + controller.text(), path: settings.path });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__this.hasClass("closed") || __this.hasClass("closing")) {
|
||||||
|
__this.addClass("opening")
|
||||||
|
.data("controllees").slideDown(300, function () { __this.removeClass("opening").removeClass("closed").addClass("open"); });
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
__this.addClass("closing")
|
||||||
|
.data("controllees").slideUp(300, function () { __this.removeClass("closing").removeClass("open").addClass("closed"); });
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
controller.before(glyph);
|
||||||
|
});
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
})(jQuery);
|
@@ -246,14 +246,11 @@ form.link button:hover {
|
|||||||
margin:0;
|
margin:0;
|
||||||
}
|
}
|
||||||
#navigation li h3 {
|
#navigation li h3 {
|
||||||
padding:0;
|
padding:0 0 0 8px;
|
||||||
}
|
}
|
||||||
#navigation li h3 a, #navigation li h3 span {
|
#navigation li h3 a, #navigation li h3 span {
|
||||||
display:block;
|
display:block;
|
||||||
padding:6px 4px 8px 8px;
|
padding:6px 4px 8px 0;
|
||||||
}
|
|
||||||
#navigation li h3 a:hover, #navigation li h3 a:active, #navigation li h3 a:focus {
|
|
||||||
text-decoration:none;
|
|
||||||
}
|
}
|
||||||
#navigation ul a, #navigation ul a:link, #navigation ul a:visited {
|
#navigation ul a, #navigation ul a:link, #navigation ul a:visited {
|
||||||
color:#2d2f25;
|
color:#2d2f25;
|
||||||
@@ -271,16 +268,45 @@ form.link button:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* todo: make generic so all toggles can use this and clean up jQuery */
|
/* todo: make generic so all toggles can use this and clean up jQuery */
|
||||||
.menuGlyph {
|
.expandoGlyph {
|
||||||
display:block;
|
background:#fcfcfc no-repeat center center;
|
||||||
height:11px;
|
background-image:url(data:image/gif;base64,R0lGODlhCwALAKIFAPDz2/b70mhpREJEPjI0Lf///wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkQzQjUyNTNFOTQyODExREY5MDkxQ0U0MzJGRTdGNEExIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkQzQjUyNTNEOTQyODExREY5MDkxQ0U0MzJGRTdGNEExIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJENDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAABQAsAAAAAAsACwAAAx1YutxeIbYIghBgWVwA4daQKZ4QjkspPsD6dG8sJwA7);
|
||||||
width:11px;
|
/*url("images/menuOpen.gif")*/
|
||||||
margin:0 0 -22px -8px;
|
cursor:pointer;
|
||||||
background:url("images/menuOpen.gif") no-repeat center top;
|
display:block;
|
||||||
|
height:17px;
|
||||||
|
margin:0 0 -2.5em -11px;
|
||||||
|
width:17px;
|
||||||
|
position:relative;
|
||||||
|
-webkit-transform:rotate(0deg);
|
||||||
}
|
}
|
||||||
.menuGlyph:hover {
|
.expandoGlyph:hover {
|
||||||
background:url("images/menuOpenHover.gif") no-repeat center top;
|
background-image:url(data:image/gif;base64,R0lGODlhCwALAJEDAB5dfcbVyMvbwf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUxMUUzODE2OTQyODExREZBN0ZBOURGNEI3NDVDRkMxIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUxMUUzODE1OTQyODExREZBN0ZBOURGNEI3NDVDRkMxIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJENDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAwAsAAAAAAsACwAAAhqcj6kjnR0EAOFIOsKstxoNdAmIKZq3oMvKFgA7);
|
||||||
cursor:pointer;
|
/*url("images/menuOpenHover.gif");*/
|
||||||
|
}
|
||||||
|
.expandoGlyph.closed {
|
||||||
|
background-image:url(data:image/gif;base64,R0lGODlhCwALAKIFAPDz2/b70mhpREJEPjI0Lf///wAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY2OEJCRkEyOTQyODExREY5ODMwQkQwQjI2MEMzREUwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY2OEJCRkExOTQyODExREY5ODMwQkQwQjI2MEMzREUwIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJENDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAABQAsAAAAAAsACwAAAx1YBaD+QbTn4pi0WEx3Vh4FCASnjGUWpar0acGXAAA7);
|
||||||
|
/*url("images/menuClosed.gif");*/
|
||||||
|
}
|
||||||
|
.expandoGlyph.closed:hover {
|
||||||
|
background-image:url(data:image/gif;base64,R0lGODlhCwALAJEDAB5dfcbVyMvbwf///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjA1NTdBNkZFOTQyOTExREY4QjNERjI1RjMzMUYxRjk1IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjA1NTdBNkZEOTQyOTExREY4QjNERjI1RjMzMUYxRjk1IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgV2luZG93cyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjJENDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjJDNDlGNjgyMjg5NERGMTE4RUZGQkY0Q0JCRDA3OTc2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+Af/+/fz7+vn49/b19PPy8fDv7u3s6+rp6Ofm5eTj4uHg397d3Nva2djX1tXU09LR0M/OzczLysnIx8bFxMPCwcC/vr28u7q5uLe2tbSzsrGwr66trKuqqainpqWko6KhoJ+enZybmpmYl5aVlJOSkZCPjo2Mi4qJiIeGhYSDgoGAf359fHt6eXh3dnV0c3JxcG9ubWxramloZ2ZlZGNiYWBfXl1cW1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBQD8+PTw7Ojk4NzY1NDMyMTAvLi0sKyopKCcmJSQjIiEgHx4dHBsaGRgXFhUUExIREA8ODQwLCgkIBwYFBAMCAQAAIfkEAQAAAwAsAAAAAAsACwAAAhrcEqYrkKuagxFMOuSjmga7Kd/FgFgTMgJWAAA7);
|
||||||
|
/*url("images/menuClosedHover.gif");*/
|
||||||
|
}
|
||||||
|
.expandoGlyph.closing {
|
||||||
|
-webkit-transition:all .2s ease-in-out;
|
||||||
|
-moz-transition:all .2s ease-in-out;
|
||||||
|
transition:all .2s ease-in-out;
|
||||||
|
-webkit-transform:rotate(-90deg);
|
||||||
|
-moz-transform:rotate(-90deg);
|
||||||
|
transform:rotate(-90deg);
|
||||||
|
}
|
||||||
|
.expandoGlyph.opening {
|
||||||
|
-webkit-transition:all .2s ease-in-out;
|
||||||
|
-moz-transition:all .2s ease-in-out;
|
||||||
|
transition:all .2s ease-in-out;
|
||||||
|
-webkit-transform:rotate(90deg);
|
||||||
|
-moz-transform:rotate(90deg);
|
||||||
|
transform:rotate(90deg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Content
|
/* Content
|
||||||
|
@@ -15,10 +15,17 @@
|
|||||||
classification += "last ";
|
classification += "last ";
|
||||||
|
|
||||||
%>
|
%>
|
||||||
<li<%=!string.IsNullOrEmpty(classification) ? string.Format(" class=\"{0}\"", classification.TrimEnd()) : "" %>><span class="menuGlyph"></span><h3><%=sectionHeaderMarkup %></h3><ul class="menuItems"><%foreach (var menuItem in menuSection.Items) { %>
|
<li<%=!string.IsNullOrEmpty(classification) ? string.Format(" class=\"{0}\"", classification.TrimEnd()) : "" %>><h3><%=sectionHeaderMarkup %></h3><ul class="menuItems"><%foreach (var menuItem in menuSection.Items) { %>
|
||||||
<li><%: Html.ActionLink(menuItem.Text, (string)menuItem.RouteValues["action"], menuItem.RouteValues)%></li>
|
<li><%: Html.ActionLink(menuItem.Text, (string)menuItem.RouteValues["action"], menuItem.RouteValues)%></li>
|
||||||
<%} %></ul></li>
|
<%} %></ul></li>
|
||||||
<%
|
<%
|
||||||
}
|
}
|
||||||
}%>
|
}%>
|
||||||
</ul>
|
</ul>
|
||||||
|
<% using (this.Capture("end-of-page-scripts")) { %>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(function () {
|
||||||
|
$("#navigation h3").expandoControl(function(controller) { return controller.next(); }, { key: "N42", path: "<%:ResolveUrl("~/Admin") %>" });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<% } %>
|
Reference in New Issue
Block a user