protected void SelectAssetCheckBox_CheckChanged(object sender, EventArgs e) { AllAssetsSelected = false; CheckBox cb = (CheckBox)sender; foreach (RepeaterItem ri in OrderItemsRepeater.Items) { switch (ri.ItemType) { case (ListItemType.Item): case (ListItemType.AlternatingItem): Control control = ri.FindControl(cb.ID); if (control != null && control.UniqueID == cb.UniqueID) { HiddenField OrderItemIdHiddenField = (HiddenField)ri.FindControl("OrderItemIdHiddenField"); DownloadFormatDropDownList DownloadFormatDropDownList1 = (DownloadFormatDropDownList)ri.FindControl("DownloadFormatDropDownList1"); AssetImageSizeDropDownList AssetImageSizeDropDownList1 = (AssetImageSizeDropDownList)ri.FindControl("AssetImageSizeDropDownList1"); int orderItemId = Convert.ToInt32(OrderItemIdHiddenField.Value); int assetImageSizeId = AssetImageSizeDropDownList1.SelectedId; DownloadFormat downloadFormat = DownloadFormatDropDownList1.SelectedDownloadFormat; if (cb.Checked) { SelectedOrderItems.AddUpdate(orderItemId, downloadFormat, assetImageSizeId); } else { SelectedOrderItems.Remove(orderItemId); } } break; } } }
protected void AssetImageSizeDropDownList1_SelectedIndexChanged(object sender, EventArgs e) { AssetImageSizeDropDownList dropdown = (AssetImageSizeDropDownList)sender; foreach (RepeaterItem ri in OrderItemsRepeater.Items) { switch (ri.ItemType) { case (ListItemType.Item): case (ListItemType.AlternatingItem): AssetImageSizeDropDownList AssetImageSizeDropDownList1 = (AssetImageSizeDropDownList)ri.FindControl("AssetImageSizeDropDownList1"); if (AssetImageSizeDropDownList1.UniqueID == dropdown.UniqueID) { DownloadFormatDropDownList DownloadFormatDropDownList1 = (DownloadFormatDropDownList)ri.FindControl("DownloadFormatDropDownList1"); PlaceHolder ImageOptionsPlaceHolder = (PlaceHolder)ri.FindControl("ImageOptionsPlaceHolder"); HiddenField OrderItemIdHiddenField = (HiddenField)ri.FindControl("OrderItemIdHiddenField"); HiddenField AssetIdHiddenField = (HiddenField)ri.FindControl("AssetIdHiddenField"); FileSizeMessageLabel ImageFileSizeMessageLabel = (FileSizeMessageLabel)ri.FindControl("ImageFileSizeMessageLabel"); int orderItemId = Convert.ToInt32(OrderItemIdHiddenField.Value); int assetImageSizeId = (ImageOptionsPlaceHolder.Visible) ? AssetImageSizeDropDownList1.SelectedId : 0; int assetId = Convert.ToInt32(AssetIdHiddenField.Value); DownloadFormat downloadFormat = DownloadFormatDropDownList1.SelectedDownloadFormat; SelectedOrderItems.AddUpdate(orderItemId, downloadFormat, assetImageSizeId); Asset asset = Asset.Get(assetId); string filename = AssetImageManager.GetResizedAssetImage(asset, assetImageSizeId, downloadFormat, true); long filesize = FileUtils.GetFileSize(filename); ImageFileSizeMessageLabel.SetFileSize(filesize); } 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 CopyDownloadSettingsToAllButton_Click(object sender, EventArgs e) { bool found = false; Button btn = (Button)sender; int sourceAssetId = 0; DownloadFormat downloadFormat = DownloadFormat.Original; int assetImageSizeId = 0; foreach (RepeaterItem ri in OrderItemsRepeater.Items) { if (!GeneralUtils.ValueIsInList(ri.ItemType, ListItemType.Item, ListItemType.AlternatingItem)) { continue; } Button CopyDownloadSettingsToAllButton = (Button)ri.FindControl("CopyDownloadSettingsToAllButton"); if (CopyDownloadSettingsToAllButton.UniqueID != btn.UniqueID) { continue; } HiddenField AssetIdHiddenField = (HiddenField)ri.FindControl("AssetIdHiddenField"); DownloadFormatDropDownList DownloadFormatDropDownList1 = (DownloadFormatDropDownList)ri.FindControl("DownloadFormatDropDownList1"); AssetImageSizeDropDownList AssetImageSizeDropDownList1 = (AssetImageSizeDropDownList)ri.FindControl("AssetImageSizeDropDownList1"); sourceAssetId = Convert.ToInt32(AssetIdHiddenField.Value); downloadFormat = DownloadFormatDropDownList1.SelectedDownloadFormat; assetImageSizeId = AssetImageSizeDropDownList1.SelectedId; found = true; break; } if (!found) { return; } AssetFinder finder = new AssetFinder(); finder.AssetIdList.Add(0); finder.AssetIdList.AddRange(CurrentOrder.OrderItemList.Select(o => o.AssetId)); List <Asset> assetList = Asset.FindMany(finder); Asset sourceAsset = assetList.Where(a => a.AssetId == sourceAssetId).FirstOrDefault() ?? Asset.Empty; Debug.Assert(!sourceAsset.IsNull); foreach (OrderItem oi in CurrentOrder.OrderItemList) { // Get the asset for the order item Asset asset = assetList.Where(a => a.AssetId == oi.AssetId).FirstOrDefault() ?? Asset.Empty; // Non-images do not have download options so ignore them if (!AssetTypeChecker.IsImage(asset.FileExtension)) { continue; } // Update the selection SelectedOrderItems.AddUpdate(oi.OrderItemId.GetValueOrDefault(), downloadFormat, assetImageSizeId); } // Rebind the list Bind(CurrentPage); FeedbackLabel1.SetSuccessMessage("Download options updated successfully"); }