protected void LightboxDataList_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                Panel         LightboxAssetInfoPanel = (Panel)e.Item.FindControl("LightboxAssetInfoPanel");
                LightboxAsset lightboxAsset          = (LightboxAsset)e.Item.DataItem;

                if (lightboxAsset.IsNull)
                {
                    LightboxAssetInfoPanel.Visible = false;

                    // Clear the CSS class so the background doesnt show
                    WebControl wc = (WebControl)LightboxAssetInfoPanel.Parent;
                    wc.CssClass = string.Empty;
                }
                else
                {
                    Asset asset = lightboxAsset.Asset;

                    AssetThumbnail     AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1");
                    HtmlGenericControl AssetIdLabel    = (HtmlGenericControl)e.Item.FindControl("AssetIdLabel");
                    HtmlGenericControl AssetTypeLabel  = (HtmlGenericControl)e.Item.FindControl("AssetTypeLabel");
                    Image     NotesImage        = (Image)e.Item.FindControl("NotesImage");
                    HyperLink DownloadHyperLink = (HyperLink)e.Item.FindControl("DownloadHyperLink");

                    AssetThumbnail1.HoverCaption = asset.Title;
                    AssetThumbnail1.HoverText    = GeneralUtils.GetNonEmptyString(lightboxAsset.Notes, "[Sender has not entered any notes]");
                    AssetThumbnail1.Initialise(asset);

                    AssetIdLabel.InnerText   = asset.AssetId.ToString();
                    AssetTypeLabel.InnerText = "(" + asset.AssetType.Name + ")";

                    NotesImage.AlternateText = Server.HtmlEncode(AssetThumbnail1.HoverText);
                    NotesImage.ToolTip       = Server.HtmlEncode(AssetThumbnail1.HoverText);

                    //check if light box was sent with download links enabled
                    //and double check that the sender was super admin
                    if (m_lightboxSent.DownloadLinks.GetValueOrDefault(false) &&
                        m_lightboxSent.Sender.UserRole == UserRole.SuperAdministrator)
                    {
                        DownloadHyperLink.Visible     = true;
                        DownloadHyperLink.NavigateUrl = AssetFileUrlHelper.GetExternalDownloadUrl(asset.AssetId, m_lightboxSent.LightboxSentId, m_lightboxSent.SenderId, m_lightboxSent.DateSent.Ticks);
                        DownloadHyperLink.ImageUrl    = SiteUtils.GetIconPath("download0.gif");
                    }
                    else
                    {
                        DownloadHyperLink.Visible = false;
                    }
                }

                break;
            }
        }
        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);
            }
        }
Beispiel #3
0
        protected void SearchResultThumbnailsDataList_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                Asset asset = (Asset)e.Item.DataItem;

                Panel AssetInfoPanel = (Panel)e.Item.FindControl("AssetInfoPanel");

                if (asset.IsNull)
                {
                    AssetInfoPanel.Visible = false;

                    // Clear the CSS class so the background doesn't show
                    WebControl wc = (WebControl)AssetInfoPanel.Parent;
                    wc.CssClass = string.Empty;
                }
                else
                {
                    AssetThumbnail AssetThumbnail1 = (AssetThumbnail)e.Item.FindControl("AssetThumbnail1");
                    AssetThumbnail1.Initialise(asset);

                    AssetButtons AssetButtons1 = (AssetButtons)e.Item.FindControl("AssetButtons1");
                    AssetButtons1.LightboxId = PersistentCartLightbox.SelectedLightboxId;
                    AssetButtons1.Initialise(asset);

                    Label AssetTypeLabel = (Label)e.Item.FindControl("AssetTypeLabel");
                    AssetTypeLabel.Text = asset.AssetType.Name;

                    HyperLink ReferenceHyperLink = (HyperLink)e.Item.FindControl("ReferenceHyperLink");
                    ReferenceHyperLink.Text        = asset.AssetId.ToString();
                    ReferenceHyperLink.NavigateUrl = SiteUtils.GetShowAssetInfoUrl(asset.AssetId.GetValueOrDefault());
                }

                break;
            }
        }
        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;
            }
        }
Beispiel #5
0
        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;
            }
        }
Beispiel #7
0
        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);
            }
        }
Beispiel #8
0
        protected void AssetsRepeater_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            switch (e.Item.ItemType)
            {
            case ListItemType.Header:

                HtmlTableCell CheckBoxHeaderCell = (HtmlTableCell)e.Item.FindControl("CheckBoxHeaderCell");
                CheckBoxHeaderCell.Visible = ShowCheckBoxes;

                HtmlTableCell ThumbnailHeaderCell = (HtmlTableCell)e.Item.FindControl("ThumbnailHeaderCell");
                ThumbnailHeaderCell.Visible = ShowThumbnails;

                break;

            case (ListItemType.Item):
            case (ListItemType.AlternatingItem):

                Asset asset = (Asset)e.Item.DataItem;

                HtmlTableCell CheckBoxCell = (HtmlTableCell)e.Item.FindControl("CheckBoxCell");
                CheckBoxCell.Visible = ShowCheckBoxes;

                HtmlTableCell ThumbnailCell = (HtmlTableCell)e.Item.FindControl("ThumbnailCell");
                ThumbnailCell.Visible = ShowThumbnails;

                if (ThumbnailCell.Visible)
                {
                    AssetThumbnail assetThumbnail = (AssetThumbnail)e.Item.FindControl("AssetThumbnail");
                    assetThumbnail.Initialise(asset);
                }

                HiddenField AssetIdHiddenField = (HiddenField)e.Item.FindControl("AssetIdHiddenField");
                AssetIdHiddenField.Value = asset.AssetId.ToString();

                HyperLink AssetIdHyperLink = (HyperLink)e.Item.FindControl("AssetIdHyperLink");
                AssetIdHyperLink.Text        = asset.AssetId.ToString();
                AssetIdHyperLink.NavigateUrl = string.Format("~/Admin/Assets/AssetForm.aspx?assetId={0}&source=assetlist", asset.AssetId);

                Label AssetTypeLabel = (Label)e.Item.FindControl("AssetTypeLabel");
                AssetTypeLabel.Text = asset.AssetType.Name;

                Label UploadedByUserNameLabel = (Label)e.Item.FindControl("UploadedByUserNameLabel");
                UploadedByUserNameLabel.Text = asset.UploadedByUser.FullName;

                Label TitleLabel = (Label)e.Item.FindControl("TitleLabel");
                TitleLabel.Text = asset.Title;
                SiteUtils.PopulateBlankControl(TitleLabel);

                Label FileSizeLabel = (Label)e.Item.FindControl("FileSizeLabel");
                FileSizeLabel.Text = FileUtils.FriendlyFileSize(asset.FileSize);

                Label ProductionDateLabel = (Label)e.Item.FindControl("ProductionDateLabel");
                ProductionDateLabel.Text = asset.GetProductionDate();
                SiteUtils.PopulateBlankControl(ProductionDateLabel);

                Label IsExpiredLabel = (Label)e.Item.FindControl("IsExpiredLabel");
                IsExpiredLabel.Text = (asset.ExpiryDate < DateTime.Now) ? "Y" : "N";

                if (IsExpiredLabel.Text == "Y")
                {
                    IsExpiredLabel.CssClass = "bold";
                }

                Label ExpiryDateLabel = (Label)e.Item.FindControl("ExpiryDateLabel");
                ExpiryDateLabel.Text = asset.ExpiryDate.ToString(Global.DateFormat);

                HyperLink IsPublishedHyperLink = (HyperLink)e.Item.FindControl("IsPublishedHyperLink");
                IsPublishedHyperLink.Text = asset.AssetPublishStatusName;

                PromptLinkButton DeleteLinkButton = (PromptLinkButton)e.Item.FindControl("DeleteLinkButton");
                DeleteLinkButton.CommandArgument = asset.AssetId.ToString();

                EnhancedHyperLink AuditLogHyperLink = (EnhancedHyperLink)e.Item.FindControl("AuditLogHyperLink");
                SiteUtils.SetHyperLink("Reports.AssetAuditTrail", string.Format("?AssetId={0}&Source=AssetList", asset.AssetId), AuditLogHyperLink);

                switch (asset.AssetPublishStatus)
                {
                case (AssetPublishStatus.Published):

                    IsPublishedHyperLink.CssClass += " Bold";
                    break;

                case (AssetPublishStatus.PendingApproval):

                    IsPublishedHyperLink.CssClass += " Bold";

                    if (asset.AssetWorkflowList.Count > 0)
                    {
                        AssetWorkflow aw = asset.AssetWorkflowList[0];

                        // Only link the pending text to the approval screen if the current user is in the workflow

                        AssetWorkflowUser cawfu = aw.AssetWorkflowUserList.Find(awfu => awfu.UserId == CurrentUser.UserId.GetValueOrDefault());

                        if (cawfu != null)
                        {
                            SiteUtils.SetHyperLink("Workflow.Approve", string.Format("?AssetWorkflowId={0}", aw.AssetWorkflowId), IsPublishedHyperLink);
                        }
                        else
                        {
                            AssetWorkflowCommenter awc = aw.AssetWorkflowCommenterList.Find(awfc => awfc.UserId == CurrentUser.UserId.GetValueOrDefault());

                            if (awc != null)
                            {
                                SiteUtils.SetHyperLink("Workflow.Comment", string.Format("?AssetWorkflowId={0}", aw.AssetWorkflowId), IsPublishedHyperLink);
                            }
                        }
                    }

                    break;
                }

                break;
            }
        }