/// <summary>
    /// Handles action performed event for right HeaderActions.
    /// </summary>
    protected void RightHeaderActions_ActionPerformed(object sender, CommandEventArgs args)
    {
        switch (args.CommandName)
        {
        case TASKS_RESTART_TIMER:

            // Check "modify" permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RestartTimer(SiteInfo.SiteName);
            break;

        case TASKS_RUN:

            // Check "modify" permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RunSchedulerASAP(SiteInfo.SiteName);
            SchedulingTimer.SchedulerRunImmediatelySiteName = SiteInfo.SiteName;
            break;
        }
        pnlUpdate.Update();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        rightHeaderActions.ActionPerformed += rightHeaderActions_ActionPerformed;

        // Show info that scheduler is disabled
        if (!SchedulingHelper.EnableScheduler)
        {
            ShowWarning(GetString("scheduledtask.disabled"), null, null);
        }

        // When no site is selected, load for Current site
        if ((SiteID == 0) && (SelectedSiteID == 0))
        {
            SelectedSiteID = CMSContext.CurrentSiteID;
        }

        int siteId = (SiteID > 0) ? SiteID : SelectedSiteID;

        si = SiteInfoProvider.GetSiteInfo(siteId);

        listElem.SiteID  = siteId;
        listElem.EditURL = "Task_Edit.aspx?taskname={0}&" + GetSiteOrSelectedSiteQuery();

        // Refresh action
        HeaderActions.AddAction(new HeaderAction()
        {
            Text        = GetString("General.Refresh"),
            ImageUrl    = GetImageUrl("Objects/CMS_ScheduledTask/refresh.png"),
            RedirectUrl = "Tab_SystemTasks.aspx?" + GetSiteOrSelectedSiteQuery()
        });

        if (si != null)
        {
            bool usesTimer = SchedulingHelper.UseAutomaticScheduler || !SchedulingHelper.RunSchedulerWithinRequest;
            if (usesTimer)
            {
                // Restart timer action
                rightHeaderActions.AddAction(new HeaderAction()
                {
                    Text      = GetString("Task_List.Restart"),
                    ImageUrl  = GetImageUrl("Objects/CMS_ScheduledTask/timer_restart.png"),
                    EventName = TASKS_RESTART_TIMER
                });
            }

            // Run execution ASAP action
            rightHeaderActions.AddAction(new HeaderAction()
            {
                Text      = GetString("Task_List.RunNow"),
                ImageUrl  = GetImageUrl("Objects/CMS_ScheduledTask/timer_run.png"),
                EventName = TASKS_RUN,
                Enabled   = SchedulingHelper.EnableScheduler && (!usesTimer || SchedulingTimer.TimerExists(si.SiteName))
            });
        }

        // Force action buttons to cause full postback so that tasks can be properly executed in global.asax
        ControlsHelper.RegisterPostbackControl(listElem);
        ControlsHelper.RegisterPostbackControl(rightHeaderActions);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        rightHeaderActions.ActionPerformed += RightHeaderActions_ActionPerformed;

        // Show info that scheduler is disabled
        if (!SchedulingHelper.EnableScheduler)
        {
            ShowWarning(GetString("scheduledtask.disabled"));
        }

        listElem.SiteID = SiteID;
        string editUrl = UIContextHelper.GetElementUrl("CMS.ScheduledTasks", GetElementName("EditSystemTask"), true);

        editUrl          = URLHelper.AddParameterToUrl(editUrl, "siteid", SiteID.ToString());
        listElem.EditURL = editUrl;

        // Refresh action
        HeaderActions.AddAction(new HeaderAction
        {
            Text          = GetString("General.Refresh"),
            OnClientClick = "RefreshGrid();"
        });

        if (SiteInfo != null)
        {
            bool usesTimer = SchedulingHelper.UseAutomaticScheduler;
            if (usesTimer)
            {
                // Restart timer action
                rightHeaderActions.AddAction(new HeaderAction
                {
                    Text        = GetString("Task_List.Restart"),
                    EventName   = TASKS_RESTART_TIMER,
                    ButtonStyle = ButtonStyle.Default
                });
            }

            // Run execution ASAP action
            rightHeaderActions.AddAction(new HeaderAction
            {
                Text        = GetString("Task_List.RunNow"),
                EventName   = TASKS_RUN,
                Enabled     = SchedulingHelper.EnableScheduler && (!usesTimer || SchedulingTimer.TimerExists(SiteInfo.SiteName)),
                ButtonStyle = ButtonStyle.Default
            });
        }

        // Force action buttons to cause full postback so that tasks can be properly executed in global.asax
        ControlsHelper.RegisterPostbackControl(listElem);
        ControlsHelper.RegisterPostbackControl(rightHeaderActions);

        if (ControlsHelper.CausedPostBack(btnRefresh))
        {
            // Update content after refresh
            pnlUpdate.Update();
        }
    }
Beispiel #4
0
    protected void btnRestart_Click(object sender, EventArgs e)
    {
        // Check "modify" permission
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
        {
            RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
        }

        SchedulingTimer.RestartTimer(si.SiteName);
    }
Beispiel #5
0
    protected override void OnPreRender(EventArgs e)
    {
        if (si != null)
        {
            pnlLastRun.Visible = true;

            if (SchedulingHelper.UseAutomaticScheduler || !SchedulingHelper.RunSchedulerWithinRequest)
            {
                lblLastRun.Visible = true;
                btnRestart.Visible = true;

                string siteName = si.SiteName.ToLower();

                if (SchedulingTimer.TimerExists(siteName))
                {
                    btnRun.Enabled = true;
                    DateTime lastRun = ValidationHelper.GetDateTime(SchedulingTimer.LastRuns[siteName], DateTimeHelper.ZERO_TIME);

                    if (lastRun != DateTimeHelper.ZERO_TIME)
                    {
                        this.lblLastRun.Text = GetString("Task_List.LastRun") + " " + lastRun.ToString();
                    }
                    else
                    {
                        this.lblLastRun.Text = GetString("Task_List.Running");
                    }
                }
                else
                {
                    btnRun.Enabled       = false;
                    this.lblLastRun.Text = GetString("Task_List.NoRun");
                }
            }
            else
            {
                lblLastRun.Visible = false;
                btnRestart.Visible = false;
            }
        }
        else
        {
            // Hide panel in sitemanager for global scheduled tasks
            pnlLastRun.Visible = false;
        }

        this.pnlUpdateTimer.Update();

        base.OnPreRender(e);
    }
    /// <summary>
    /// Handles action performed event for right HeaderActions.
    /// </summary>
    protected void RightHeaderActions_ActionPerformed(object sender, CommandEventArgs args)
    {
        switch (args.CommandName)
        {
        case TASKS_RESET:

            // Pass 0 for global tasks
            TaskInfoProvider.ResetAllTasks((SiteID > 0) ? SiteID : 0);
            string url = UIContextHelper.GetElementUrl("CMS.ScheduledTasks", GetElementName("Tasks"), true);
            url = URLHelper.AddParameterToUrl(url, "siteid", SiteID.ToString());
            url = URLHelper.AddParameterToUrl(url, "reseted", "1");
            URLHelper.Redirect(url);
            break;

        case TASKS_RESTART_TIMER:

            // Check "modify" permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RestartTimer(SiteInfo.SiteName);
            break;

        case TASKS_RUN:

            // Check "modify" permission
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RunSchedulerASAP(SiteInfo.SiteName);
            SchedulingTimer.SchedulerRunImmediatelySiteName = SiteInfo.SiteName;
            break;
        }
        pnlUpdate.Update();
    }
    protected override void OnPreRender(EventArgs e)
    {
        if (SiteInfo != null)
        {
            if (SchedulingHelper.UseAutomaticScheduler || !SchedulingHelper.RunSchedulerWithinRequest)
            {
                lblLastRun.Visible = true;

                string siteName = SiteInfo.SiteName.ToLowerCSafe();
                if (SchedulingTimer.TimerExists(siteName))
                {
                    DateTime lastRun = ValidationHelper.GetDateTime(SchedulingTimer.LastRuns[siteName], DateTimeHelper.ZERO_TIME);
                    if (lastRun != DateTimeHelper.ZERO_TIME)
                    {
                        lblLastRun.Text = GetString("Task_List.LastRun") + " " + lastRun;
                    }
                    else
                    {
                        lblLastRun.Text = GetString("Task_List.Running");
                    }
                }
                else
                {
                    lblLastRun.Text = GetString("Task_List.NoRun");
                }
            }
            else
            {
                lblLastRun.Visible = false;
            }
        }

        ScriptHelper.RegisterStartupScript(Page, typeof(string), "SchedulerRefreshScript", "function RefreshGrid() { " + ControlsHelper.GetPostBackEventReference(btnRefresh) + "; }", true);

        base.OnPreRender(e);
    }
Beispiel #8
0
    /// <summary>
    /// Handles action performed event for right HeaderActions.
    /// </summary>
    protected void rightHeaderActions_ActionPerformed(object sender, CommandEventArgs args)
    {
        switch (args.CommandName)
        {
        case TASKS_RESET:
            int resetSiteId = (SiteID > 0) ? SiteID : SelectedSiteID;

            // Pass 0 for global tasks
            TaskInfoProvider.ResetAllTasks((resetSiteId > 0) ? resetSiteId : 0);
            URLHelper.Redirect("Tab_Tasks.aspx?" + GetSiteOrSelectedSiteQuery() + "&reseted=1");
            break;

        case TASKS_RESTART_TIMER:

            // Check "modify" permission
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RestartTimer(si.SiteName);
            break;

        case TASKS_RUN:

            // Check "modify" permission
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.ScheduledTasks", "Modify"))
            {
                RedirectToAccessDenied("CMS.ScheduledTasks", "Modify");
            }

            SchedulingTimer.RunSchedulerASAP(si.SiteName);
            SchedulingTimer.SchedulerRunImmediatelySiteName = si.SiteName;
            break;
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        rightHeaderActions.ActionPerformed += RightHeaderActions_ActionPerformed;

        // Show info that scheduler is disabled
        if (!SchedulingHelper.EnableScheduler)
        {
            ShowWarning(GetString("scheduledtask.disabled"));
        }

        listElem.SiteID = SiteID;
        string editUrl = UIContextHelper.GetElementUrl("CMS.ScheduledTasks", GetElementName("EditTask"), true);

        editUrl          = URLHelper.AddParameterToUrl(editUrl, "siteid", SiteID.ToString());
        listElem.EditURL = editUrl;

        // New task action
        HeaderActions.AddAction(new HeaderAction
        {
            Text        = GetString("Task_List.NewItemCaption"),
            RedirectUrl = String.Format(listElem.EditURL, 0)
        });

        // Refresh action
        HeaderActions.AddAction(new HeaderAction
        {
            Text          = GetString("General.Refresh"),
            OnClientClick = "RefreshGrid();"
        });

        if (SiteInfo != null)
        {
            bool usesTimer = SchedulingHelper.UseAutomaticScheduler || !SchedulingHelper.RunSchedulerWithinRequest;
            if (usesTimer)
            {
                // Restart timer action
                rightHeaderActions.AddAction(new HeaderAction
                {
                    Text      = GetString("Task_List.Restart"),
                    EventName = TASKS_RESTART_TIMER
                });
            }

            // Run execution ASAP action
            rightHeaderActions.AddAction(new HeaderAction
            {
                Text      = GetString("Task_List.RunNow"),
                EventName = TASKS_RUN,
                Enabled   = SchedulingHelper.EnableScheduler && (!usesTimer || SchedulingTimer.TimerExists(SiteInfo.SiteName))
            });
        }

        // Reset action to the right
        rightHeaderActions.AddAction(new HeaderAction
        {
            Text          = GetString("tasks.resetexecutions"),
            OnClientClick = "if (!confirm(" + ScriptHelper.GetLocalizedString("tasks.resetall") + ")) return false;",
            EventName     = TASKS_RESET
        });

        // Force action buttons to cause full postback so that tasks can be properly executed in global.asax
        ControlsHelper.RegisterPostbackControl(listElem);
        ControlsHelper.RegisterPostbackControl(rightHeaderActions);

        if (ControlsHelper.CausedPostBack(btnRefresh))
        {
            // Update content after refresh
            pnlUpdate.Update();
        }
        else if (QueryHelper.GetBoolean("reseted", false))
        {
            // Show reset confirmation after reset button action
            ShowConfirmation(GetString("task.executions.reseted"));
        }
    }