/// <summary> /// Setup media dialog from selected item. /// </summary> /// <param name="selectionTable">Hash table from selected item</param> /// <param name="anchorsList">List of anchors from document</param> /// <param name="idsList">List of ids from document</param> private void SelectMediaDialog(IDictionary selectionTable, ICollection anchorsList, ICollection idsList) { string insertHeaderLocation = BaseFilePath + "Header.aspx" + RequestContext.CurrentQueryString; if (selectionTable.Count > 0) { string siteName = null; string url = null; // If link dialog use only link url if (RequestContext.CurrentQueryString.ToLowerCSafe().Contains("link=1")) { if (selectionTable[DialogParameters.LINK_URL] != null) { url = selectionTable[DialogParameters.LINK_URL].ToString(); if ((selectionTable[DialogParameters.LINK_PROTOCOL] != null) && (selectionTable[DialogParameters.LINK_PROTOCOL].ToString() != "other")) { // Add protocol only if not already presents if (!url.StartsWithCSafe(selectionTable[DialogParameters.LINK_PROTOCOL].ToString())) { url = selectionTable[DialogParameters.LINK_PROTOCOL] + url; } } } else if (selectionTable[DialogParameters.URL_URL] != null) { url = selectionTable[DialogParameters.URL_URL].ToString(); } } else { // Get url from selection table if (selectionTable[DialogParameters.IMG_URL] != null) { url = selectionTable[DialogParameters.IMG_URL].ToString(); } else if (selectionTable[DialogParameters.FLASH_URL] != null) { url = selectionTable[DialogParameters.FLASH_URL].ToString(); } else if (selectionTable[DialogParameters.AV_URL] != null) { url = selectionTable[DialogParameters.AV_URL].ToString(); } else if (selectionTable[DialogParameters.LINK_URL] != null) { url = selectionTable[DialogParameters.LINK_URL].ToString(); } else if (selectionTable[DialogParameters.URL_URL] != null) { url = selectionTable[DialogParameters.URL_URL].ToString(); siteName = (selectionTable[DialogParameters.URL_SITENAME] != null ? selectionTable[DialogParameters.URL_SITENAME].ToString() : null); } } string query = URLHelper.RemoveUrlParameter(RequestContext.CurrentQueryString, "hash"); // Get the data for media source MediaSource ms = CMSDialogHelper.GetMediaData(url, siteName); if (ms != null) { SessionHelper.SetValue("MediaSource", ms); // Preselect the tab if (!selectionTable.Contains(DialogParameters.EMAIL_TO) || !selectionTable.Contains(DialogParameters.ANCHOR_NAME)) { switch (ms.SourceType) { case MediaSourceEnum.DocumentAttachments: case MediaSourceEnum.MetaFile: query = URLHelper.AddUrlParameter(query, "tab", "attachments"); break; case MediaSourceEnum.Content: query = URLHelper.AddUrlParameter(query, "tab", "content"); break; case MediaSourceEnum.MediaLibraries: query = URLHelper.AddUrlParameter(query, "tab", "libraries"); break; default: query = URLHelper.AddUrlParameter(query, "tab", "web"); break; } } // Update old format url if ((selectionTable.Contains(DialogParameters.URL_OLDFORMAT)) && (selectionTable.Contains(DialogParameters.URL_GUID))) { if (String.IsNullOrEmpty(siteName)) { siteName = SiteContext.CurrentSiteName; } string outUrl = ModuleCommands.MediaLibraryGetMediaFileUrl(selectionTable[DialogParameters.URL_GUID].ToString(), siteName); if (!String.IsNullOrEmpty(outUrl)) { selectionTable[DialogParameters.URL_URL] = outUrl; } } // Set extension if not exist in selection table if ((selectionTable[DialogParameters.URL_EXT] == null) || ((selectionTable[DialogParameters.URL_EXT] != null) && (String.IsNullOrEmpty(selectionTable[DialogParameters.URL_EXT].ToString())))) { selectionTable[DialogParameters.URL_EXT] = ms.Extension; } // Update selection table if only URL presents if (selectionTable.Contains(DialogParameters.URL_URL)) { switch (ms.MediaType) { case MediaTypeEnum.Image: // Image selectionTable[DialogParameters.IMG_URL] = UrlResolver.ResolveUrl(selectionTable[DialogParameters.URL_URL].ToString()); selectionTable[DialogParameters.IMG_WIDTH] = selectionTable[DialogParameters.URL_WIDTH]; selectionTable[DialogParameters.IMG_HEIGHT] = selectionTable[DialogParameters.URL_HEIGHT]; break; case MediaTypeEnum.AudioVideo: // Media selectionTable[DialogParameters.AV_URL] = UrlResolver.ResolveUrl(selectionTable[DialogParameters.URL_URL].ToString()); selectionTable[DialogParameters.AV_WIDTH] = selectionTable[DialogParameters.URL_WIDTH]; selectionTable[DialogParameters.AV_HEIGHT] = selectionTable[DialogParameters.URL_HEIGHT]; selectionTable[DialogParameters.AV_EXT] = ms.Extension; break; case MediaTypeEnum.Flash: // Flash selectionTable[DialogParameters.FLASH_URL] = UrlResolver.ResolveUrl(selectionTable[DialogParameters.URL_URL].ToString()); selectionTable[DialogParameters.FLASH_WIDTH] = selectionTable[DialogParameters.URL_WIDTH]; selectionTable[DialogParameters.FLASH_HEIGHT] = selectionTable[DialogParameters.URL_HEIGHT]; break; } if ((ms.SourceType == MediaSourceEnum.Content) && (ms.FileName != null) && (OutputFormat == OutputFormatEnum.NodeGUID)) { string fileUrl = AttachmentURLProvider.GetPermanentAttachmentUrl(ms.NodeGuid, ms.FileName); selectionTable[DialogParameters.URL_URL] = UrlResolver.ResolveUrl(fileUrl); } else if (OutputFormat != OutputFormatEnum.URL) { selectionTable[DialogParameters.URL_URL] = UrlResolver.ResolveUrl(selectionTable[DialogParameters.URL_URL].ToString()); } selectionTable[DialogParameters.FILE_NAME] = ms.FileName; selectionTable[DialogParameters.FILE_SIZE] = ms.FileSize; } // Add original size into table selectionTable[DialogParameters.IMG_ORIGINALWIDTH] = ms.MediaWidth; selectionTable[DialogParameters.IMG_ORIGINALHEIGHT] = ms.MediaHeight; } else { if (selectionTable.Contains(DialogParameters.EMAIL_TO)) { query = URLHelper.AddUrlParameter(query, "tab", "email"); } if (selectionTable.Contains(DialogParameters.ANCHOR_NAME)) { query = URLHelper.AddUrlParameter(query, "tab", "anchor"); } } query = URLHelper.AddUrlParameter(query, "hash", QueryHelper.GetHash(query)); insertHeaderLocation = BaseFilePath + "Header.aspx" + query; } // Set selected item into session SessionHelper.SetValue("DialogParameters", selectionTable); if ((anchorsList != null) && (anchorsList.Count > 0)) { SessionHelper.SetValue("Anchors", anchorsList); } if ((idsList != null) && (idsList.Count > 0)) { SessionHelper.SetValue("Ids", idsList); } if (((selectionTable[DialogParameters.LINK_TEXT] != null) && (selectionTable[DialogParameters.LINK_TEXT].ToString() == "##LINKTEXT##")) || ((selectionTable[DialogParameters.EMAIL_LINKTEXT] != null) && (selectionTable[DialogParameters.EMAIL_LINKTEXT].ToString() == "##LINKTEXT##")) || ((selectionTable[DialogParameters.ANCHOR_LINKTEXT] != null) && (selectionTable[DialogParameters.ANCHOR_LINKTEXT].ToString() == "##LINKTEXT##"))) { SessionHelper.SetValue("HideLinkText", true); } ltlScript.Text = ScriptHelper.GetScript("if (window.parent.frames['insertHeader']) { window.parent.frames['insertHeader'].location= \"" + ResolveUrl(insertHeaderLocation) + "\";} "); }