Esempio n. 1
0
        private void RenderControls()
        {
            if (!RequestContext.HasAnyProjects())
            {
                var button = "";
                if (ProjectSecurity.CanCreateProject())
                {
                    _content.Controls.Add(LoadControl(PathProvider.GetControlVirtualPath("DashboardEmptyScreen.ascx")));
                    button = string.Format("<a href='projects.aspx?action=add' class='projectsEmpty baseLinkAction addFirstElement'>{0}<a>", ProjectResource.CreateFirstProject);
                }

                _content.Controls.Add(new EmptyScreenControl
                {
                    Header     = ProjectResource.EmptyListProjHeader,
                    ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("projects_logo.png", ProductEntryPoint.ID),
                    Describe   = ProjectResource.EmptyListProjDescribe,
                    ButtonHTML = button
                });
            }
            else
            {
                _listProjects.Controls.Add(LoadControl(PathProvider.GetControlVirtualPath("ProjectsList.ascx")));
                _listProjects.Controls.Add(Masters.BasicTemplate.RenderEmptyScreenForFilter(ProjectsCommonResource.Filter_NoProjects,
                                                                                            ProjectResource.DescrEmptyListProjFilter));
                Page.RegisterInlineScript(@"
                        if (!jq.getURLParam('action') && location.href.indexOf('projects.aspx') > 0) {
                            ASC.Projects.AllProject.init(false, " + EntryCountOnPage + ",'" + CookieKeyForPagination + "', " + Global.VisiblePageCount + ");}", true);
            }
        }
Esempio n. 2
0
 protected override string GetCacheHash()
 {
     return(SecurityContext.CurrentAccount.ID.ToString() +
            CoreContext.UserManager.GetMaxUsersLastModified().Ticks.ToString(CultureInfo.InvariantCulture) +
            CoreContext.UserManager.GetMaxGroupsLastModified().Ticks.ToString(CultureInfo.InvariantCulture) +
            ProjectSecurity.CanCreateProject() +
            ProjectsCommonSettings.LoadForCurrentUser().StartModuleType);
 }
Esempio n. 3
0
        private void RenderControls()
        {
            _content.Controls.Add(LoadControl(CommonList.Location));

            if (RequestContext.AllProjectsCount <= 0 && ProjectSecurity.CanCreateProject())
            {
                _content.Controls.Add(LoadControl(PathProvider.GetFileStaticRelativePath("Dashboard/DashboardEmptyScreen.ascx")));
            }
        }
Esempio n. 4
0
        private void RenderControls()
        {
            _content.Controls.Add(LoadControl(CommonList.Location));
            loaderHolder.Controls.Add(LoadControl(LoaderPage.Location));

            if (ProjectSecurity.CanCreateProject() && EngineFactory.ProjectEngine.Count() <= 0)
            {
                var emptyScreen = (ProjectsDashboardEmptyScreen)Page.LoadControl(ProjectsDashboardEmptyScreen.Location);
                emptyScreen.IsAdmin = Participant.IsAdmin;
                _content.Controls.Add(emptyScreen);
            }
        }
        private void RenderControls()
        {
            _content.Controls.Add(LoadControl(CommonList.Location));
            loaderHolder.Controls.Add(LoadControl(LoaderPage.Location));

            if (RequestContext.AllProjectsCount <= 0 && ProjectSecurity.CanCreateProject())
            {
                var emptyScreen = (ProjectsDashboardEmptyScreen)Page.LoadControl(ProjectsDashboardEmptyScreen.Location);
                emptyScreen.IsAdmin = Participant.IsAdmin;
                _content.Controls.Add(emptyScreen);
            }
        }
Esempio n. 6
0
 protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context)
 {
     return(new List <KeyValuePair <string, object> >(1)
     {
         RegisterObject(
             new
         {
             CanCreateProject = ProjectSecurity.CanCreateProject(),
             IsModuleAdmin = ProjectSecurity.CurrentUserAdministrator,
             StartModule.GetInstance(ProjectsCommonSettings.LoadForCurrentUser().StartModuleType).StartModuleType
         })
     });
 }
Esempio n. 7
0
        public string CreateProject(Project newProject, Guid[] team, string milestones, string noAssignTasks, bool notifyManager, bool notifyResponsibles)
        {
            if (ProjectSecurity.CanCreateProject())
            {
                if (newProject != null)
                {
                    Global.EngineFactory.GetProjectEngine().SaveOrUpdate(newProject, notifyManager);
                    Global.EngineFactory.GetProjectEngine().AddToTeam(newProject, Global.EngineFactory.GetParticipantEngine().GetByID(newProject.Responsible), true);

                    //add team
                    foreach (var participant in team.Where(participant => participant != Guid.Empty))
                    {
                        Global.EngineFactory.GetProjectEngine().AddToTeam(newProject, Global.EngineFactory.GetParticipantEngine().GetByID(participant), true);
                    }

                    // add milestone
                    var listMilestones = MilestoneParser(milestones);

                    foreach (var milestone in listMilestones)
                    {
                        var milestoneTasks = TaskParser(milestone.Description);
                        milestone.Description = string.Empty;
                        milestone.Project     = newProject;
                        Global.EngineFactory.GetMilestoneEngine().SaveOrUpdate(milestone, notifyResponsibles);

                        foreach (var task in milestoneTasks)
                        {
                            task.Status    = TaskStatus.Open;
                            task.Milestone = milestone.ID;
                            task.Project   = newProject;
                            Global.EngineFactory.GetTaskEngine().SaveOrUpdate(task, null, notifyResponsibles);
                        }
                    }

                    //add no assign tasks

                    var listTasks = TaskParser(noAssignTasks);

                    foreach (var task in listTasks)
                    {
                        task.Project = newProject;
                        task.Status  = TaskStatus.Open;
                        Global.EngineFactory.GetTaskEngine().SaveOrUpdate(task, null, notifyResponsibles);
                    }

                    return("?prjID=" + newProject.ID);
                }
            }

            return(string.Empty);
        }
Esempio n. 8
0
 public CommonSecurityInfo()
 {
     CanCreateProject = ProjectSecurity.CanCreateProject();
 }
Esempio n. 9
0
        public int Create()
        {
            var newProject         = Parser <Project>(Request["project"]);
            var team               = new List <Guid>();
            var listMilestones     = new List <Milestone>();
            var listTasks          = new List <Task>();
            var notifyManager      = Convert.ToBoolean(Request["notifyManager"]);
            var notifyResponsibles = Convert.ToBoolean(Request["notifyResponsibles"]);

            var projectEngine     = Global.EngineFactory.GetProjectEngine();
            var participantEngine = Global.EngineFactory.GetParticipantEngine();
            var taskEngine        = Global.EngineFactory.GetTaskEngine();
            var milestoneEngine   = Global.EngineFactory.GetMilestoneEngine();

            if (Request["team"] != null)
            {
                team = Parser <List <Guid> >(Request["team"]);
            }

            if (Request["milestones"] != null)
            {
                listMilestones = Parser <List <Milestone> >(Request["milestones"]);
            }

            if (Request["noAssignTasks"] != null)
            {
                listTasks = Parser <List <Task> >(Request["noAssignTasks"]);
            }

            if (ProjectSecurity.CanCreateProject())
            {
                if (newProject != null)
                {
                    projectEngine.SaveOrUpdate(newProject, notifyManager);
                    projectEngine.AddToTeam(newProject, participantEngine.GetByID(newProject.Responsible), true);

                    //add team
                    foreach (var participant in team.Where(participant => participant != Guid.Empty))
                    {
                        projectEngine.AddToTeam(newProject, participantEngine.GetByID(participant), true);
                    }

                    foreach (var milestone in listMilestones)
                    {
                        var milestoneTasks = milestone.Tasks;
                        milestone.Description = string.Empty;
                        milestone.Project     = newProject;
                        milestoneEngine.SaveOrUpdate(milestone, notifyResponsibles);

                        foreach (var task in milestoneTasks)
                        {
                            task.Status    = TaskStatus.Open;
                            task.Milestone = milestone.ID;
                            task.Project   = newProject;
                            taskEngine.SaveOrUpdate(task, null, notifyResponsibles);
                        }
                    }

                    //add no assign tasks

                    foreach (var task in listTasks)
                    {
                        task.Project = newProject;
                        task.Status  = TaskStatus.Open;
                        taskEngine.SaveOrUpdate(task, null, notifyResponsibles);
                    }

                    return(newProject.ID);
                }
            }

            return(0);
        }
Esempio n. 10
0
        private void InitEmptyScreens()
        {
            emptyScreenPlaceHolders.Controls.Add(RenderEmptyScreenForFilter(MessageResource.FilterNoDiscussions, MessageResource.DescrEmptyListMilFilter, "discEmptyScreenForFilter"));
            emptyScreenPlaceHolders.Controls.Add(RenderEmptyScreenForFilter(TaskResource.NoTasks, TaskResource.DescrEmptyListTaskFilter, "tasksEmptyScreenForFilter"));
            emptyScreenPlaceHolders.Controls.Add(RenderEmptyScreenForFilter(MilestoneResource.FilterNoMilestones, MilestoneResource.DescrEmptyListMilFilter, "mileEmptyScreenForFilter"));
            emptyScreenPlaceHolders.Controls.Add(RenderEmptyScreenForFilter(ProjectsCommonResource.Filter_NoProjects, ProjectResource.DescrEmptyListProjFilter, "prjEmptyScreenForFilter"));
            emptyScreenPlaceHolders.Controls.Add(RenderEmptyScreenForFilter(TimeTrackingResource.NoTimersFilter, TimeTrackingResource.DescrEmptyListTimersFilter, "timeEmptyScreenForFilter"));

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty_screen_tasks.png", ProductEntryPoint.ID),
                Header     = TaskResource.NoTasksCreated,
                Describe   = String.Format(TaskResource.TasksHelpTheManage, TaskResource.DescrEmptyListTaskFilter),
                ID         = "emptyListTask",
                ButtonHTML = RequestContext.CanCreateTask(true) ? String.Format("<span class='link dotline addFirstElement'>{0}</span>", TaskResource.AddFirstTask) : string.Empty
            });

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty_screen_discussions.png", ProductEntryPoint.ID),
                Header     = MessageResource.DiscussionNotFound_Header,
                Describe   = MessageResource.DiscussionNotFound_Describe,
                ID         = "emptyListDiscussion",
                ButtonHTML = RequestContext.CanCreateDiscussion(true) ?
                             (RequestContext.IsInConcreteProject
                                ? String.Format("<a href='messages.aspx?prjID={0}&action=add' class='link dotline addFirstElement'>{1}</a>", RequestContext.GetCurrentProjectId(), MessageResource.StartFirstDiscussion)
                                : String.Format("<a href='messages.aspx?action=add' class='link dotline addFirstElement'>{0}</a>", MessageResource.StartFirstDiscussion))
                            : string.Empty
            });

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty_screen_milestones.png", ProductEntryPoint.ID),
                Header     = MilestoneResource.MilestoneNotFound_Header,
                Describe   = String.Format(MilestoneResource.MilestonesMarkMajorTimestamps),
                ID         = "emptyListMilestone",
                ButtonHTML = RequestContext.CanCreateMilestone(true) ? String.Format("<a class='link dotline addFirstElement'>{0}</a>", MilestoneResource.PlanFirstMilestone) : string.Empty
            });

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                Header     = ProjectResource.EmptyListProjHeader,
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("projects_logo.png", ProductEntryPoint.ID),
                Describe   = ProjectResource.EmptyListProjDescribe,
                ID         = "emptyListProjects",
                ButtonHTML = ProjectSecurity.CanCreateProject() ? string.Format("<a href='projects.aspx?action=add' class='projectsEmpty link dotline addFirstElement'>{0}<a>", ProjectResource.CreateFirstProject) : string.Empty
            });

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty_screen_time_tracking.png", ProductEntryPoint.ID),
                Header     = TimeTrackingResource.NoTtimers,
                Describe   = String.Format(TimeTrackingResource.NoTimersNote),
                ID         = "emptyListTimers",
                ButtonHTML = String.Format("<span class='link dotline addFirstElement {1}'>{0}</span>", TimeTrackingResource.StartTimer, RequestContext.CanCreateTime(true) ? string.Empty : "display-none")
            });

            emptyScreenPlaceHolders.Controls.Add(new EmptyScreenControl
            {
                Header     = ProjectTemplatesResource.EmptyListTemplateHeader,
                ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("project-templates_logo.png", ProductEntryPoint.ID),
                Describe   = ProjectTemplatesResource.EmptyListTemplateDescr,
                ID         = "emptyListTemplates",
                ButtonHTML = string.Format("<a href='projectTemplates.aspx?action=add' class='projectsEmpty link dotline addFirstElement'>{0}<a>", ProjectTemplatesResource.EmptyListTemplateButton)
            });
        }
Esempio n. 11
0
        protected override void PageLoad()
        {
            if (RequestContext.IsInConcreteProject())
            {
                Server.Transfer(String.Concat(PathProvider.BaseAbsolutePath, "ProjectOverview.aspx"));
            }
            else
            {
                if (String.Compare(UrlParameters.ActionType, "add", StringComparison.OrdinalIgnoreCase) == 0)
                {
                    if (ProjectSecurity.IsAdministrator(SecurityContext.CurrentAccount.ID))
                    {
                        Server.Transfer(String.Concat(PathProvider.BaseAbsolutePath, "ProjectAction.aspx"));
                    }
                    else
                    {
                        Response.Redirect("projects.aspx");
                    }
                }
            }

            ((IStudioMaster)Master).DisabledSidePanel = true;

            Master.BreadCrumbs.Add(new BreadCrumb
            {
                Caption       = ProjectResource.Projects,
                NavigationUrl = "projects.aspx"
            });

            Title = HeaderStringHelper.GetPageTitle(ProjectResource.Projects, Master.BreadCrumbs);

            IsEmptyListProjects = !RequestContext.HasAnyProjects();
            if (IsEmptyListProjects)
            {
                var button = "";
                if (ProjectSecurity.CanCreateProject())
                {
                    button = string.Format("<a href='projects.aspx?action=add' class='projectsEmpty baseLinkAction'>{0}<a>",
                                           ProjectResource.CreateFirstProject);
                }
                var escNoProj = new Studio.Controls.Common.EmptyScreenControl
                {
                    Header     = ProjectResource.EmptyListProjHeader,
                    ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("projects_logo.png", ProductEntryPoint.ID),
                    Describe   = ProjectResource.EmptyListProjDescribe,
                    ID         = "escNoProj",
                    ButtonHTML = button
                };
                _escNoProj.Controls.Add(escNoProj);
            }
            else
            {
                var list = (Controls.Projects.ProjectsList)LoadControl(PathProvider.GetControlVirtualPath("ProjectsList.ascx"));
                __listProjects.Controls.Add(list);

                var advansedFilter = new Studio.Controls.Common.AdvansedFilter {
                    BlockID = "AdvansedFilter"
                };
                _content.Controls.Add(advansedFilter);

                var emptyScreenControlFilter = new Studio.Controls.Common.EmptyScreenControl
                {
                    ImgSrc     = WebImageSupplier.GetAbsoluteWebPath("empty-filter.png", ProductEntryPoint.ID),
                    Header     = ProjectsCommonResource.Filter_NoProjects,
                    Describe   = ProjectResource.DescrEmptyListProjFilter,
                    ID         = "emptyFilter",
                    ButtonHTML = String.Format("<a href='javascript:void(0)' class='baseLinkAction'>{0}</a>",
                                               ProjectsFilterResource.ClearFilter)
                };
                projectListEmptyScreen.Controls.Add(emptyScreenControlFilter);
            }
        }
Esempio n. 12
0
        public int Create()
        {
            var newProject         = Parser <Project>(Request["project"]);
            var team               = new List <Guid>();
            var listMilestones     = new List <Milestone>();
            var listTasks          = new List <Task>();
            var notifyManager      = Convert.ToBoolean(Request["notifyManager"]);
            var notifyResponsibles = Convert.ToBoolean(Request["notifyResponsibles"]);

            var projectEngine     = Global.EngineFactory.GetProjectEngine();
            var participantEngine = Global.EngineFactory.GetParticipantEngine();
            var taskEngine        = Global.EngineFactory.GetTaskEngine();
            var milestoneEngine   = Global.EngineFactory.GetMilestoneEngine();

            if (Request["team"] != null)
            {
                team = Parser <List <Guid> >(Request["team"]);
            }

            if (Request["milestones"] != null)
            {
                listMilestones = Parser <List <Milestone> >(Request["milestones"]);
            }

            if (Request["noAssignTasks"] != null)
            {
                listTasks = Parser <List <Task> >(Request["noAssignTasks"]);
            }

            if (ProjectSecurity.CanCreateProject())
            {
                if (newProject != null)
                {
                    projectEngine.SaveOrUpdate(newProject, notifyManager);
                    projectEngine.AddToTeam(newProject, participantEngine.GetByID(newProject.Responsible), true);

                    //add team
                    foreach (var participant in team.Where(participant => participant != Guid.Empty))
                    {
                        projectEngine.AddToTeam(newProject, participantEngine.GetByID(participant), true);
                    }

                    foreach (var milestone in listMilestones)
                    {
                        var milestoneTasks = milestone.Tasks;
                        milestone.Description = string.Empty;
                        milestone.Project     = newProject;
                        milestoneEngine.SaveOrUpdate(milestone, notifyResponsibles);

                        foreach (var task in milestoneTasks)
                        {
                            task.Description = string.Empty;
                            task.Status      = TaskStatus.Open;
                            task.Milestone   = milestone.ID;
                            task.Project     = newProject;
                            taskEngine.SaveOrUpdate(task, null, notifyResponsibles);
                        }
                    }

                    //add no assign tasks

                    foreach (var task in listTasks)
                    {
                        task.Description = string.Empty;
                        task.Project     = newProject;
                        task.Status      = TaskStatus.Open;
                        taskEngine.SaveOrUpdate(task, null, notifyResponsibles);
                    }


                    var templateId = Request.QueryString["id"];
                    if (string.IsNullOrEmpty(templateId))
                    {
                        throw new ApplicationException("must be a template id in the page query string");
                    }

                    var id       = Convert.ToInt32(templateId);
                    var template = Global.EngineFactory.GetTemplateEngine().GetByID(id);
                    MessageService.Send(HttpContext.Current.Request, MessageAction.ProjectCreatedFromTemplate, template.Title, newProject.Title);

                    return(newProject.ID);
                }
            }

            return(0);
        }