public void InitPage(ProjectFat projectFat)
        {
            if (RequestContext.GetCurrentProject(false) != null)
            {
                Master.BreadCrumbs.Add(new BreadCrumb(ProjectResource.Projects, "projects.aspx"));
                if (projectFat != null)
                {
                    Master.BreadCrumbs.Add(new BreadCrumb(projectFat.Project.HtmlTitle,
                                                          "projects.aspx?prjID=" + projectFat.Project.ID));
                }
            }
            if (TaskID > 0)
            {
                Master.BreadCrumbs.Add(new BreadCrumb(ProjectsCommonResource.TimeTracking,
                                                      "timetracking.aspx?prjID=" + projectFat.Project.ID));
                Master.BreadCrumbs.Add(new BreadCrumb(Global.EngineFactory.GetTaskEngine().GetByID(TaskID).Title));
            }
            else
            {
                Master.BreadCrumbs.Add(new BreadCrumb(ProjectsCommonResource.TimeTracking));
            }


            Title = HeaderStringHelper.GetPageTitle(ProjectsCommonResource.TimeTracking, Master.BreadCrumbs);
        }
        protected string GetGrammaticalHelperParticipantCount()
        {
            var count = ProjectFat.GetActiveTeam().Count;

            return(count == 0 ? string.Empty : count + " " + GrammaticalHelper.ChooseNumeralCase(count, GrammaticalResource.ParticipantNominative,
                                                                                                 GrammaticalResource.ParticipantGenitiveSingular, GrammaticalResource.ParticipantGenitivePlural));
        }
Example #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.Participant.IsVisitor)
            {
                Response.Redirect(PathProvider.BaseVirtualPath, true);
            }

            IsProjectCreatedFromCrm = (Request.Params["opportunityID"] != null || Request.Params["contactID"] != null);

            Bootstrap();

            LoadProjectManagerSelector();

            Page.RegisterBodyScripts(PathProvider.GetFileStaticRelativePath("projectaction.js"));

            if (Project != null)
            {
                RenderScript();
                ProjectFat = new ProjectFat(Project);
                return;
            }

            Page.Master.RegisterCRMResources();


            LoadProjectTeamSelector();
        }
Example #4
0
        protected override void PageLoad()
        {
            Bootstrap();

            LoadProjectManagerSelector();

            SetSecurityEnable();

            if (Project != null)
            {
                ProjectFat = new ProjectFat(Project);
                return;
            }

            LoadProjectTeamSelector();
        }
        protected override void PageLoad()
        {
            RequestContext.EnsureCurrentProduct();

            ((IStudioMaster)Master).DisabledSidePanel = true;

            _hintPopup.Options.IsPopup = true;

            ProjectFat = RequestContext.GetCurrentProjectFat();

            Title = string.Format("{0} - {1}", ProjectFat.Project.Title, ProjectResource.Projects);

            if (string.Compare(UrlParameters.ActionType, "edit", StringComparison.OrdinalIgnoreCase) == 0)
            {
                Server.Transfer("projectAction.aspx", true);
            }

            var projectManager = new EmployeeUserCard
            {
                EmployeeInfo          = ProjectFat.Responsible,
                EmployeeUrl           = ProjectFat.Responsible.GetUserProfilePageURL(),
                EmployeeDepartmentUrl = CommonLinkUtility.GetUserDepartment(ProjectFat.Responsible.ID)
            };

            projectManagerPlaceHolder.Controls.Add(projectManager);

            var teamManagenent = (Studio.UserControls.Users.UserSelector)LoadControl(Studio.UserControls.Users.UserSelector.Location);

            teamManagenent.BehaviorID = "UserSelector";
            teamManagenent.DisabledUsers.Add(new Guid());
            teamManagenent.Title = ProjectResource.ManagmentTeam;
            teamManagenent.SelectedUserListTitle = ProjectResource.Team;
            teamManagenent.SelectedUsers         = ProjectEngine.GetTeam(ProjectId).Select(participant => participant.ID).ToList();

            teamManagementPlaceHolder.Controls.Add(teamManagenent);

            milestones = ProjectFat.GetMilestones();
            tasks      = ProjectFat.GetTasks();
        }
        protected override void PageLoad()
        {
            ((IStudioMaster)Master).DisabledSidePanel = true;

            if (!Global.ModuleManager.IsVisible(ModuleType.TimeTracking))
            {
                Response.Redirect(ProjectsCommonResource.StartURL);
            }

            var project = RequestContext.GetCurrentProject(false);

            if (RequestContext.IsInConcreteProject() && project == null)
            {
                Response.Redirect("default.aspx", true);
            }

            ProjectFat = new ProjectFat(project);

            if (!IsTimer)
            {
                if (TaskID <= 0)
                {
                    var advansedFilter = new Studio.Controls.Common.AdvansedFilter {
                        BlockID = "AdvansedFilter"
                    };
                    _filter.Controls.Add(advansedFilter);

                    var emptyScreenControlFilter = new Studio.Controls.Common.EmptyScreenControl
                    {
                        ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty-filter.png", ProductEntryPoint.ID),
                        Header     = TimeTrackingResource.NoTimersFilter,
                        Describe   = TimeTrackingResource.DescrEmptyListTimersFilter,
                        ButtonHTML = String.Format("<span class='baseLinkAction clearFilterButton'>{0}</span>", ProjectsFilterResource.ClearFilter)
                    };
                    emptyScreenFilter.Controls.Add(emptyScreenControlFilter);
                }

                InitPage(ProjectFat);

                var emptyScreenControl = new Studio.Controls.Common.EmptyScreenControl
                {
                    ImgSrc   = WebImageSupplier.GetAbsoluteWebPath("empty_screen_time_tracking.png", ProductEntryPoint.ID),
                    Header   = TimeTrackingResource.NoTtimers,
                    Describe = String.Format(TimeTrackingResource.NoTimersNote)
                };

                if (CanCreateTime())
                {
                    emptyScreenControl.ButtonHTML = String.Format("<span class='baseLinkAction addFirstElement'>{0}</span>", TimeTrackingResource.StartTimer);
                }

                emptyScreen.Controls.Add(emptyScreenControl);

                var apiServer = new Api.ApiServer();

                if (TaskID > 0)
                {
                    var timesForFirstRequest = apiServer.GetApiResponse(String.Format("api/1.0/project/task/{0}/time.json", TaskID), "GET");
                    JsonPublisher(timesForFirstRequest, "timesForFirstRequest");
                }


                if (RequestContext.IsInConcreteProject())
                {
                    var projectTeam = apiServer.GetApiResponse(string.Format("api/1.0/project/{0}/team.json?fields={1}", RequestContext.GetCurrentProjectId(), "id,displayName"), "GET");
                    JsonPublisher(projectTeam, "projectTeam");
                }

                TotalTime = TaskID > 0
                                ? Global.EngineFactory.GetTimeTrackingEngine().GetByTask(TaskID).Sum(r => r.Hours)
                                : Global.EngineFactory.GetTimeTrackingEngine().GetByProject(ProjectFat.Project.ID).Sum(r => r.Hours);
            }
            else
            {
                var taskId = TaskID;
                if (taskId > 0)
                {
                    var t = Global.EngineFactory.GetTaskEngine().GetByID(taskId);
                    if (t == null || t.Status == TaskStatus.Closed)
                    {
                        taskId = -1;
                    }
                }
                Master.DisabledSidePanel = true;
                var cntrlTimer = (TimeSpendActionTimer)LoadControl(PathProvider.GetControlVirtualPath("TimeSpendActionTimer.ascx"));

                if (ProjectFat != null)
                {
                    cntrlTimer.Project = ProjectFat.Project;
                }

                cntrlTimer.Target = taskId;
                _phTimeSpendTimer.Controls.Add(cntrlTimer);
                Title = HeaderStringHelper.GetPageTitle(ProjectsCommonResource.AutoTimer, Master.BreadCrumbs);
            }
        }
 public bool CanCreateTime()
 {
     return(ProjectFat.GetTasks().Count(t => t.Status == TaskStatus.Open) > 0 && ProjectSecurity.CanCreateTimeSpend(ProjectFat.Project));
 }