// ProduceAttachFileListMode // 功能: 將附加檔案的資料建構成列表模式 // 回傳: 單一筆附加檔案在table內的格式 private string ProduceAttachFileListMode( AttachmentThumbnailInfo attachmentInfo, bool previewAvailable, bool showPreview, bool canDownload, string linkUrl, string sourceUri, string attachmentVer) { StringBuilder sb = new StringBuilder(); sb.Append("<tr>"); sb.Append("<td>"); string downloadLinkStart = "<a href=\"" + String.Format(linkUrl, HttpUtility.UrlEncode(attachmentInfo.DisplayName)) + "\" target=\"_self\" title='" + attachmentInfo.DisplayName + "'>"; string viewDocArg = "'" + doc.DocumentId.ToString() + "','" + attachmentVer + "','" + HttpUtility.UrlEncode(attachmentInfo.DisplayName) + "'"; if (attachmentInfo.Type == AttachmentThumbnailInfo.FileType.FLV) { viewDocArg += ",'flv'"; } else { viewDocArg += ",'file'"; } string previewLinkStart = "<a href='javascript:void(0)' title='" + attachmentInfo.DisplayName + "' onclick=\"PreviewAttachFile(" + viewDocArg + ");\" >"; string disabledDownloadLinkStart = "<a href='javascript:void(0)' style='cursor:text; color:#ccc;' target=\"_self\" title='" + attachmentInfo.DisplayName + "'>"; string disabledPreviewLinkStart = "<a href='javascript:void(0)' style='cursor:text; color:#ccc;' title='" + i18n.GetMessage("m913") + "'>"; if (showPreview) { if (previewAvailable) { sb.Append(previewLinkStart); } else { sb.Append(disabledPreviewLinkStart); } sb.Append(i18n.GetMessage("m907")); sb.Append("</a>"); sb.Append(" "); if (canDownload) { sb.Append(downloadLinkStart); } else { sb.Append(disabledDownloadLinkStart); } sb.Append(i18n.GetMessage("m906")); sb.Append("</a>"); } sb.Append(" <img src='" + attachmentInfo.Icon + "' width='16' height='16' style=\"vertical-align: middle;\"/>"); sb.Append("</td>"); sb.Append("<td>"); int displayNameLengthLimit = 35; if (!showPreview && canDownload) { sb.Append(downloadLinkStart + StringLimitEditor(attachmentInfo.DisplayName, displayNameLengthLimit) + "</a>"); } else { sb.Append(StringLimitEditor(attachmentInfo.DisplayName, displayNameLengthLimit)); } if (sourceUri.Contains("http://")) { sb.Append(" [<a href=\"" + sourceUri + "\" target=\"_blank\">" + i18n.GetMessage("m483") + "</a> <img src=\"images\\arrow_105.gif\" Title=" + i18n.GetMessage("m483") + " onclick=\"javascipt:window.open('" + sourceUri + "')\" style='cursor:pointer' align='absmiddle' />]"); } if (attachmentInfo.Type == AttachmentThumbnailInfo.FileType.Image) { sb.Append("<a herf='#' class='ShowThumbnail'> <img src='images\\view.gif' width='16' height='16' /> <div>"); sb.Append("<div><img src='" + attachmentInfo.Link + "' /></div>"); sb.Append(" </div></a>"); } sb.Append("</td>"); sb.Append("</tr>"); return sb.ToString(); }
private void buildFileList() { string linkUrl = "download.aspx?documentId=" + doc.DocumentId.ToString() + "&fileName={0}&ver=" + ver.ToString(); StringBuilder sb = new StringBuilder(); StringBuilder FileListMode = new StringBuilder(); StringBuilder FileDocMode = new StringBuilder(); SourceFileInfo[] allFiles = WebUtility.Repository.GetDocumentService().GetFiles(currentUser, doc.DocumentId, ver); ThumbnailAgent thumbUtl = new ThumbnailAgent(); AttachmentThumbnailInfo attachmentInfo = new AttachmentThumbnailInfo(); bool previewOn = Convert.ToBoolean(ConfigurationManager.AppSettings["ShowPreview"] != null ? ConfigurationManager.AppSettings["ShowPreview"].ToString() : "false"); string hideList = string.Empty; string hideDoc = string.Empty; string btnMode = string.Empty; if (attachMode == "list") { hideDoc = " style='display:none;'"; btnMode = "<img id='ListModeImg' src='images\\ListModeOn.png' title='" + i18n.GetMessage("m868") + "' style='cursor:normal' /> " + "<img id='DocumentModeImg' src='images\\DocumentModeOff.png' title='" + i18n.GetMessage("m867") + "' style='cursor:pointer'/>"; } else { hideList = " style='display:none;'"; btnMode = "<img id='ListModeImg' src='images\\ListModeOff.png' title='" + i18n.GetMessage("m868") + "' style='cursor:pointer' /> " + "<img id='DocumentModeImg' src='images\\DocumentModeOn.png' title='" + i18n.GetMessage("m867") + "' style='cursor:normal'/>"; } if (allFiles.Length > 0) { bool canPreview = WebUtility.HasPreviewPrivilege(docId, currentUser); bool canDownload = WebUtility.HasDownloadPrivilege(docId, currentUser); bool previewAvaliable = false; string attachmentVer = string.Empty; foreach (SourceFileInfo sfi in allFiles) { attachmentInfo = thumbUtl.GetThumbnail(doc.DocumentId, ver, sfi.CurrentPath); attachmentVer = GetAttachmentVer(sfi.CurrentPath); previewAvaliable = WebUtility.IsOnlinePreviewAvailable(doc.DocumentId, ver, canPreview, sfi.CurrentPath, sfi); FileListMode.Append(ProduceAttachFileListMode( attachmentInfo, previewAvaliable, previewOn, canDownload, linkUrl, sfi.SourceUri, attachmentVer)); FileDocMode.Append(ProduceAttachFileDocumentMode( attachmentInfo, previewAvaliable, previewOn, canDownload, linkUrl, sfi.SourceUri, attachmentVer)); hasFiles = true; } LiteralControl c = new LiteralControl(); c.Text = "<div id='AttachFormRoot'>" + "<div id='SwitchAttachModeButtonLoc'>" + btnMode + "</div>" + "<div id='AttachListMode' class='AttachFileTable' " + hideList + "><table>" + FileListMode.ToString() + "</table></div>" + "<div id='AttachDocumentMode' class='AttachFileTable' " + hideDoc + "></div>" + "<div id='AttachDocumentTemp'>" + FileDocMode.ToString() + "</div> </div>"; fileList.Controls.Add(c); } else { LiteralControl blankLabel = new LiteralControl(); blankLabel.Text = "<table cellspacing=\"0\" cellpadding=\"0\"><tr><td>" + i18n.GetMessage("m241") + "</td></tr></table>"; fileList.Controls.Add(blankLabel); } }
// ProduceAttachFileDocumentMode // 功能: 將附加檔案的資料建構成檔案總管模式 // 回傳: 單一筆附加檔案在table內的格式 private string ProduceAttachFileDocumentMode( AttachmentThumbnailInfo attachmentInfo, bool previewAvailable, bool showPreview, bool canDownload, string linkUrl, string sourceUri, string attachmentVer) { StringBuilder sb = new StringBuilder(); int TitleLimit = 14; string viewDocArg = "'" + doc.DocumentId.ToString() + "','" + attachmentVer + "','" + HttpUtility.UrlEncode(attachmentInfo.DisplayName) + "'"; if (attachmentInfo.Type == AttachmentThumbnailInfo.FileType.FLV) { viewDocArg += ",'flv'"; } else { viewDocArg += ",'file'"; } string downloadLinkStart = "<a href=\"" + String.Format(linkUrl, HttpUtility.UrlEncode(attachmentInfo.DisplayName)) + "\" target=\"_self\" title='" + attachmentInfo.DisplayName + "'>"; string previewLinkStart = "<a href='javascript:void(0)' onclick=\"PreviewAttachFile(" + viewDocArg + ");\" >"; string disabledDownloadLinkStart = "<a href='javascript:void(0)' style='cursor:text; color:#ccc;' target=\"_self\" title='" + attachmentInfo.DisplayName + "'>"; string disabledPreviewLinkStart = "<a href='javascript:void(0)' style='cursor:text; color:#ccc;' title='" + i18n.GetMessage("m913") + "'>"; string imageLinkStart = "<a href='javascript:void(0)' target=\"_self\" title='" + attachmentInfo.DisplayName + "'>"; string LinkStrDummyHead = string.Empty; if (showPreview) { LinkStrDummyHead = imageLinkStart; } else { if (canDownload) { LinkStrDummyHead = downloadLinkStart; } else { LinkStrDummyHead = disabledDownloadLinkStart; } } string LinkStrEnd = "</a>"; sb.Append("<div class='DocInnerFrame'>"); sb.Append("<div class='DocInnerFramePicture'>" + LinkStrDummyHead); sb.Append("<div class='ImageFileLoc'>"); sb.Append("<img border='0' src='" + attachmentInfo.Link + "' />"); sb.Append("</div>"); sb.Append(LinkStrEnd + "</div>"); sb.Append("<div class='DocInnerFrameBriefTitle'>"); sb.Append(LinkStrDummyHead + StringLimitEditor(attachmentInfo.DisplayName, TitleLimit) + LinkStrEnd); sb.Append("</div>"); sb.Append("<div class='DocInnerFrameFullTitle'>" + LinkStrDummyHead + attachmentInfo.DisplayName + LinkStrEnd); if (showPreview) { if (previewAvailable) { sb.Append("<div class='CmdTitle ShowPreview'>"); sb.Append("<ul>"); sb.Append("<li>"); sb.Append(previewLinkStart); sb.Append(i18n.GetMessage("m907")).Append("</a>"); sb.Append("</li>"); } else { sb.Append("<div class='CmdTitle WithoutPreview'>"); sb.Append("<ul>"); sb.Append("<li>"); sb.Append(disabledPreviewLinkStart); sb.Append(i18n.GetMessage("m907")).Append("</a>"); sb.Append("</li>"); } sb.Append("<li>"); if (canDownload) { sb.Append(downloadLinkStart); } else { sb.Append(disabledDownloadLinkStart); } sb.Append(i18n.GetMessage("m906")); sb.Append("</a>"); sb.Append("</li>"); if (sourceUri.Contains("http://")) { sb.Append("<li><a href='" + sourceUri + "' target='_blank' >" + i18n.GetMessage("m483") + "</a></li>"); } sb.Append("</ul>"); sb.Append("</div>"); } sb.Append("</div></div>"); return sb.ToString(); }