Fixed and closed #380: drop-down attachments and admin menus are now positioned (almost) correctly in IE7. Same workaround used for outgoing links drop-down menus.

This commit is contained in:
Dario Solera 2009-10-14 06:49:16 +00:00
parent 4224a5785b
commit 38de4fbb10
3 changed files with 31 additions and 10 deletions

View file

@ -16,5 +16,5 @@ using System.Reflection;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("3.0.0.352")]
[assembly: AssemblyFileVersion("3.0.0.352")]
[assembly: AssemblyVersion("3.0.0.353")]
[assembly: AssemblyFileVersion("3.0.0.353")]

View file

@ -42,13 +42,23 @@
var __attachmentsMenuJustShown = false;
var __adminToolsMenuJustShown = false;
var __ie7Mode = false;
function __ToggleAttachmentsMenu() {
function __ToggleAttachmentsMenu(cx, cy) {
var element = document.getElementById("PageAttachmentsDiv");
if(element) {
if(element.style["display"] == "none") {
element.style["display"] = "";
__RepositionDiv(document.getElementById("PageAttachmentsLink"), element);
var pos = __AbsolutePosition(element);
if(pos.left - cx > 0) {
__ie7Mode = true;
element.style["position"] = "absolute";
element.style["top"] = cy + "px";
element.style["left"] = (cx - pos.width) + "px";
}
else {
__RepositionDiv(document.getElementById("PageAttachmentsLink"), element);
}
__attachmentsMenuJustShown = true;
}
}
@ -58,17 +68,27 @@
var element = document.getElementById("PageAttachmentsDiv");
if(element && !__attachmentsMenuJustShown) {
element.style["display"] = "none";
if (__ie7Mode) element.style["left"] = "10000px";
}
__attachmentsMenuJustShown = false;
return true; // Needed to enabled next clicks' action (file download)
}
function __ToggleAdminToolsMenu() {
function __ToggleAdminToolsMenu(cx, cy) {
var element = document.getElementById("AdminToolsDiv");
if(element) {
if(element.style["display"] == "none") {
element.style["display"] = "";
__RepositionDiv(document.getElementById("AdminToolsLink"), element);
var pos = __AbsolutePosition(element);
if(pos.left - cx > 0) {
__ie7Mode = true;
element.style["position"] = "absolute";
element.style["top"] = cy + "px";
element.style["left"] = (cx - pos.width) + "px";
}
else {
__RepositionDiv(document.getElementById("AdminToolsLink"), element);
}
__adminToolsMenuJustShown = true;
}
}
@ -78,6 +98,7 @@
var element = document.getElementById("AdminToolsDiv");
if(element && !__adminToolsMenuJustShown) {
element.style["display"] = "none";
if(__ie7Mode) element.style["left"] = "10000px";
}
__adminToolsMenuJustShown = false;
return true; // Needed to enable next clicks' action (admin tools)
@ -233,11 +254,11 @@
<asp:Literal ID="lblDoubleClickHandler" runat="server" EnableViewState="False" meta:resourcekey="lblDoubleClickHandlerResource1" />
<div id="PageAttachmentsDiv">
<div id="PageAttachmentsDiv" style="position: absolute; left: 10000px;">
<st:AttachmentViewer ID="attachmentViewer" runat="server" />
</div>
<div id="AdminToolsDiv">
<div id="AdminToolsDiv" style="position: absolute; left: 10000px;">
<asp:Literal ID="lblRollbackPage" runat="server" EnableViewState="False" meta:resourcekey="lblRollbackPageResource1" />
<asp:Literal ID="lblAdministratePage" runat="server" EnableViewState="False" meta:resourcekey="lblAdministratePageResource1" />
<asp:Literal ID="lblSetPagePermissions" runat="server" EnableViewState="False" meta:resourcekey="lblSetPagePermissionsResource1" />

View file

@ -154,7 +154,7 @@ namespace ScrewTurn.Wiki {
int attachmentCount = GetAttachmentCount();
lblAttachmentsLink.Visible = canDownloadAttachments && !discussMode && !viewCodeMode && attachmentCount > 0;
if(lblAttachmentsLink.Visible) {
lblAttachmentsLink.Text = string.Format(@"<a id=""PageAttachmentsLink"" title=""{0}"" href=""#"" onclick=""javascript:return __ToggleAttachmentsMenu();"">{1}</a>",
lblAttachmentsLink.Text = string.Format(@"<a id=""PageAttachmentsLink"" title=""{0}"" href=""#"" onclick=""javascript:return __ToggleAttachmentsMenu(event.clientX, event.clientY);"">{1}</a>",
Properties.Messages.Attachments, Properties.Messages.Attachments);
}
attachmentViewer.Visible = lblAttachmentsLink.Visible;
@ -163,7 +163,7 @@ namespace ScrewTurn.Wiki {
lblAdminToolsLink.Visible = Settings.EnablePageToolbar && !discussMode && !viewCodeMode &&
((canRollback && bakCount > 0)|| canAdmin || canSetPerms);
if(lblAdminToolsLink.Visible) {
lblAdminToolsLink.Text = string.Format(@"<a id=""AdminToolsLink"" title=""{0}"" href=""#"" onclick=""javascript:return __ToggleAdminToolsMenu();"">{1}</a>",
lblAdminToolsLink.Text = string.Format(@"<a id=""AdminToolsLink"" title=""{0}"" href=""#"" onclick=""javascript:return __ToggleAdminToolsMenu(event.clientX, event.clientY);"">{1}</a>",
Properties.Messages.AdminTools, Properties.Messages.Admin);
if(canRollback && bakCount > 0) {