private object GridVariants_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        if (sourceName.Equals("variantName", StringComparison.OrdinalIgnoreCase))
        {
            var drv   = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell);
            var issue = new IssueInfo(drv.Row);

            string navigateUrl = EmailBuilderHelper.GetNavigationUrl(Issue.IssueNewsletterID, issue.IssueID, 2);

            return(new HyperLink
            {
                NavigateUrl = navigateUrl,
                Text = HTMLHelper.HTMLEncode(issue.GetVariantName())
            });
        }

        if (sourceName.Equals("delete", StringComparison.OrdinalIgnoreCase))
        {
            var dr           = UniGridFunctions.GetDataRowView(parameter);
            int issueId      = Convert.ToInt32(dr["IssueID"]);
            var deleteButton = (CMSGridActionButton)sender;
            deleteButton.Enabled = (OriginalVariant.IssueID != issueId) && Enabled;
        }

        return(parameter);
    }
Ejemplo n.º 2
0
    protected object gridTasks_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        DataRowView drv    = null;
        int         taskId = 0;

        switch (sourceName.ToLower())
        {
        case "taskresult":
            drv = parameter as DataRowView;
            int failedCount = ValidationHelper.GetInteger(drv["FailedCount"], 0);
            taskId = ValidationHelper.GetInteger(drv["TaskID"], 0);
            return(GetResultLink(failedCount, taskId));

        case "view":
            if (sender is ImageButton)
            {
                // Add view JavaScript
                ImageButton btnView = (ImageButton)sender;
                drv    = UniGridFunctions.GetDataRowView((DataControlFieldCell)btnView.Parent);
                taskId = ValidationHelper.GetInteger(drv["TaskID"], 0);
                string url = ResolveUrl(String.Format("~/CMSModules/Staging/Tools/View.aspx?taskid={0}&tasktype=Data&hash={1}", taskId, QueryHelper.GetHash("?taskid=" + taskId + "&tasktype=Data")));
                btnView.OnClientClick = "window.open('" + url + "');return false;";
                return(btnView);
            }
            else
            {
                return(string.Empty);
            }

        case "tasktime":
            return(DateTime.Parse(parameter.ToString()).ToString());
        }
        return(parameter);
    }
Ejemplo n.º 3
0
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower())
        {
        case "status":
            ImageButton img = sender as ImageButton;
            if (img != null)
            {
                DataRowView drv = UniGridFunctions.GetDataRowView(img.Parent as DataControlFieldCell);
                if (drv != null)
                {
                    string connectorName    = ValidationHelper.GetString(drv["ConnectorName"], string.Empty);
                    bool   connectorEnabled = ValidationHelper.GetBoolean(drv["ConnectorEnabled"], false);

                    if (connectorEnabled && (IntegrationHelper.GetConnector(connectorName) == null))
                    {
                        img.ToolTip = GetString("integration.loadconnectorfailed");
                    }
                    else
                    {
                        img.Visible = false;
                    }
                }
                if (img.Visible)
                {
                    img.OnClientClick = "return false;";
                    img.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
            }
            break;
        }
        return(parameter);
    }
Ejemplo n.º 4
0
    protected object gridEvents_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName)
        {
        case "eventtype":
        {
            string evetType = ValidationHelper.GetString(parameter, "");
            return("<div style=\"width:100%;text-align:center;cursor:help;\" title=\"" + HTMLHelper.HTMLEncode(EventLogHelper.GetEventTypeText(evetType)) + "\">" + evetType + " </div>");
        }

        case "formattedusername":
            return(HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(Convert.ToString(parameter))));

        case "view":
        {
            if (sender is CMSGridActionButton)
            {
                CMSGridActionButton img = sender as CMSGridActionButton;
                DataRowView         drv = UniGridFunctions.GetDataRowView(img.Parent as DataControlFieldCell);
                int eventId             = ValidationHelper.GetInteger(drv["EventID"], 0);
                //img.AlternateText = GetString("Unigrid.EventLog.Actions.Display");
                img.ToolTip       = GetString("Unigrid.EventLog.Actions.Display");
                img.OnClientClick = "eventDialogParams_" + ClientID + " = '" + eventId + "';" + Page.ClientScript.GetCallbackEventReference(this, "eventDialogParams_" + ClientID, "OpenEventDetail", null) + ";return false;";
            }
            return(sender);
        }
        }

        return(parameter);
    }
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        case "useexternalservice":
            // Use external service
        {
            CMSGridActionButton imgButton = sender as CMSGridActionButton;
            if (imgButton != null)
            {
                imgButton.Visible = false;
                if (SchedulingHelper.UseExternalService)
                {
                    DataRowView dataRowView = UniGridFunctions.GetDataRowView(imgButton.Parent as DataControlFieldCell);
                    if (dataRowView != null)
                    {
                        var taskInfo = new TaskInfo(dataRowView.Row);

                        imgButton.Visible = SchedulingHelper.IsExternalTaskTooLate(taskInfo, 10);

                        if (imgButton.Visible)
                        {
                            imgButton.ToolTip       = GetString("scheduledtask.useservicewarning");
                            imgButton.OnClientClick = "return false;";
                            imgButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                        }
                    }
                }
            }
        }
        break;

        case "taskexecutions":
            if (string.IsNullOrEmpty(Convert.ToString(parameter)))
            {
                return(0);
            }
            break;

        case "runactions":
        {
            // Image "run" button
            CMSGridActionButton runButton = ((CMSGridActionButton)sender);

            // Data row and task enabled value
            DataRowView dataRowView     = UniGridFunctions.GetDataRowView(runButton.Parent as DataControlFieldCell);
            TaskInfo    partialTaskInfo = new TaskInfo(dataRowView.Row);

            if (!partialTaskInfo.TaskEnabled)
            {
                // If not enabled add confirmation dialog
                runButton.OnClientClick = "if (!confirm(" + ScriptHelper.GetLocalizedString("taskdisabled.sure") + ")) return false;" + runButton.OnClientClick;
            }

            break;
        }
        }
        return(parameter);
    }
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName)
        {
        case "remove":
            if (sender is CMSGridActionButton)
            {
                // Get action button
                CMSGridActionButton deleteBtn = (CMSGridActionButton)sender;
                deleteBtn.Enabled = friendsManagePermission;

                return(deleteBtn);
            }
            else
            {
                return(string.Empty);
            }

        case "approve":
            if (sender is CMSGridActionButton)
            {
                // Get action button
                CMSGridActionButton approveBtn = (CMSGridActionButton)sender;
                // Get full row view
                DataRowView drv = UniGridFunctions.GetDataRowView((DataControlFieldCell)approveBtn.Parent);
                // Add custom reject action
                approveBtn.OnClientClick = "return FM_Approve_" + ClientID + "('" + drv["FriendID"] + "',null,'" + ApproveDialogUrl + "');";
                approveBtn.Enabled       = friendsManagePermission;
                return(approveBtn);
            }
            else
            {
                return(string.Empty);
            }

        case "friendrejectedwhen":
            if (currentUserInfo == null)
            {
                currentUserInfo = MembershipContext.AuthenticatedUser;
            }
            if (currentSiteInfo == null)
            {
                currentSiteInfo = SiteContext.CurrentSite;
            }
            DateTime currentDateTime = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
            if (IsLiveSite)
            {
                return(TimeZoneMethods.ConvertDateTime(currentDateTime, this));
            }
            else
            {
                return(TimeZoneHelper.ConvertToUserTimeZone(currentDateTime, true, currentUserInfo, currentSiteInfo));
            }

        case "formattedusername":
            return(HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(Convert.ToString(parameter), IsLiveSite)));
        }
        return(parameter);
    }
    private void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            var    dataRow     = UniGridFunctions.GetDataRowView(e.Row);
            string messageType = ValidationHelper.GetString(dataRow["type"], String.Empty);

            if (messageType.ToEnum <MessageTypeEnum>() == MessageTypeEnum.Error)
            {
                e.Row.CssClass = "error";
            }
        }
    }
    /// <summary>
    /// On external data-bound event handler.
    /// </summary>
    /// <param name="sender">Sender</param>
    /// <param name="sourceName">Action what is called</param>
    /// <param name="parameter">Parameter</param>
    /// <returns>Result object</returns>
    protected object gridValidationResult_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower(CultureHelper.EnglishCulture))
        {
        case "source":
            if (parameter is DBNull)
            {
                return(parameter);
            }

            const string LINE_BREAK_SIGN     = "\u21A9";
            string       source              = (string)parameter;
            var          drv                 = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell);
            int          highlightStartIndex = Convert.ToInt32(drv["highlightStart"]);
            int          highlightLength     = Convert.ToInt32(drv["highlightLength"]);
            var          messageType         = Convert.ToString(drv["type"]).ToEnum <MessageTypeEnum>();

            // Get parts to be able to highlight code in the code extract
            IEnumerable <string> parts = new List <string>(new[]
            {
                source.Substring(0, highlightStartIndex),
                source.Substring(highlightStartIndex, highlightLength),
                source.Substring(highlightStartIndex + highlightLength)
            });

            // HTML encode each part
            parts = parts.Select(HttpUtility.HtmlEncode).ToList();

            // Update the second (~ highlighted) part
            var partList = parts as List <string>;
            partList[1] = $"<strong class=\"{messageType.ToStringRepresentation()}\">{partList[1]}</strong>";

            source = String.Concat(parts);
            source = source.Replace("\n", LINE_BREAK_SIGN);

            return($@"<div class=""Source"">{source}</div>");

        case "message":
            return(HttpUtility.HtmlEncode(parameter));

        case "type":
            var typeEnum = ((string)parameter).ToEnum <MessageTypeEnum>();
            return(typeEnum.ToLocalizedString("validation.html.messagetype"));
        }

        return(parameter);
    }
Ejemplo n.º 9
0
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName)
        {
        case "reject":
            if (sender is ImageButton)
            {
                // Get action button
                ImageButton rejectBtn = (ImageButton)sender;
                // Get full row view
                DataRowView drv = UniGridFunctions.GetDataRowView((DataControlFieldCell)rejectBtn.Parent);
                // Add custom reject action
                rejectBtn.Attributes["onclick"] = "return FM_Reject_" + ClientID + "('" + drv["FriendID"] + "',null,'" + DialogUrl + "');";
                return(rejectBtn);
            }
            else
            {
                return(string.Empty);
            }

        case "friendapprovedwhen":
            if (currentUserInfo == null)
            {
                currentUserInfo = CMSContext.CurrentUser;
            }
            if (currentSiteInfo == null)
            {
                currentSiteInfo = CMSContext.CurrentSite;
            }
            DateTime currentDateTime = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
            if (IsLiveSite)
            {
                return(CMSContext.ConvertDateTime(currentDateTime, this));
            }
            else
            {
                return(TimeZoneHelper.GetCurrentTimeZoneDateTimeString(currentDateTime, currentUserInfo, currentSiteInfo, out usedTimeZone));
            }

        case "formattedusername":
            return(HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(Convert.ToString(parameter), this.IsLiveSite)));
        }
        return(parameter);
    }
Ejemplo n.º 10
0
    protected object gridSubCategories_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLowerCSafe())
        {
        case "edit":
        case "delete":
            var button = sender as CMSGridActionButton;
            if (button != null)
            {
                DataRowView data = UniGridFunctions.GetDataRowView(button.Parent as DataControlFieldCell);

                int userId = ValidationHelper.GetInteger(data["CategoryUserID"], 0);
                int siteId = ValidationHelper.GetInteger(data["CategorySiteID"], 0);

                // Hide action when can not modify
                button.Visible = CanModifyCategory(userId > 0, siteId == 0);
            }
            break;
        }

        return(parameter);
    }
Ejemplo n.º 11
0
    /// <summary>
    /// External data binding handler.
    /// </summary>
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        // Prepare variables
        int         nodeId  = 0;
        string      culture = string.Empty;
        DataRowView data    = null;

        sourceName = sourceName.ToLowerCSafe();
        SiteInfo site = null;

        switch (sourceName)
        {
        // Edit button
        case EXTERNALSOURCE_EDIT:
            if (sender is ImageButton)
            {
                ImageButton editButton = (ImageButton)sender;
                data    = UniGridFunctions.GetDataRowView(editButton.Parent as DataControlFieldCell);
                site    = GetSiteFromRow(data);
                nodeId  = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0);
                culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
                string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty);

                // Check permissions
                if ((site.Status != SiteStatusEnum.Running) || (!CMSMyDeskPage.IsUserAuthorizedPerContent(site.SiteName) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN))))
                {
                    editButton.ImageUrl      = GetImageUrl("Design/Controls/UniGrid/Actions/Editdisabled.png");
                    editButton.OnClientClick = "return false";
                    editButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
                else
                {
                    editButton.OnClientClick = "return SelectItem(" + nodeId + ", '" + culture + "','" + ResolveSiteUrl(site) + "');";
                }
                return(editButton);
            }
            return(sender);

        // Preview button
        case EXTERNALSOURCE_PREVIEW:
            if (sender is ImageButton)
            {
                ImageButton previewButton = (ImageButton)sender;
                data = UniGridFunctions.GetDataRowView(previewButton.Parent as DataControlFieldCell);
                site = GetSiteFromRow(data);
                string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty);
                if ((site.Status != SiteStatusEnum.Running) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN)))
                {
                    previewButton.ImageUrl      = GetImageUrl("Design/Controls/UniGrid/Actions/Viewdisabled.png");
                    previewButton.OnClientClick = "return false";
                    previewButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
                else
                {
                    nodeId  = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0);
                    culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
                    string nodeAliasPath = ValidationHelper.GetString(data[SOURCE_NODEALIASPATH], string.Empty);
                    // Generate preview URL
                    string url = CMSContext.GetUrl(nodeAliasPath, null, site.SiteName);
                    url = URLHelper.AddParameterToUrl(url, "viewmode", "2");
                    url = URLHelper.AddParameterToUrl(url, URLHelper.LanguageParameterName, culture);
                    previewButton.OnClientClick = "window.open('" + URLHelper.ResolveUrl(url) + "','LiveSite');return false;";
                }
                return(previewButton);
            }
            return(sender);

        // Document name column
        case EXTERNALSOURCE_DOCUMENTNAME:
            data = (DataRowView)parameter;

            string name = ValidationHelper.GetString(data[SOURCE_DOCUMENTNAME], string.Empty);
            nodeId  = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0);
            culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
            string className = ValidationHelper.GetString(data[SOURCE_CLASSNAME], string.Empty);
            site = GetSiteFromRow(data);

            if (name == string.Empty)
            {
                name = GetString("general.notspecified");
            }
            // Add document type icon
            string result = string.Empty;
            switch (ListingType)
            {
            case ListingTypeEnum.DocTypeDocuments:
                break;

            default:
                result = "<img src=\"" + UIHelper.GetDocumentTypeIconUrl(Parent.Page, className, String.Empty, true) + "\" class=\"UnigridActionButton\" />";
                break;
            }

            result += "<span style=\"vertical-align: bottom;\">" + HTMLHelper.HTMLEncode(TextHelper.LimitLength(name, 50)) + "</span>";

            if (ListingType != ListingTypeEnum.All)
            {
                bool isLink = (data.Row.Table.Columns.Contains(SOURCE_NODELINKEDNODEID) && (data[SOURCE_NODELINKEDNODEID] != DBNull.Value));
                if (isLink)
                {
                    // Add link icon
                    result += UIHelper.GetDocumentMarkImage(Parent.Page, DocumentMarkEnum.Link);
                }
            }
            return(result);

        // Class name column
        case EXTERNALSOURCE_CLASSDISPLAYNAME:
            string displayName = ValidationHelper.GetString(parameter, string.Empty);
            if (sourceName.ToLowerCSafe() == EXTERNALSOURCE_CLASSDISPLAYNAMETOOLTIP)
            {
                displayName = TextHelper.LimitLength(displayName, 50);
            }
            if (displayName == string.Empty)
            {
                displayName = "-";
            }
            return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(displayName)));

        case EXTERNALSOURCE_DOCUMENTNAMETOOLTIP:
            data = (DataRowView)parameter;
            return(UniGridFunctions.DocumentNameTooltip(data));

        case EXTERNALSOURCE_STEPDISPLAYNAME:
            // Step display name
            string stepName = ValidationHelper.GetString(parameter, string.Empty);
            if (stepName == string.Empty)
            {
                stepName = "-";
            }
            return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(stepName)));

        case EXTERNALSOURCE_STEPNAME:
            // Step display name from ID
            int stepId = ValidationHelper.GetInteger(parameter, 0);
            if (stepId > 0)
            {
                WorkflowStepInfo wsi = WorkflowStepInfoProvider.GetWorkflowStepInfo(stepId);
                if (wsi != null)
                {
                    return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(wsi.StepDisplayName)));
                }
            }
            return("-");

        case EXTERNALSOURCE_CULTURE:
            data    = (DataRowView)parameter;
            culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
            // Add icon
            if (culture != String.Empty)
            {
                return(UniGridFunctions.DocumentCultureFlag(data, Page));
            }

            return("-");

        // Version column
        case EXTERNALSOURCE_VERSION:
            if (parameter == DBNull.Value)
            {
                parameter = "-";
            }
            parameter = HTMLHelper.HTMLEncode(parameter.ToString());
            return(parameter);

        // Site name column
        case EXTERNALSOURCE_SITENAME:
            string siteName = ValidationHelper.GetString(parameter, string.Empty);
            siteInfo = SiteInfoProvider.GetSiteInfo(siteName);
            return(HTMLHelper.HTMLEncode(siteInfo.DisplayName));

        case EXTERNALSOURCE_SITEID:
            int siteId = ValidationHelper.GetInteger(parameter, 0);
            siteInfo = SiteInfoProvider.GetSiteInfo(siteId);
            return(HTMLHelper.HTMLEncode(siteInfo.DisplayName));

        // Document timestamp column
        case EXTERNALSOURCE_MODIFIEDWHEN:
        case EXTERNALSOURCE_MODIFIEDWHENTOOLTIP:
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return(string.Empty);
            }
            else
            {
                if (currentSiteInfo == null)
                {
                    currentSiteInfo = CMSContext.CurrentSite;
                }
                bool     displayGMT = (sourceName == EXTERNALSOURCE_MODIFIEDWHENTOOLTIP);
                DateTime time       = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                return(TimeZoneHelper.ConvertToUserTimeZone(time, displayGMT, currentUserInfo, currentSiteInfo));
            }
        }

        return(parameter);
    }
Ejemplo n.º 12
0
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        DataRowView drv;

        switch (sourceName.ToLowerInvariant())
        {
        case "result":
        {
            drv = parameter as DataRowView;
            if (drv != null)
            {
                string errorMsg = ValidationHelper.GetString(drv["SynchronizationErrorMessage"], string.Empty);

                if (!string.IsNullOrEmpty(errorMsg))
                {
                    int    synchronizationId = ValidationHelper.GetInteger(drv["SynchronizationID"], 0);
                    string logUrl            = ResolveUrl("~/CMSModules/Integration/Pages/Administration/Log.aspx?synchronizationid=") + synchronizationId;
                    return(String.Format("<a target=\"_blank\" href=\"{0}\" onclick=\"modalDialog('{0}', 'tasklog', 1400, 1200); return false;\">{1}</a>", logUrl, GetString("Tasks.ResultFailed")));
                }
            }
            return(string.Empty);
        }

        case "view":
            if (sender is CMSGridActionButton)
            {
                CMSGridActionButton viewButton = sender as CMSGridActionButton;
                drv = UniGridFunctions.GetDataRowView(viewButton.Parent as DataControlFieldCell);
                int    taskId    = ValidationHelper.GetInteger(drv["TaskID"], 0);
                string detailUrl = ResolveUrl("~/CMSModules/Integration/Pages/Administration/View.aspx?taskid=") + taskId;
                viewButton.OnClientClick = "modalDialog('" + detailUrl + "', 'tasklog', 1400, 1200); return false;";
                return(viewButton);
            }
            return(parameter);

        case "run":
            if (sender is CMSGridActionButton)
            {
                CMSGridActionButton runButton = sender as CMSGridActionButton;
                drv = UniGridFunctions.GetDataRowView(runButton.Parent as DataControlFieldCell);

                int connectorId = ValidationHelper.GetInteger(drv["SynchronizationConnectorID"], 0);
                var connector   = IntegrationConnectorInfoProvider.GetIntegrationConnectorInfo(connectorId);

                bool processingDisabled = TasksAreInbound ? !IntegrationHelper.IntegrationProcessExternal : !IntegrationHelper.IntegrationProcessInternal;
                if (processingDisabled || (connector == null) || !connector.ConnectorEnabled)
                {
                    // Set appropriate tooltip
                    if (processingDisabled)
                    {
                        runButton.ToolTip = GetString("integration.processingdisabled");
                    }
                    else
                    {
                        if ((connector != null) && !connector.ConnectorEnabled)
                        {
                            runButton.ToolTip = String.Format(GetString("integration.connectordisabled"), HTMLHelper.HTMLEncode(connector.ConnectorDisplayName));
                        }
                        else
                        {
                            runButton.ToolTip = GetString("integration.connectorunavailable");
                        }
                    }

                    runButton.Enabled       = false;
                    runButton.OnClientClick = "return false;";
                    runButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                    return(runButton);
                }
            }
            break;
        }
        return(parameter);
    }
    /// <summary>
    /// External data binding handler.
    /// </summary>
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        // Prepare variables
        string      culture;
        DataRowView data;

        sourceName = sourceName.ToLowerCSafe();
        SiteInfo site;

        switch (sourceName)
        {
        // Edit button
        case EXTERNALSOURCE_EDIT:
            if (sender is CMSGridActionButton)
            {
                var editButton = (CMSGridActionButton)sender;
                data = UniGridFunctions.GetDataRowView(editButton.Parent as DataControlFieldCell);
                site = GetSiteFromRow(data);
                int nodeId = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0);
                culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
                string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty);

                // Check permissions
                if ((site.Status != SiteStatusEnum.Running) || (!CMSPage.IsUserAuthorizedPerContent(site.SiteName) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN))))
                {
                    editButton.Enabled = false;
                    editButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
                else
                {
                    editButton.Attributes.Add("data-site-url", ResolveSiteUrl(site));
                    editButton.Attributes.Add("data-node-id", nodeId.ToString());
                    editButton.Attributes.Add("data-document-culture", culture);
                }

                editButton.OnClientClick = "return false";
                return(editButton);
            }
            return(sender);

        // Preview button
        case EXTERNALSOURCE_PREVIEW:
            if (sender is CMSGridActionButton)
            {
                var previewButton = (CMSGridActionButton)sender;
                data = UniGridFunctions.GetDataRowView(previewButton.Parent as DataControlFieldCell);
                site = GetSiteFromRow(data);
                string type = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(data, SOURCE_TYPE), string.Empty);
                if ((site.Status != SiteStatusEnum.Running) || ((ListingType == ListingTypeEnum.All) && (type == LISTINGTYPE_RECYCLEBIN)))
                {
                    previewButton.Enabled = false;
                    previewButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
                else
                {
                    culture = ValidationHelper.GetString(data[SOURCE_DOCUMENTCULTURE], string.Empty);
                    var nodeID = ValidationHelper.GetInteger(data[SOURCE_NODEID], 0);

                    // Generate preview URL
                    var    query = QueryHelper.BuildQuery("viewmode", ((int)ViewModeEnum.Preview).ToString(), URLHelper.LanguageParameterName, culture);
                    string url   = DocumentURLProvider.GetPresentationUrlHandlerPath(culture, nodeID, query);

                    previewButton.Attributes.Add("data-preview-url", URLHelper.GetAbsoluteUrl(url, site.DomainName));
                }

                previewButton.OnClientClick = "return false";
                return(previewButton);
            }
            return(sender);

        // Document name column
        case EXTERNALSOURCE_DOCUMENTNAME:
            data = (DataRowView)parameter;

            string name      = ValidationHelper.GetString(data[SOURCE_DOCUMENTNAME], string.Empty);
            string className = ValidationHelper.GetString(data[SOURCE_CLASSNAME], string.Empty);

            if (name == string.Empty)
            {
                name = GetString("general.root");
            }
            // Add document type icon
            string result = string.Empty;
            switch (ListingType)
            {
            case ListingTypeEnum.DocTypeDocuments:
                break;

            default:
                var dataClass = DataClassInfoProvider.GetDataClassInfo(className);

                if (dataClass != null)
                {
                    var iconClass = (string)dataClass.GetValue(SOURCE_CLASSICONCLASS);
                    result = UIHelper.GetDocumentTypeIcon(Page, className, iconClass);
                }
                break;
            }

            result += "<span>" + HTMLHelper.HTMLEncode(TextHelper.LimitLength(name, 50)) + "</span>";

            // Show document marks only if method is not called from grid export
            if ((sender != null) && (ListingType != ListingTypeEnum.All))
            {
                bool isLink = (data.Row.Table.Columns.Contains(SOURCE_NODELINKEDNODEID) && (data[SOURCE_NODELINKEDNODEID] != DBNull.Value));
                if (isLink)
                {
                    // Add link icon
                    result += DocumentUIHelper.GetDocumentMarkImage(Parent.Page, DocumentMarkEnum.Link);
                }
            }
            return(result);

        // Class name column
        case EXTERNALSOURCE_CLASSDISPLAYNAME:
            string displayName = ValidationHelper.GetString(parameter, string.Empty);
            if (sourceName.ToLowerCSafe() == EXTERNALSOURCE_CLASSDISPLAYNAMETOOLTIP)
            {
                displayName = TextHelper.LimitLength(displayName, 50);
            }
            if (displayName == string.Empty)
            {
                displayName = "-";
            }
            return(HTMLHelper.HTMLEncode(ResHelper.LocalizeString(displayName)));

        case EXTERNALSOURCE_DOCUMENTNAMETOOLTIP:
            data = (DataRowView)parameter;
            return(UniGridFunctions.DocumentNameTooltip(data));

        case EXTERNALSOURCE_STEPDISPLAYNAME:
            // Step display name
            int stepId = ValidationHelper.GetInteger(parameter, 0);
            if (stepId > 0)
            {
                return(new ObjectTransformation(WorkflowStepInfo.OBJECT_TYPE, stepId)
                {
                    Transformation = "{%stepdisplayname|(encode)%}"
                });
            }

            return("-");

        // Version column
        case EXTERNALSOURCE_VERSION:
            if (parameter == DBNull.Value)
            {
                parameter = "-";
            }
            parameter = HTMLHelper.HTMLEncode(parameter.ToString());
            return(parameter);

        // Document timestamp column
        case EXTERNALSOURCE_MODIFIEDWHEN:
        case EXTERNALSOURCE_MODIFIEDWHENTOOLTIP:
            if (String.IsNullOrEmpty(parameter.ToString()))
            {
                return(String.Empty);
            }

            if (currentSiteInfo == null)
            {
                currentSiteInfo = SiteContext.CurrentSite;
            }

            if (sourceName.EqualsCSafe(EXTERNALSOURCE_MODIFIEDWHEN, StringComparison.InvariantCultureIgnoreCase))
            {
                DateTime time = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                return(TimeZoneHelper.ConvertToUserTimeZone(time, true, currentUserInfo, currentSiteInfo));
            }

            return(mGMTTooltip ?? (mGMTTooltip = TimeZoneHelper.GetUTCLongStringOffset(currentUserInfo, currentSiteInfo)));
        }

        return(parameter);
    }
Ejemplo n.º 14
0
    protected object UniGridTasks_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        switch (sourceName.ToLower())
        {
        case "useexternalservice":
            // Use external service
        {
            ImageButton imgButton = sender as ImageButton;
            if (imgButton != null)
            {
                bool visible = false;
                // Only if setting 'Use external service' is allowed
                if (SchedulingHelper.UseExternalService)
                {
                    DataRowView drv = UniGridFunctions.GetDataRowView(imgButton.Parent as DataControlFieldCell);
                    if (drv != null)
                    {
                        // Indicates whether the task is processed by an external service
                        bool taskUseExternalService = ValidationHelper.GetBoolean(drv["TaskUseExternalService"], false);
                        // Indicates whether the task is enabled
                        bool taskEnabled = ValidationHelper.GetBoolean(drv["TaskEnabled"], false);

                        if (taskUseExternalService && taskEnabled)
                        {
                            DateTime taskLastRunTime = ValidationHelper.GetDateTime(drv["TaskLastRunTime"], DateTimeHelper.ZERO_TIME);

                            if (taskLastRunTime != DateTimeHelper.ZERO_TIME)
                            {
                                // Task period
                                string   interval = ValidationHelper.GetString(drv["TaskInterval"], null);
                                DateTime now      = DateTime.Now;
                                TimeSpan period   = SchedulingHelper.GetNextTime(interval, taskLastRunTime, now).Subtract(now);
                                // Actual different time between now date and last run time
                                TimeSpan actualDifferent = now.Subtract(taskLastRunTime);

                                // Show image if actual different time is three times larger than task period
                                if ((period.TotalSeconds > 0) && (actualDifferent.TotalSeconds > (period.TotalSeconds * 3)))
                                {
                                    imgButton.ToolTip = GetString("scheduledtask.useservicewarning");
                                    visible           = true;
                                }
                            }
                        }
                    }
                }

                imgButton.Visible = visible;
                if (imgButton.Visible)
                {
                    imgButton.OnClientClick = "return false;";
                    imgButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                }
            }
        }
        break;

        case "taskexecutions":
            if (string.IsNullOrEmpty(Convert.ToString(parameter)))
            {
                return(0);
            }
            break;
        }
        return(parameter);
    }
Ejemplo n.º 15
0
    protected object gridElem_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        DataRowView drv = null;

        switch (sourceName.ToLowerCSafe())
        {
        case "result":
            drv = parameter as DataRowView;
            string errorMsg = ValidationHelper.GetString(drv["SynchronizationErrorMessage"], string.Empty);

            bool errorOccurred = !string.IsNullOrEmpty(errorMsg);
            if (errorOccurred)
            {
                int    synchronizationId = ValidationHelper.GetInteger(drv["SynchronizationID"], 0);
                string logUrl            = ResolveUrl("~/CMSModules/Integration/Pages/Administration/Log.aspx?synchronizationid=") + synchronizationId;
                return(String.Format("<a target=\"_blank\" href=\"{0}\" onclick=\"modalDialog('{0}', 'tasklog', 700, 500); return false;\">{1}</a>", logUrl, GetString("Tasks.ResultFailed")));
            }
            else
            {
                return(string.Empty);
            }

        case "view":
            if (sender is ImageButton)
            {
                ImageButton viewButton = sender as ImageButton;
                drv = UniGridFunctions.GetDataRowView(viewButton.Parent as DataControlFieldCell);
                int    taskId    = ValidationHelper.GetInteger(drv["TaskID"], 0);
                string detailUrl = ResolveUrl("~/CMSModules/Integration/Pages/Administration/View.aspx?taskid=") + taskId;
                viewButton.OnClientClick = "modalDialog('" + detailUrl + "', 'tasklog', 700, 500); return false;";
                return(viewButton);
            }
            return(parameter);

        case "run":
            if (sender is ImageButton)
            {
                ImageButton runButton = sender as ImageButton;
                drv = UniGridFunctions.GetDataRowView(runButton.Parent as DataControlFieldCell);

                bool   connectorEnabled   = ValidationHelper.GetBoolean(drv["ConnectorEnabled"], false);
                string connectorName      = ValidationHelper.GetString(drv["ConnectorName"], String.Empty);
                bool   processingDisabled = TasksAreInbound ? !IntegrationHelper.IntegrationProcessExternal : !IntegrationHelper.IntegrationProcessInternal;
                if (processingDisabled || (IntegrationHelper.GetConnector(connectorName) == null) || !connectorEnabled)
                {
                    // Set appropriate tooltip
                    if (processingDisabled)
                    {
                        runButton.ToolTip = GetString("integration.processingdisabled");
                    }
                    else
                    {
                        string connectorDisplayName = ValidationHelper.GetString(drv["ConnectorDisplayName"], String.Empty);
                        if (!connectorEnabled)
                        {
                            runButton.ToolTip = String.Format(GetString("integration.connectordisabled"), HTMLHelper.HTMLEncode(connectorDisplayName));
                        }
                        else
                        {
                            runButton.ToolTip = String.Format(GetString("integration.connectorunavailable"), HTMLHelper.HTMLEncode(connectorDisplayName));
                        }
                    }

                    runButton.ImageUrl      = GetImageUrl("/Design/Controls/UniGrid/Actions/SynchronizeDisabled.png");
                    runButton.OnClientClick = "return false;";
                    runButton.Style.Add(HtmlTextWriterStyle.Cursor, "default");
                    return(runButton);
                }
            }
            break;
        }
        return(parameter);
    }
Ejemplo n.º 16
0
    protected object gridLanguages_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        TranslationStatusEnum status = TranslationStatusEnum.NotAvailable;
        DataRowView           drv    = null;

        sourceName = sourceName.ToLower();
        switch (sourceName)
        {
        case "action":
            ImageButton img = new ImageButton();
            if (sender != null)
            {
                // Get datarowview
                drv = UniGridFunctions.GetDataRowView(sender as DataControlFieldCell);

                if ((drv != null) && (drv.Row["TranslationStatus"] != DBNull.Value))
                {
                    // Get translation status
                    status = (TranslationStatusEnum)drv.Row["TranslationStatus"];
                }
                else
                {
                    status = TranslationStatusEnum.NotAvailable;
                }

                // Set appropriate icon
                switch (status)
                {
                case TranslationStatusEnum.NotAvailable:
                    img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/addculture.png");
                    img.ToolTip  = GetString("transman.createnewculture");
                    break;

                default:
                    img.ImageUrl = GetImageUrl("CMSModules/CMS_Content/Properties/editculture.png");
                    img.ToolTip  = GetString("transman.editculture");
                    break;
                }

                string culture = (drv != null) ? ValidationHelper.GetString(drv.Row["DocumentCulture"], string.Empty) : string.Empty;

                // Register redirect script
                img.OnClientClick = "RedirectItem(" + nodeId + ", '" + culture + "');";
                img.ID            = "imgAction";
            }
            return(img);

        case "translationstatus":
            if (parameter == DBNull.Value)
            {
                status = TranslationStatusEnum.NotAvailable;
            }
            else
            {
                status = (TranslationStatusEnum)parameter;
            }
            string statusName = GetString("transman." + status);
            string statusHtml = "<span class=\"" + status + "\">" + statusName + "</span>";
            // .Outdated
            return(statusHtml);

        case "documentculturedisplayname":
            drv = (DataRowView)parameter;
            // Add icon
            return(UniGridFunctions.DocumentCultureFlag(drv, this.Page));

        case "documentmodifiedwhen":
        case "documentmodifiedwhentooltip":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            else
            {
                DateTime modifiedWhen = ValidationHelper.GetDateTime(parameter, DateTimeHelper.ZERO_TIME);
                if (currentUserInfo == null)
                {
                    currentUserInfo = CMSContext.CurrentUser;
                }
                if (currentSiteInfo == null)
                {
                    currentSiteInfo = CMSContext.CurrentSite;
                }

                bool displayGMT = (sourceName == "documentmodifiedwhentooltip");
                return(TimeZoneHelper.ConvertToUserTimeZone(modifiedWhen, displayGMT, currentUserInfo, currentSiteInfo));
            }

        case "versionnumber":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                return("-");
            }
            break;

        case "documentname":
            if (string.IsNullOrEmpty(parameter.ToString()))
            {
                parameter = "-";
            }
            return(HTMLHelper.HTMLEncode(parameter.ToString()));

        case "published":
            bool published = ValidationHelper.GetBoolean(parameter, false);
            if (published)
            {
                return("<span class=\"DocumentPublishedYes\">" + GetString("General.Yes") + "</span>");
            }
            else
            {
                return("<span class=\"DocumentPublishedNo\">" + GetString("General.No") + "</span>");
            }
        }
        return(parameter);
    }