protected override void Render(HtmlTextWriter writer) { if (LineBreakOnTop || UseContainer) { writer.WriteLine("<br class=\"h5\"/>"); } if (UseContainer) { writer.WriteLine("<div class=\"AppCtrlMrg\">"); } string html = string.Format("<img src=\"{0}\" width=\"14\" height=\"14\" />", GetImagePath()); writer.WriteLine(html); if (Header.Length > 0) { Header = SiteUtils.ConvertTextToHtml(Header, GetHeaderTextClass()); html = string.Format("<span class=\"{0}\">{1}<br /></span>", GetHeaderTextClass(), Header); writer.WriteLine(html); } if (m_Errors.Count > 0) { for (int i = 0; i < m_Errors.Count; i++) { string error = m_Errors[i].ToString(); error = SiteUtils.ConvertTextToHtml(error, GetTextClass()); html = string.Format("<span class=\"{0}\"> - {1}<br /></span>", GetTextClass(), error); writer.Write(html); } } else if (Text.Length > 0) { Text = SiteUtils.ConvertTextToHtml(Text, GetTextClass()); html = string.Format("<span class=\"{0}\">{1}{2}<br /></span>", GetTextClass(), TextPrefix, Text); writer.WriteLine(html); } for (int i = 0; i < LineBreaks; i++) { writer.WriteBreak(); } if (UseContainer) { writer.WriteLine("</div>"); } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (AssetWorkflowCommenter.IsNull) { Response.Redirect("~/Admin/Assets/AssetList.aspx"); } if (!StringUtils.IsBlank(AssetWorkflowCommenter.Comments)) { MessageLabel.SetErrorMessage("You have already commented on this workflow"); MessageLabel.Pinned = true; DisableUI(); } if (AssetWorkflow.IsComplete) { MessageLabel.SetErrorMessage("Asset workflow is complete and comments have been disabled"); MessageLabel.Pinned = true; DisableUI(); } AssetWorkflowUserList.Repeater.DataSource = AssetWorkflow.AssetWorkflowUserList; AssetWorkflowUserList.Repeater.DataBind(); Asset asset = AssetWorkflow.Asset; AssetReferenceLiteral.Text = asset.AssetId.ToString(); UploadUserEmailHyperLink.SetNameEmail(asset.UploadedByUser.FullName, asset.UploadedByUser.Email); PublicationDateLiteral.Text = asset.PublishDate.ToString(Global.DateFormat); DownloadAssetHyperLink.NavigateUrl = AssetFileUrlHelper.GetDownloadUrl(asset.AssetId); AssetThumbnail.Initialise(asset); AssetButtons1.Initialise(asset); AssetTypeCell.InnerText = asset.AssetType.Name; BrandCell.InnerText = asset.BrandName; ShortDescriptionCell.InnerHtml = SiteUtils.ConvertTextToHtml(asset.Description); UsageRestrictionsCell.InnerText = asset.UsageRestrictions; InvitingUserName.Text = AssetWorkflowCommenter.InvitingUser.FullName; InvitingUserMessageCell.InnerText = AssetWorkflowCommenter.InvitingUserMessage; ResponseTextArea.Text = AssetWorkflowCommenter.Comments; SiteUtils.SetHyperLink("Assets.AssetForm", string.Format("?assetId={0}", asset.AssetId), EditAssetHyperLink); AssetWorkflowLog.Bind(AssetWorkflow.Asset); } }
protected void ConversationRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { switch (e.Item.ItemType) { case ListItemType.Item: case ListItemType.AlternatingItem: OrderItemComment orderItemComment = (OrderItemComment)e.Item.DataItem; Label UserNameLabel = (Label)e.Item.FindControl("UserNameLabel"); UserNameLabel.Text = orderItemComment.UserFullName; Label DateLabel = (Label)e.Item.FindControl("DateLabel"); DateLabel.Text = orderItemComment.CommentDate.ToString(Global.DateTimeFormat); Label CommentTextLabel = (Label)e.Item.FindControl("CommentTextLabel"); CommentTextLabel.Text = SiteUtils.ConvertTextToHtml(orderItemComment.CommentText, e.Item.ItemType == ListItemType.Item ? "PosTxt" : "BodyTxt"); break; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (CurrentAsset.IsNull) { Page.ClientScript.RegisterClientScriptBlock(GetType(), "close", "self.close();", true); return; } // Get the asset ID int assetId = CurrentAsset.AssetId.GetValueOrDefault(); // Get the asset type info AssetTypeInfo assetType = AssetTypeInfo.Get(CurrentAsset.FileExtension); //----------------------------------------------------------------------------------------------------- // Set up UI elements based on asset type //----------------------------------------------------------------------------------------------------- OrientationRow.Visible = assetType.HasOrientation; DurationRow.Visible = assetType.HasDuration; DimensionsRow.Visible = assetType.HasDimensions; //----------------------------------------------------------------------------------------------------- // Set up asset breadcrumbs based on category //----------------------------------------------------------------------------------------------------- AssetBreadcrumb.CategoryId = CurrentAsset.PrimaryCategoryId; //----------------------------------------------------------------------------------------------------- // Update the audit log //----------------------------------------------------------------------------------------------------- AuditLogManager.LogAssetAction(assetId, CurrentUser, AuditAssetAction.ViewedAssetDetail); AuditLogManager.LogUserAction(CurrentUser, AuditUserAction.ViewedAssetDetail, string.Format("Viewed asset detail for AssetId: {0}", assetId)); //----------------------------------------------------------------------------------------------------- // Initialise the asset preview and buttons //----------------------------------------------------------------------------------------------------- AssetPreview1.Asset = CurrentAsset; AssetButtons1.Initialise(CurrentAsset); //----------------------------------------------------------------------------------------------------- // Bind categories list //----------------------------------------------------------------------------------------------------- AssetCategoriesContainer.Visible = (CurrentAsset.CategoryList.Count > 0); CategoriesRepeater.DataSource = CurrentAsset.CategoryList; CategoriesRepeater.DataBind(); //----------------------------------------------------------------------------------------------------- // Bind attached files //----------------------------------------------------------------------------------------------------- List <AssetFile> attachedFiles = CurrentAsset.GetAttachedFiles(); AttachedFilesRow.Visible = (attachedFiles.Count > 0); AttachedFilesDataList.DataSource = attachedFiles; AttachedFilesDataList.DataBind(); //----------------------------------------------------------------------------------------------------- // Bind linked assets //----------------------------------------------------------------------------------------------------- LinkedAssetsRow.Visible = (CurrentAsset.ReciprocalLinkedAssetList.Count > 0); LinkedAssetsRepeater.DataSource = CurrentAsset.ReciprocalLinkedAssetList; LinkedAssetsRepeater.DataBind(); //----------------------------------------------------------------------------------------------------- // Set up the file type icon //----------------------------------------------------------------------------------------------------- FileTypeIconImage.ImageUrl = SiteUtils.GetFileTypeImageUrl(CurrentAsset.FileExtension); FileTypeIconImage.ToolTip = CurrentAsset.Filename; //----------------------------------------------------------------------------------------------------- // Brand controlled metadata //----------------------------------------------------------------------------------------------------- AssetIdCell.InnerText = CurrentAsset.AssetId.ToString(); DateUploadedLabel.Text = CurrentAsset.UploadDate.ToString(Global.DateFormat); FilenameCell.InnerText = FileUtils.GetTruncatedFilename(CurrentAsset.Filename, 25); FileHashLabel.Text = StringUtils.IsBlank(CurrentAsset.FileHash) ? "[Not Available]" : CurrentAsset.FileHash.Substring(0, 15) + " ..."; FileHashLabel.ToolTip = CurrentAsset.FileHash; FilesizeCell.InnerText = FileUtils.FriendlyFileSize(CurrentAsset.FileSize); AssetTypeCell.InnerText = CurrentAsset.AssetType.Name; DateProducedCell.InnerText = CurrentAsset.GetProductionDate(); OriginatorCell.InnerText = CurrentAsset.Originator; TitleCell.InnerText = CurrentAsset.Title; ProjectCodeCell.InnerText = CurrentAsset.ProjectCode; BrandCell.InnerText = CurrentAsset.Brand.Name; AssetDescriptionContainer.InnerHtml = SiteUtils.ConvertTextToHtml(CurrentAsset.Description); AdditionalKeywordsCell.InnerText = CurrentAsset.Keywords; CopyrightOwnerCell.InnerHtml = StringUtils.IgnoreCaseCompare(CurrentAsset.CopyrightOwner, WebsiteBrandManager.GetBrand().OrganisationName) ? "(c) " + CurrentAsset.CopyrightOwner : CurrentAsset.CopyrightOwner; UsageRestrictionsCell.InnerHtml = CurrentAsset.UsageRestrictions; ContactEmailHyperLink.EmailAddress = CurrentAsset.ContactEmail; PublicationDateCell.InnerText = CurrentAsset.PublishDate.ToString(Global.DateFormat); ExpiryDateCell.InnerText = CurrentAsset.ExpiryDate.ToString(Global.DateFormat); // order metas according to their meta settings asset detail order numbers TrBrand.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.BRAND).AssetDetailOrderNum.ToString(); TrAssetType.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.ASSET_TYPE).AssetDetailOrderNum.ToString(); TrFilename.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.FILENAME).AssetDetailOrderNum.ToString(); TrFileSize.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.FILESIZE).AssetDetailOrderNum.ToString(); TrFileHash.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.FILEHASH).AssetDetailOrderNum.ToString(); TrDateUploaded.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.DATE_UPLOADED).AssetDetailOrderNum.ToString(); TrTitle.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.TITLE).AssetDetailOrderNum.ToString(); TrProjectCode.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.PROJECT_CODE).AssetDetailOrderNum.ToString(); TrOriginator.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.ORIGINATOR).AssetDetailOrderNum.ToString(); TrDateProduced.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.DATE_PRODUCED).AssetDetailOrderNum.ToString(); TrContactEmail.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.CONTACT_EMAIL).AssetDetailOrderNum.ToString(); TrCopyrightOwner.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.COPYRIGHT_OWNER).AssetDetailOrderNum.ToString(); TrRestrictedDownload.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.DOWNLOAD_RESTRICTIONS).AssetDetailOrderNum.ToString(); TrUsageRestrictions.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.USAGE_RESTRICTIONS).AssetDetailOrderNum.ToString(); TrAdditionalKeywords.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.ADDITIONAL_KEYWORDS).AssetDetailOrderNum.ToString(); TrPublicationDate.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.PUBLICATION_DATE).AssetDetailOrderNum.ToString(); TrExpiryDate.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.EXPIRY_DATE).AssetDetailOrderNum.ToString(); LinkedAssetsRow.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.LINKED_ASSETS).AssetDetailOrderNum.ToString(); AttachedFilesRow.Attributes["class"] = CurrentAsset.Brand.GetMetadataSetting(BrandMetadataSettings.ATTACHED_FILES).AssetDetailOrderNum.ToString(); var allSettings = BrandMetadataSettingManager.GetCustomMetadataSettings(CurrentAsset.Brand.BrandId.GetValueOrDefault()); var lastNum = allSettings.OrderBy(s => s.AssetDetailOrderNum).LastOrDefault().AssetDetailOrderNum; DimensionsRow.Attributes["class"] = (lastNum++).ToString(); DurationRow.Attributes["class"] = (lastNum++).ToString(); OrientationRow.Attributes["class"] = (lastNum++).ToString(); //----------------------------------------------------------------------------------------------------- // Other stuff //----------------------------------------------------------------------------------------------------- OrientationCell.InnerText = CurrentAsset.GetOrientation(); DurationCell.InnerText = SiteUtils.FriendlyDuration(CurrentAsset.Duration.GetValueOrDefault(), "Unknown"); DimensionsCell.InnerText = CurrentAsset.GetDimensions(); RestrictedDownloadCell.InnerText = EntitySecurityManager.IsAssetRestricted(CurrentUser, CurrentAsset) ? "Yes" : "No"; // Only show file metadata link if we have some available // ShowFileMeta data returns true if there is File metadata to display. FileMetadataLinkButton.Visible = ShowFileMetadata(); FileMetadataLinkDivider.Visible = FileMetadataLinkButton.Visible; //----------------------------------------------------------------------------------------------------- // Setup security in UI: Only display the edit and status links of the user has access //----------------------------------------------------------------------------------------------------- if (EntitySecurityManager.CanManageAsset(CurrentUser, CurrentAsset)) { string editUrl = "~/Admin/Assets/AssetForm.aspx?assetId=" + CurrentAsset.AssetId; EditHyperLink.NavigateUrl = editUrl; EditHyperLink.Attributes.Add("onClick", string.Format("GetParentWindow().location.href='{0}';self.close();return false;", ResolveUrl(editUrl))); string statsUrl = "~/Admin/Reports/AssetStats.aspx?assetId=" + assetId; StatsHyperLink.NavigateUrl = statsUrl; StatsHyperLink.Attributes.Add("onClick", string.Format("GetParentWindow().location.href='{0}';self.close();return false;", ResolveUrl(statsUrl))); string logHyperlink = "~/Admin/Reports/AssetAuditTrail.aspx?AssetId=" + CurrentAsset.AssetId; LogHyperLink.NavigateUrl = logHyperlink; LogHyperLink.Attributes.Add("onClick", string.Format("GetParentWindow().location.href='{0}';self.close();return false;", ResolveUrl(logHyperlink))); } else { AssetLinksContainer.Visible = false; } //----------------------------------------------------------------------------------------------------- // Control access or AssetOrderHistory links. //----------------------------------------------------------------------------------------------------- if (!EntitySecurityManager.CanViewAssetOrderHistory(CurrentUser, CurrentAsset)) { // Get the asset order history, if there isn't any order history // then hide the link. // Set visiblity of order history link OrderHistoryDivider.Visible = false; OrderHistoryLinkButton.Visible = false; } else { // Get the asset order history, if there isn't any order history // then hide the link. if (!ShowOrderHistory()) { // Set visiblity of order history link OrderHistoryDivider.Visible = false; OrderHistoryLinkButton.Visible = false; } } //----------------------------------------------------------------------------------------------------- // Populate blank cells //----------------------------------------------------------------------------------------------------- SiteUtils.PopulateBlankControl(AssetDescriptionContainer); SiteUtils.PopulateBlankControl(FilenameCell); SiteUtils.PopulateBlankControl(FilesizeCell); SiteUtils.PopulateBlankControl(TitleCell); SiteUtils.PopulateBlankControl(DurationCell); SiteUtils.PopulateBlankControl(ProjectCodeCell); SiteUtils.PopulateBlankControl(OriginatorCell); SiteUtils.PopulateBlankControl(DateProducedCell); SiteUtils.PopulateBlankControl(CopyrightOwnerCell); SiteUtils.PopulateBlankControl(OrientationCell); SiteUtils.PopulateBlankControl(UsageRestrictionsCell); } //sort metas on every request ClientScript.RegisterStartupScript(GetType(), "SortMetas2", "SortMetas();", true); //bind repeater on every request as otherwise labels stuff is lost MetadataRepeater.DataSource = BrandMetadataSettingManager.GetCustomMetadataSettings(CurrentAsset.BrandId); MetadataRepeater.DataBind(); }
protected void CartRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { switch (e.Item.ItemType) { case (ListItemType.Item): case (ListItemType.AlternatingItem): Cart cart = (Cart)e.Item.DataItem; Asset asset = cart.Asset; HiddenField AssetIdHiddenField = (HiddenField)e.Item.FindControl("AssetIdHiddenField"); HiddenField CartIdHiddenField = (HiddenField)e.Item.FindControl("CartIdHiddenField"); AssetIdHiddenField.Value = asset.AssetId.ToString(); CartIdHiddenField.Value = cart.CartId.ToString(); AssetThumbnail AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1"); AssetButtons AssetButtons1 = (AssetButtons)e.Item.FindControl("AssetButtons1"); AssetThumbnail1.Initialise(asset); AssetButtons1.Initialise(asset); HtmlTableCell AssetIdCell = (HtmlTableCell)e.Item.FindControl("AssetIdCell"); HtmlTableCell AssetShortDescriptionCell = (HtmlTableCell)e.Item.FindControl("AssetShortDescriptionCell"); HtmlTableCell AssetBrandNameCell = (HtmlTableCell)e.Item.FindControl("AssetBrandNameCell"); HtmlTableCell AssetTypeCell = (HtmlTableCell)e.Item.FindControl("AssetTypeCell"); HtmlTableCell UsageRestrictionsCell = (HtmlTableCell)e.Item.FindControl("UsageRestrictionsCell"); EmailHyperLink AssetContactEmailHyperLink = (EmailHyperLink)e.Item.FindControl("AssetContactEmailHyperLink"); DatePicker DateRequiredPicker = (DatePicker)e.Item.FindControl("DateRequiredPicker"); TextBox NotesTextBox = (TextBox)e.Item.FindControl("NotesTextBox"); CheckBox SelectAssetCheckBox = (CheckBox)e.Item.FindControl("SelectAssetCheckBox"); FeedbackLabel CartItemMessageLabel = (FeedbackLabel)e.Item.FindControl("CartItemMessageLabel"); HtmlTableRow IntendedUseRow = (HtmlTableRow)e.Item.FindControl("IntendedUseRow"); PlaceHolder SaveNotesButtonPlaceHolder = (PlaceHolder)e.Item.FindControl("SaveNotesButtonPlaceHolder"); AssetIdCell.InnerText = asset.AssetId.ToString(); AssetShortDescriptionCell.InnerHtml = SiteUtils.ConvertTextToHtml(asset.Description); AssetBrandNameCell.InnerText = asset.Brand.Name; AssetTypeCell.InnerText = asset.AssetType.Name; UsageRestrictionsCell.InnerHtml = asset.UsageRestrictions; AssetContactEmailHyperLink.EmailAddress = asset.ContactEmail; DateRequiredPicker.SelectedDate = cart.RequiredByDate; NotesTextBox.Text = cart.Notes; SelectAssetCheckBox.Checked = IsCartItemSelected(cart.CartId.GetValueOrDefault()); // Ensure blank cells have content SiteUtils.PopulateBlankControl(AssetShortDescriptionCell); SiteUtils.PopulateBlankControl(UsageRestrictionsCell); AssetStatus assetStatus = AssetManager.GetAssetStatusForUser(asset, CurrentUser); bool isRestricted = EntitySecurityManager.IsAssetRestricted(CurrentUser, asset); switch (assetStatus) { case AssetStatus.Withdrawn: CartItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Withdrawn; CartItemMessageLabel.Header = "this asset is not available for ordering"; IntendedUseRow.Visible = false; SaveNotesButtonPlaceHolder.Visible = false; break; case AssetStatus.Expired: CartItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Withdrawn; CartItemMessageLabel.Header = "this asset is not available for ordering"; IntendedUseRow.Visible = false; SaveNotesButtonPlaceHolder.Visible = false; break; case AssetStatus.Available: if (isRestricted) { CartItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Negative; CartItemMessageLabel.Header = "approval required"; CartItemMessageLabel.Text = "Approval is required to use this asset. State intended usage in the notes (you may be asked for further information)."; IntendedUseRow.Visible = true; SaveNotesButtonPlaceHolder.Visible = true; } else { CartItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Positive; CartItemMessageLabel.Header = "no approval required"; CartItemMessageLabel.Text = "Approval is not required to download and use this asset."; IntendedUseRow.Visible = false; SaveNotesButtonPlaceHolder.Visible = false; } break; } // Only show the date required selector if the asset is available but restricted HtmlTableRow DateRequiredRow = (HtmlTableRow)e.Item.FindControl("DateRequiredRow"); DateRequiredRow.Visible = (assetStatus == AssetStatus.Available && isRestricted); break; } }
protected void OrderItemsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { switch (e.Item.ItemType) { case (ListItemType.Item): case (ListItemType.AlternatingItem): OrderItem orderItem = (OrderItem)e.Item.DataItem; Asset asset = orderItem.Asset; HiddenField OrderItemIdHiddenField = (HiddenField)e.Item.FindControl("OrderItemIdHiddenField"); OrderItemIdHiddenField.Value = orderItem.OrderItemId.ToString(); AssetThumbnail AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1"); AssetThumbnail1.Initialise(asset); AssetButtons AssetButtons1 = (AssetButtons)e.Item.FindControl("AssetButtons1"); AssetButtons1.Initialise(asset); Label AssetIdLabel = (Label)e.Item.FindControl("AssetIdLabel"); AssetIdLabel.Text = asset.AssetId.ToString(); Label AssetDescriptionLabel = (Label)e.Item.FindControl("AssetDescriptionLabel"); AssetDescriptionLabel.Text = SiteUtils.ConvertTextToHtml(asset.Description); Label BrandNameLabel = (Label)e.Item.FindControl("BrandNameLabel"); BrandNameLabel.Text = asset.Brand.Name; Label AssetTypeLabel = (Label)e.Item.FindControl("AssetTypeLabel"); AssetTypeLabel.Text = asset.AssetType.Name; Label AssetUsageRestrictionsLabel = (Label)e.Item.FindControl("AssetUsageRestrictionsLabel"); AssetUsageRestrictionsLabel.Text = asset.UsageRestrictions; Label DeadlineDatelabel = (Label)e.Item.FindControl("DeadlineDateLabel"); if (orderItem.RequiredByDate.HasValue) { DeadlineDatelabel.Text = orderItem.RequiredByDate.Value.ToString(Global.DateFormat); } Label UserNotesLabel = (Label)e.Item.FindControl("UserNotesLabel"); UserNotesLabel.Text = orderItem.Notes; Label NoConversationLabel = (Label)e.Item.FindControl("NoConversationLabel"); HtmlTableRow AddCommentRow = (HtmlTableRow)e.Item.FindControl("AddCommentRow"); RadioButtonList OrderItemStatusRadioButtonList = (RadioButtonList)e.Item.FindControl("OrderItemStatusRadioButtonList"); OrderItemStatusRadioButtonList.SelectedValue = orderItem.OrderItemStatusId.ToString(); FeedbackLabel OrderItemStatusMessageLabel = (FeedbackLabel)e.Item.FindControl("OrderItemStatusMessageLabel"); switch (orderItem.OrderItemStatus) { case OrderItemStatus.Preapproved: OrderItemStatusRadioButtonList.Visible = false; OrderItemStatusMessageLabel.SetSuccessMessage("Asset is preapproved"); break; case OrderItemStatus.AwaitingApproval: { HtmlTableRow AssignedToRow = (HtmlTableRow)e.Item.FindControl("AssignedToRow"); AssignedToRow.Visible = true; Label AssignedToLabel = (Label)e.Item.FindControl("AssignedToLabel"); AssignedToLabel.Text = orderItem.AssignedToUser.FullName; AssignedToLabel.ToolTip = orderItem.AssignedToUser.UserRoleName; if (CurrentUser.UserRole == UserRole.SuperAdministrator) { // Do nothing. Super-admins can action any order item // Keep the radio buttons visible. } else if (orderItem.AssignedToUserId == CurrentUser.UserId) { // Do nothing. When an order item is assigned to the user viewing it, // they are able to action it as desired. Keep the radio buttons visible. } else { // Show who the order item is awaiting approval from. OrderItemStatusMessageLabel.SetErrorMessage("Awaiting approval from " + orderItem.AssignedToUser.FullName); // Hide the action radio buttons OrderItemStatusRadioButtonList.Visible = false; } } break; case OrderItemStatus.Approved: OrderItemStatusRadioButtonList.Visible = false; string message = string.Format("Approved by {0} on {1}", orderItem.StatusChangedByUser.FullName, orderItem.OrderItemStatusDate.GetValueOrDefault().ToString(Global.DateFormat)); OrderItemStatusMessageLabel.SetSuccessMessage(message); break; case OrderItemStatus.Rejected: OrderItemStatusRadioButtonList.Visible = false; message = string.Format("Rejected by {0} on {1}", orderItem.StatusChangedByUser.FullName, orderItem.OrderItemStatusDate.GetValueOrDefault().ToString(Global.DateFormat)); OrderItemStatusMessageLabel.SetErrorMessage(message); break; } if (GeneralUtils.ValueIsInList(orderItem.OrderItemStatus, OrderItemStatus.Preapproved, OrderItemStatus.Approved, OrderItemStatus.Rejected)) { if (orderItem.OrderItemCommentList.Count == 0) { NoConversationLabel.Text = "(none)"; NoConversationLabel.Font.Italic = true; } AddCommentRow.Visible = false; OrderItemStatusRadioButtonList.Visible = false; } if (StringUtils.IsBlank(DeadlineDatelabel.Text)) { DeadlineDatelabel.Text = "(none)"; DeadlineDatelabel.CssClass = "Italics"; } if (StringUtils.IsBlank(AssetDescriptionLabel.Text)) { AssetDescriptionLabel.Text = "(none)"; AssetDescriptionLabel.Font.Italic = true; } if (StringUtils.IsBlank(UserNotesLabel.Text)) { UserNotesLabel.Text = "(none)"; UserNotesLabel.Font.Italic = true; } NoConversationLabel.Visible = (orderItem.OrderItemCommentList.Count == 0); Repeater ConversationRepeater = (Repeater)e.Item.FindControl("ConversationRepeater"); ConversationRepeater.DataSource = orderItem.OrderItemCommentList; ConversationRepeater.DataBind(); break; } }
protected void OrderItemsRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e) { switch (e.Item.ItemType) { case (ListItemType.Item): case (ListItemType.AlternatingItem): // Get the order item and its corresponding asset OrderItem orderItem = (OrderItem)e.Item.DataItem; Asset asset = orderItem.Asset; // Get all controls we'll be using HiddenField OrderItemIdHiddenField = (HiddenField)e.Item.FindControl("OrderItemIdHiddenField"); HiddenField AssetIdHiddenField = (HiddenField)e.Item.FindControl("AssetIdHiddenField"); AssetThumbnail AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1"); AssetButtons AssetButtons1 = (AssetButtons)e.Item.FindControl("AssetButtons1"); FileSizeMessageLabel FileSizeLabel = (FileSizeMessageLabel)e.Item.FindControl("FileSizeLabel"); EmailHyperLink AssetContactHyperlink = (EmailHyperLink)e.Item.FindControl("AssetContactHyperlink"); HyperLink DownloadHyperlink = (HyperLink)e.Item.FindControl("DownloadHyperlink"); CheckBox SelectAssetCheckBox = (CheckBox)e.Item.FindControl("SelectAssetCheckBox"); DownloadFormatDropDownList DownloadFormatDropDownList1 = (DownloadFormatDropDownList)e.Item.FindControl("DownloadFormatDropDownList1"); AssetImageSizeDropDownList AssetImageSizeDropDownList1 = (AssetImageSizeDropDownList)e.Item.FindControl("AssetImageSizeDropDownList1"); FeedbackLabel OrderItemMessageLabel = (FeedbackLabel)e.Item.FindControl("OrderItemMessageLabel"); PlaceHolder ImageOptionsPlaceHolder = (PlaceHolder)e.Item.FindControl("ImageOptionsPlaceHolder"); HtmlTableRow FileSizeRow = (HtmlTableRow)e.Item.FindControl("FileSizeRow"); HtmlGenericControl SelectorContainer = (HtmlGenericControl)e.Item.FindControl("SelectorContainer"); HtmlGenericControl LinkButtonWrapper = (HtmlGenericControl)e.Item.FindControl("LinkButtonWrapper"); FileSizeMessageLabel ImageFileSizeMessageLabel = (FileSizeMessageLabel)e.Item.FindControl("ImageFileSizeMessageLabel"); // Populate table cells with basic information about the asset SetTableCellText(e.Item, "AssetReferenceCell", asset.AssetId.ToString()); SetTableCellHtml(e.Item, "DescriptionCell", SiteUtils.ConvertTextToHtml(asset.Description)); SetTableCellText(e.Item, "BrandCell", asset.Brand.Name); SetTableCellText(e.Item, "AssetTypeCell", asset.AssetType.Name); SetTableCellHtml(e.Item, "UsageRestrictionsCell", asset.UsageRestrictions); SetTableCellText(e.Item, "DateRequestedByCell", orderItem.RequiredByDate.HasValue ? orderItem.RequiredByDate.Value.ToString(Global.DateFormat) : "None"); SetTableCellText(e.Item, "DateOfDecisionCell", orderItem.OrderItemStatusDate.HasValue ? orderItem.OrderItemStatusDate.Value.ToString(Global.DateFormat) : "None"); SetTableCellText(e.Item, "NotesCell", orderItem.Notes); // Populate hidden fields as we'll need these for other stuff OrderItemIdHiddenField.Value = orderItem.OrderItemId.ToString(); AssetIdHiddenField.Value = asset.AssetId.ToString(); // Get/Initialise other objects we'll need here AssetStatus assetStatus = AssetManager.GetAssetStatusForUser(asset, CurrentUser); SelectedOrderItem soi = SelectedOrderItems.Get(orderItem.OrderItemId.GetValueOrDefault()); // Check if user can download this asset bool canDownload = CanDownload(orderItem); // Initialise the thumbnail and buttons AssetThumbnail1.Initialise(asset); AssetButtons1.Initialise(asset); // Populate other controls which are not dependent on the asset type AssetContactHyperlink.SetNameEmail(asset.UploadedByUser.FullName, asset.UploadedByUser.Email); SelectorContainer.Visible = canDownload; SelectAssetCheckBox.Checked = IsOrderItemSelected(orderItem.OrderItemId.GetValueOrDefault()); DownloadHyperlink.NavigateUrl = string.Format("javascript:downloadAsset('{0}','{1}','{2}', '{3}', '{4}')", orderItem.AssetId, orderItem.OrderId, orderItem.OrderItemId, DownloadFormatDropDownList1.ClientID, AssetImageSizeDropDownList1.ClientID); // Do processing dependent on asset type if (AssetTypeChecker.IsImage(asset.FileExtension)) { // Only show download resolution row if user can download ImageOptionsPlaceHolder.Visible = canDownload; // Only do the image size stuff if the download resolution row is visible if (ImageOptionsPlaceHolder.Visible) { // Populate the download format dropdown with the previously selected value (if any) DownloadFormatDropDownList1.SafeSelectValue(soi.DownloadFormat); // Populate the asset image size dropdown with the previously selected value (if any) AssetImageSizeDropDownList1.SafeSelectValue(soi.AssetImageSizeId); // Get the filename to the image *if it exists already* string filename = AssetImageManager.GetResizedAssetImage(asset, AssetImageSizeDropDownList1.SelectedId, DownloadFormatDropDownList1.SelectedDownloadFormat, false); // Only set the filesize if the scaled image already exists, as it will be too heavy to create a scaled image // of each asset as the page loads. Maybe we should do this when assets are uploaded... if (filename != string.Empty) { ImageFileSizeMessageLabel.SetFileSize(FileUtils.GetFileSize(filename)); } } } // Only show file size row if download resolution row is hidden and user can download this asset // (No point showing them the filesize for an asset they can't download) if (ImageOptionsPlaceHolder.Visible) { FileSizeRow.Visible = false; } else { FileSizeRow.Visible = canDownload; FileSizeLabel.SetFileSize(asset.FileSize); } // Only show the conversation row if we have a conversation HtmlTableRow ConversationRow = (HtmlTableRow)e.Item.FindControl("ConversationRow"); ConversationRow.Visible = (orderItem.OrderItemCommentList.Count > 0); // Bind conversation Repeater ConversationRepeater = (Repeater)e.Item.FindControl("ConversationRepeater"); ConversationRepeater.DataSource = orderItem.OrderItemCommentList; ConversationRepeater.DataBind(); // Hide the row to add notes, as this is only visible whilst an order item is awaiting approval HtmlTableRow AddNotesRow = (HtmlTableRow)e.Item.FindControl("AddNotesRow"); AddNotesRow.Visible = false; if (assetStatus == AssetStatus.Available) { switch (orderItem.OrderItemStatus) { case (OrderItemStatus.Preapproved): OrderItemMessageLabel.SetSuccessMessage("no approval required", "Approval is not required to download and use this asset."); LinkButtonWrapper.Visible = false; break; case (OrderItemStatus.Approved): OrderItemMessageLabel.SetSuccessMessage("approved", "Approval to use this asset has been granted. Refer to the response given in the approval details for any further information."); LinkButtonWrapper.Visible = true; break; case (OrderItemStatus.AwaitingApproval): OrderItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Pending; OrderItemMessageLabel.Header = "approval pending"; OrderItemMessageLabel.Text = "Approval to use this asset is pending a decision. An email will be sent to you when a decision is made."; LinkButtonWrapper.Visible = true; AddNotesRow.Visible = true; break; case (OrderItemStatus.Rejected): OrderItemMessageLabel.SetErrorMessage("approval rejected", "Approval to use this asset has been rejected. Refer to the response given in the approval notes for further information."); LinkButtonWrapper.Visible = true; break; } } else { OrderItemMessageLabel.MessageType = BaseMessageLabel.MessageTypes.Withdrawn; OrderItemMessageLabel.Header = "asset withdrawn"; OrderItemMessageLabel.Text = "This asset has been withdrawn from the system and is no longer available to download."; LinkButtonWrapper.Visible = false; } if (WebUtils.GetIntRequestParam("OrderItemId", 0) == orderItem.OrderItemId) { Panel ApprovalDetailsPanel = (Panel)e.Item.FindControl("ApprovalDetailsPanel"); ApprovalDetailsPanel.Visible = true; LinkButton ToggleApprovalDetailsLinkButton = (LinkButton)e.Item.FindControl("ToggleApprovalDetailsLinkButton"); ToggleApprovalDetailsLinkButton.Text = "hide approval details [-]"; } break; } }
protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { ApproveRadioButton.Attributes.Add("onClick", "checkRadio()"); RejectRadioButton.Attributes.Add("onClick", "checkRadio()"); PendingRadioButton.Attributes.Add("onClick", "checkRadio()"); InviteCommentsRadioButton.Attributes.Add("onClick", "checkRadio()"); if (AssetWorkflowUser.IsNull) { Response.Redirect("~/Admin/Assets/AssetList.aspx"); } if (AssetWorkflow.IsComplete) { MessageLabel.SetErrorMessage("Asset workflow is complete and comments have been disabled"); MessageLabel.Pinned = true; DisableUI(); } else { if (AssetWorkflowUser.AssetWorkflowUserStatus == AssetWorkflowUserStatus.Waiting) { MessageLabel.SetErrorMessage("You do not have permission to action this workflow yet"); MessageLabel.Pinned = true; DisableUI(); } else if (AssetWorkflowUser.AssetWorkflowUserStatus != AssetWorkflowUserStatus.Pending) { MessageLabel.SetErrorMessage("You have already actioned this workflow"); MessageLabel.Pinned = true; DisableUI(); } } AssetWorkflowUserList.Repeater.DataSource = AssetWorkflow.AssetWorkflowUserList; AssetWorkflowUserList.Repeater.DataBind(); Asset asset = AssetWorkflow.Asset; AssetReferenceLiteral.Text = asset.AssetId.ToString(); UploadUserEmailHyperLink.SetNameEmail(asset.UploadedByUser.FullName, asset.UploadedByUser.Email); PublicationDateLiteral.Text = asset.PublishDate.ToString(Global.DateFormat); DownloadAssetHyperLink.NavigateUrl = AssetFileUrlHelper.GetDownloadUrl(asset.AssetId); AssetThumbnail.Initialise(asset); AssetButtons1.Initialise(asset); AssetTypeCell.InnerText = asset.AssetType.Name; BrandCell.InnerText = asset.BrandName; ShortDescriptionCell.InnerHtml = SiteUtils.ConvertTextToHtml(asset.Description); UsageRestrictionsCell.InnerText = asset.UsageRestrictions; ResponseTextArea.Text = AssetWorkflowUser.Comments; SiteUtils.SetHyperLink("Assets.AssetForm", string.Format("?assetId={0}", asset.AssetId), EditAssetHyperLink); switch (AssetWorkflowUser.AssetWorkflowUserStatus) { case (AssetWorkflowUserStatus.Pending): PendingRadioButton.Checked = true; break; case (AssetWorkflowUserStatus.Approved): ApproveRadioButton.Checked = true; break; case (AssetWorkflowUserStatus.Rejected): RejectRadioButton.Checked = true; break; } AssetWorkflowLog.Bind(asset); } }