コード例 #1
0
        public static SideNavigator GetEmployeeNavigation()
        {
            var navigator = new SideNavigator();

            navigator.Controls.Add(new NavigationItem()
            {
                Name = CustomNamingPeople.Substitute <Resources.Resource>("ActiveEmployeesTitle"),
                URL  = CommonLinkUtility.GetEmployees(CommonLinkUtility.GetProductID())
            });

            navigator.Controls.Add(new NavigationItem()
            {
                Name = CustomNamingPeople.Substitute <Resources.Resource>("DisableEmployeesTitle"),
                URL  = CommonLinkUtility.GetEmployees(CommonLinkUtility.GetProductID(), EmployeeStatus.Terminated)
            });

            navigator.Controls.Add(new NavigationItem()
            {
                Name = CustomNamingPeople.Substitute <Resources.Resource>("PendingEmployeesTitle"),
                URL  = CommonLinkUtility.GetEmployees(CommonLinkUtility.GetProductID(), EmployeeActivationStatus.Pending)
            });



            return(navigator);
        }
コード例 #2
0
        private string GetLinkByGuid(Guid id)
        {
            string pageRelUrl = CommonLinkUtility.GetEmployees(_productID) + "&";

            string pageUrl = string.Empty;

            if (Request["deplist"] == null)
            {
                pageUrl = string.Format("{0}depID={1}&search=&page=1&sort={2}{3}", pageRelUrl,
                                        id == Guid.Empty ? string.Empty : id.ToString(),
                                        Request["sort"], Request["list"] == null ? string.Empty : "&list=" + Request["list"]);
            }
            else
            {
                if (id == Guid.Empty)
                {
                    pageUrl = string.Format("{0}deplist={1}", pageRelUrl, Request["list"] == null ? string.Empty : "&list=" + Request["list"]);
                }
                else
                {
                    pageUrl = string.Format("{0}deplist={1}&search=&page=1&sort={2}{3}", pageRelUrl, id.ToString(),
                                            Request["sort"], Request["list"] == null ? string.Empty : "&list=" + Request["list"]);
                }
            }

            return(ResolveUrl(UrlQueryManager.AddDefaultParameters(Request, pageUrl)));
        }
コード例 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var topNavPanel = (TopNavigationPanel)LoadControl(TopNavigationPanel.Location);

            var dashboardItem = new NavigationItem()
            {
                Name     = Resources.CommunityResource.Dashboard,
                URL      = VirtualPathUtility.ToAbsolute("~/products/community/"),
                Selected = (this.Page is _Default)
            };

            topNavPanel.NavigationItems.Add(dashboardItem);


            var employeesItem = new NavigationItem()
            {
                Name     = CustomNamingPeople.Substitute <Resources.CommunityResource>("Employees"),
                Selected = UserOnlineManager.Instance.IsEmployeesPage() || UserOnlineManager.Instance.IsUserProfilePage(),
                URL      = CommonLinkUtility.GetEmployees(CommunityProduct.ID)
            };

            topNavPanel.NavigationItems.Add(employeesItem);

            var product = ProductManager.Instance[CommunityProduct.ID];

            var currentModule = UserOnlineManager.Instance.GetCurrentModule();

            foreach (var item in WebItemManager.Instance.GetSubItems(product.ID))
            {
                var moduleItem = new NavigationItem
                {
                    URL         = VirtualPathUtility.ToAbsolute(item.StartURL),
                    Name        = item.Name,
                    Description = item.Description,
                };
                if (currentModule != null && currentModule.ID.Equals(item.ID))
                {
                    moduleItem.Selected = true;
                }
                topNavPanel.NavigationItems.Add(moduleItem);
            }

            _topNavigatorPlaceHolder.Controls.Add(topNavPanel);

            var bottomNavigator = new BottomNavigator();

            _bottomNavigatorPlaceHolder.Controls.Add(bottomNavigator);

            var onlineUsersControl = (OnlineUsers)LoadControl(OnlineUsers.Location);

            onlineUsersControl.ProductId = CommunityProduct.ID;
            phOnlineUsers.Controls.Add(onlineUsersControl);
        }
コード例 #4
0
        private String RenderContent()
        {
            var newUsers       = new List <UserInfo>();
            var widgetSettings = SettingsManager.Instance.LoadSettingsFor <NewEmployeeWidgetSettings>(SecurityContext.CurrentAccount.ID);

            var users = CoreContext.UserManager.GetUsers();

            foreach (var user in users)
            {
                //search new users
                if (user.WorkFromDate.HasValue && (newUsers.Find(u => u.ID.Equals(user.ID)) == null))
                {
                    if (newUsers.Count < widgetSettings.NewWorkerCount)
                    {
                        newUsers.Add(user);
                    }
                    else
                    {
                        newUsers.Sort(new UserInfoDateComparer(true));
                        for (int i = newUsers.Count - 1; i >= 0; i--)
                        {
                            var newUser = newUsers[i];
                            if (newUser.WorkFromDate.Value.CompareTo(user.WorkFromDate) < 0)
                            {
                                newUsers.Remove(newUser);
                                newUsers.Add(user);
                                break;
                            }
                        }
                    }
                }
            }

            newUsers.Sort(new UserInfoDateComparer(true));

            StringBuilder sb = new StringBuilder();

            if (newUsers.Count > 0)
            {
                foreach (var user in newUsers)
                {
                    sb.Append("<div style='margin-bottom:15px;'>");
                    var imageURL = user.GetSmallPhotoURL();
                    sb.Append("<table cellpadding=\"0\" cellspacing=\"0\"><tr valign='top'>");
                    sb.Append("<td style='width:30px;'><a href=\"" + CommonLinkUtility.GetUserProfile(user.ID, ProductID) + "\"><img class=\"borderBase\" border=0 alt=\"\" src='" + imageURL + "'/></a></td>");

                    sb.Append("<td style='padding-left:10px;'>");
                    sb.Append("<div style='margin-top:-3px;'>");
                    sb.Append("<a class='linkHeaderLightSmall' href=\"" + CommonLinkUtility.GetUserProfile(user.ID, ProductID) + "\">" + user.DisplayUserName() + "</a>");
                    sb.Append("</div>");

                    var dep = user.GetUserDepartment();
                    if (dep != null)
                    {
                        sb.Append("<div style='margin-top:4px;'>");
                        sb.Append("<a class='linkText' href='" + CommonLinkUtility.GetDepartment(ProductID, dep.ID) + "'>" + dep.Name.HtmlEncode() + "</a>");
                        sb.Append("</div>");
                    }

                    sb.Append("</td>");
                    sb.Append("</tr></table>");
                    sb.Append("</div>");
                }

                sb.Append("<div style='margin-top: 10px;'>");
                //all users
                sb.Append("<a href=\"" + CommonLinkUtility.GetEmployees(ProductID) + "&sort=InvAdmissionDate\">" + CustomNamingPeople.Substitute <Resources.Resource>("AllEmployees").HtmlEncode() + "</a>");
                sb.Append("</div>");
            }
            else
            {
                //check access rigths
                if (SecurityContext.CheckPermissions(ASC.Core.Users.Constants.Action_AddRemoveUser))
                {
                    sb.Append("<div class='empty-widget' style='padding:40px; text-align: center;'>");
                    var url = string.Format("<div style=\"padding-top:3px;\"><a class=\"promoAction\" href=\"javascript:ImportUsersManager.ShowImportControl();\">");
                    sb.Append(string.Format(CustomNamingPeople.Substitute <Resources.Resource>("InviteEmployeesWidgetTitle").HtmlEncode(), url, "</a></div>"));
                    sb.Append("</div>");
                }
                else
                {
                    sb.Append("<div class=\"empty-widget\" style=\"padding:40px; text-align: center;\">" + CustomNamingPeople.Substitute <Resources.Resource>("NoNewEmployees").HtmlEncode() + "</div>");
                }
            }


            return(sb.ToString());
        }
コード例 #5
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (this.Master is IStudioMaster)
            {
                var master = this.Master as IStudioMaster;

                //top navigator
                if (this.Master is StudioTemplate)
                {
                    (this.Master as StudioTemplate).TopNavigationPanel.CustomTitle        = CustomNamingPeople.Substitute <Resources.Resource>("Employees");
                    (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleURL     = CommonLinkUtility.GetEmployees();
                    (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleIconURL = WebImageSupplier.GetAbsoluteWebPath("home.png");
                }

                WriteEmployeeActions(this);

                if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser))
                {
                    master.SideHolder.Controls.Add(GetEmployeeNavigation());
                }

                var contentControl = (EmployeeViewer)LoadControl(EmployeeViewer.Location);
                master.ContentHolder.Controls.Add(contentControl);

                master.SideHolder.Controls.Add(LoadControl(CompanyNavigation.Location));

                if (contentControl.WhatView == EmployeeViewer.ViewType.Departments)
                {
                    var ceoSelector = (SimpleUserSelector)LoadControl(SimpleUserSelector.Location);
                    ceoSelector.Title        = CustomNamingPeople.Substitute <Resources.Resource>("CeoNameEditCaption");
                    ceoSelector.SelectTitle  = CustomNamingPeople.Substitute <Resources.Resource>("CEO");
                    ceoSelector.AdditionalID = "ceo";
                    var ceo = CoreContext.UserManager.GetCompanyCEO();
                    ceoSelector.UserID           = ceo != null ? ceo.ID : Guid.Empty;
                    ceoSelector.SelectJSCallback = "function(id) { EmployeeService.ChangeCEO(id); window.location.reload(); }";
                    master.ContentHolder.Controls.Add(ceoSelector);
                }
                else if (contentControl.WhatView == EmployeeViewer.ViewType.Department)
                {
                    var managerSelector = (SimpleUserSelector)LoadControl(SimpleUserSelector.Location);
                    managerSelector.Title            = CustomNamingPeople.Substitute <Resources.Resource>("DepEditMaster");
                    managerSelector.SelectTitle      = CustomNamingPeople.Substitute <Resources.Resource>("DepartmentMaster");
                    managerSelector.AdditionalID     = "dep_manager";
                    managerSelector.UserID           = CoreContext.UserManager.GetDepartmentManager(contentControl.DepartmentId);
                    managerSelector.SelectJSCallback = "function(id) { EmployeeService.ChangeDepartmentManager(id,'" + contentControl.DepartmentId + "'); window.location.reload(); }";
                    master.ContentHolder.Controls.Add(managerSelector);

                    var depNameControl = (Confirm)LoadControl(Confirm.Location);
                    depNameControl.Title        = CustomNamingPeople.Substitute <Resources.Resource>("DepartmentTitle");
                    depNameControl.AdditionalID = "depname";
                    depNameControl.SelectTitle  = Resources.Resource.NewTitle;
                    depNameControl.Value        = contentControl.Department != null?HttpUtility.HtmlEncode(contentControl.Department.Name) : "";

                    depNameControl.SelectJSCallback =
                        @"function(name) { 
    
    AjaxPro.onLoading = function(b){
            if(b)
                jq('#studio_confirmDialogdepname').block();
            else
                jq('#studio_confirmDialogdepname').unblock();
        };  

    EmployeeService.ChangeDepartmentName('" + contentControl.DepartmentId + @"',name,function(result){
       if(result.value.rs1 == '0')
            jq('#studio_confirmMessage').html('<div class=\'errorBox\'>'+result.value.rs2+'</div>');
       else{
            window.location.reload(true);
            jq.unblockUI();
       }              
    }); 
}";
                    master.ContentHolder.Controls.Add(depNameControl);
                }
            }
        }
コード例 #6
0
        protected void RenderHeader()
        {
            var topNavigationPanel = (TopNavigationPanel)LoadControl(TopNavigationPanel.Location);

            //  topNavigationPanel.SingleSearchHandlerType = typeof(SearchHandler);

            //   topNavigationPanel.CustomInfoHTML = String.Format("<img vspace='9' hspace='10' align='middle' src='{0}' valign='middle'>", WebImageSupplier.GetAbsoluteWebPath("beta_module.png"));

            _topNavigationPanelPlaceHolder.Controls.Add(topNavigationPanel);

            var absolutePathWithoutQuery = Request.Url.AbsolutePath.Substring(0, Request.Url.AbsolutePath.IndexOf(".aspx"));
            var sysName = absolutePathWithoutQuery.Substring(absolutePathWithoutQuery.LastIndexOf('/') + 1);

            //topNavigationPanel.NavigationItems.Add(new NavigationItem
            //                                           {
            //                                               URL =
            //                                                   String.Concat(PathProvider.BaseAbsolutePath,
            //                                                                 "default.aspx"),
            //                                               Name = CRMCommonResource.DashboardModuleName,
            //                                               Description = "",
            //                                               Selected = String.Compare(sysName, "Default", true) == 0
            //                                           });

            topNavigationPanel.NavigationItems.Add(new NavigationItem
            {
                URL =
                    String.Concat(PathProvider.BaseAbsolutePath,
                                  "default.aspx"),
                Name        = CRMContactResource.Contacts,
                Description = "",
                Selected    = String.Compare(sysName, "default", true) == 0
            });

            topNavigationPanel.NavigationItems.Add(new NavigationItem
            {
                URL =
                    String.Concat(PathProvider.BaseAbsolutePath, "tasks.aspx"),
                Name        = CRMCommonResource.TaskModuleName,
                Description = "",
                Selected    = String.Compare(sysName, "Tasks", true) == 0
            });

            topNavigationPanel.NavigationItems.Add(new NavigationItem
            {
                URL =
                    String.Concat(PathProvider.BaseAbsolutePath, "deals.aspx"),
                Name        = CRMCommonResource.DealModuleName,
                Description = "",
                Selected    = String.Compare(sysName, "Deals", true) == 0
            });

            topNavigationPanel.NavigationItems.Add(new NavigationItem
            {
                URL =
                    String.Concat(PathProvider.BaseAbsolutePath, "cases.aspx"),
                Name        = CRMCommonResource.CasesModuleName,
                Description = "",
                Selected    = String.Compare(sysName, "Cases", true) == 0
            });

            //if (CRMSecurity.IsAdmin)
            //    topNavigationPanel.NavigationItems.Add(new NavigationItem
            //                                               {
            //                                                   URL =
            //                                                       String.Concat(PathProvider.BaseAbsolutePath,
            //                                                                     "reports.aspx"),
            //                                                   Name = CRMCommonResource.ReportModuleName,
            //                                                   Description = "",
            //                                                   Selected = String.Compare(sysName, "Reports", true) == 0
            //                                               });

            if (CRMSecurity.IsAdmin)
            {
                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL =
                        String.Concat(PathProvider.BaseAbsolutePath,
                                      "settings.aspx?type=common"),
                    Name        = CRMCommonResource.SettingModuleName,
                    Description = "",
                    Selected    = String.Compare(sysName, "Settings", true) == 0,
                    RightAlign  = true
                });
            }

            topNavigationPanel.NavigationItems.Add(new NavigationItem
            {
                URL  = CommonLinkUtility.GetEmployees(ProductEntryPoint.ID),
                Name =
                    CustomNamingPeople.Substitute <CRMCommonResource>(
                        "Employees"),
                Description = "",
                Selected    =
                    UserOnlineManager.Instance.IsEmployeesPage() ||
                    UserOnlineManager.Instance.IsUserProfilePage(),
                RightAlign = true
            });
        }
コード例 #7
0
        protected void RenderHeader()
        {
            var topNavigationPanel = (TopNavigationPanel)LoadControl(TopNavigationPanel.Location);

            topNavigationPanel.SingleSearchHandlerType = typeof(SearchHandler);

            var absolutePathWithoutQuery = Request.Url.AbsolutePath.Substring(0, Request.Url.AbsolutePath.IndexOf(".aspx"));
            var sysName   = absolutePathWithoutQuery.Substring(absolutePathWithoutQuery.LastIndexOf('/') + 1);
            var project   = RequestContext.GetCurrentProject(false);
            var projectID = -1;

            if (RequestContext.IsInConcreteProject())
            {
                projectID = project.ID;

                var rigthItems = new List <NavigationItem>();
                foreach (var webitem in WebItemManager.Instance.GetSubItems(ProductEntryPoint.ID))
                {
                    var module = webitem as IModule;

                    var navigationItem = new NavigationItem()
                    {
                        URL         = String.Format(webitem.StartURL, projectID),
                        Name        = webitem.Name,
                        Description = webitem.Description,
                        Selected    = String.Compare(sysName, module.ModuleSysName, true) == 0
                    };

                    var added = false;
                    if (String.Compare(module.ModuleSysName, "History", true) == 0 ||
                        String.Compare(module.ModuleSysName, "ProjectAction", true) == 0 ||
                        String.Compare(module.ModuleSysName, "ProjectTeam", true) == 0)
                    {
                        navigationItem.RightAlign = true;
                        rigthItems.Add(navigationItem);
                        added = true;
                    }

                    //hide in private projects
                    if (String.Compare(module.ModuleSysName, "Messages", true) == 0 && !ProjectSecurity.CanReadMessages(RequestContext.GetCurrentProject()))
                    {
                        continue;
                    }
                    if (String.Compare(module.ModuleSysName, "TMDocs", true) == 0 && !ProjectSecurity.CanReadFiles(RequestContext.GetCurrentProject()))
                    {
                        continue;
                    }

                    if (String.Compare(module.ModuleSysName, "TMDocs", true) == 0)
                    {
                        navigationItem.Selected = String.Compare(sysName, "tmdocs", true) == 0;
                        navigationItem.Name     = ProjectsFileResource.Documents;
                        navigationItem.URL      = PathProvider.BaseAbsolutePath + "tmdocs.aspx?prjID=" + projectID;
                    }

                    if (!added)
                    {
                        topNavigationPanel.NavigationItems.Add(navigationItem);
                    }
                }

                rigthItems.Reverse();
                topNavigationPanel.NavigationItems.AddRange(rigthItems);
            }
            else
            {
                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "default.aspx"),
                    Name        = ProjectsCommonResource.Dashboard,
                    Description = "",
                    Selected    = String.Compare(sysName, "Default", true) == 0
                });

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "projects.aspx"),
                    Name        = ProjectResource.Projects,
                    Description = "",
                    Selected    = String.Compare(sysName, "Projects", true) == 0 || String.Compare(sysName, "ProjectAction", true) == 0
                });


                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "milestones.aspx"),
                    Name        = MilestoneResource.Milestones,
                    Description = "",
                    Selected    = String.Compare(sysName, "milestones", true) == 0
                });

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "tasks.aspx"),
                    Name        = TaskResource.Tasks,
                    Description = "",
                    Selected    = String.Compare(sysName, "tasks", true) == 0
                });

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "messages.aspx"),
                    Name        = MessageResource.Messages,
                    Description = "",
                    Selected    = String.Compare(sysName, "messages", true) == 0
                });

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "reports.aspx"),
                    Name        = ReportResource.Reports,
                    Description = "",
                    Selected    = String.Compare(sysName, "Reports", true) == 0 || String.Compare(sysName, "Templates", true) == 0
                });

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = String.Concat(PathProvider.BaseAbsolutePath, "history.aspx"),
                    Name        = ProjectsCommonResource.History,
                    Description = "",
                    Selected    = String.Compare(sysName, "History", true) == 0
                });


                if (ProjectSecurity.IsAdministrator(SecurityContext.CurrentAccount.ID))
                {
                    topNavigationPanel.NavigationItems.Add(new NavigationItem
                    {
                        URL         = String.Concat(PathProvider.BaseAbsolutePath, "projectTemplates.aspx"),
                        Name        = ProjectResource.ProjectTemplates,
                        Description = "",
                        Selected    = String.Compare(sysName, "ProjectTemplates", true) == 0,
                        RightAlign  = true
                    });
                }

                topNavigationPanel.NavigationItems.Add(new NavigationItem
                {
                    URL         = CommonLinkUtility.GetEmployees(ProductEntryPoint.ID),
                    Name        = CustomNamingPeople.Substitute <ProjectsCommonResource>("Employees"),
                    Description = "",
                    Selected    = UserOnlineManager.Instance.IsEmployeesPage() || UserOnlineManager.Instance.IsUserProfilePage(),
                    RightAlign  = true
                });
            }
            if (RequestContext.HasAnyProjects())
            {
                var pageName = "default";
                switch (sysName)
                {
                case "userprofile":
                case "default":
                case "reports":
                case "projectTemplates":
                case "createprojectfromtemplate":
                case "editprojecttemplate":
                    pageName = "projects";
                    break;

                case "settings":
                    pageName = "projectAction";
                    break;

                case "employee":
                    pageName = "projectTeam";
                    break;

                default:
                    pageName = sysName;
                    break;
                }
                topNavigationPanel.CustomInfoHTML = RenderAllProjectsBlock(projectID, pageName);
            }
            _topNavigationPanelPlaceHolder.Controls.Add(topNavigationPanel);
        }
コード例 #8
0
        protected void Page_PreLoad(object sender, EventArgs e)
        {
            if (!(this.Master is IStudioMaster))
            {
                return;
            }

            var master = this.Master as IStudioMaster;

            //top navigator
            if (this.Master is StudioTemplate)
            {
                (this.Master as StudioTemplate).TopNavigationPanel.CustomTitle        = CustomNamingPeople.Substitute <Resources.Resource>("Employees");
                (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleURL     = CommonLinkUtility.GetEmployees();
                (this.Master as StudioTemplate).TopNavigationPanel.CustomTitleIconURL = WebImageSupplier.GetAbsoluteWebPath("home.png");
            }

            #region define profile type

            if (!String.IsNullOrEmpty(Request["type"]))
            {
                try
                {
                }
                catch
                {
                }
            }

            #endregion

            _userID    = SecurityContext.CurrentAccount.ID;
            _productID = GetProductID();

            #region find request user

            _userInfo = CoreContext.UserManager.GetUserByUserName(Request[CommonLinkUtility.ParamName_UserUserName]);
            if (_userInfo == null || _userInfo == Constants.LostUser)
            {
                if (!String.IsNullOrEmpty(Request["uid"]))
                {
                    try
                    {
                        _userID = new Guid(Request["uid"]);
                    }
                    catch
                    {
                        _userID = SecurityContext.CurrentAccount.ID;
                    }
                }

                if (!CoreContext.UserManager.UserExists(_userID))
                {
                    //user not found
                    Response.Redirect(CommonLinkUtility.GetEmployees(_productID));
                    return;
                }
                else
                {
                    _userInfo = CoreContext.UserManager.GetUsers(_userID);
                }
            }
            else
            {
                _userID = _userInfo.ID;
            }

            #endregion

            var self = SecurityContext.CurrentAccount.ID.Equals(_userID);

            var container = new Container {
                Body = new PlaceHolder(), Header = new PlaceHolder()
            };
            master.ContentHolder.Controls.Add(container);

            container.BreadCrumbs.Add(new BreadCrumb {
                Caption = CustomNamingPeople.Substitute <Resources.Resource>("Employees"), NavigationUrl = CommonLinkUtility.GetEmployees(_productID)
            });
            container.BreadCrumbs.Add(new BreadCrumb {
                Caption = (self ? Resources.Resource.MyProfile : (_userInfo.DisplayUserName(false))), NavigationUrl = CommonLinkUtility.GetEmployees(_productID)
            });

            Title = HeaderStringHelper.GetPageTitle(CustomNamingPeople.Substitute <Resources.Resource>("Employees"), container.BreadCrumbs);

            //user card
            var userCard = (UserProfileControl)LoadControl(UserProfileControl.Location);
            userCard.UserInfo = _userInfo;
            container.Body.Controls.Add(new Literal
            {
                Text = "<div class=\"headerBase borderBase\" style=\"padding: 0px 0px 5px 15px; border-top:none; border-right:none; border-left:none;\">"
                       + Resources.Resource.PersonalInfo
                       + "</div><div style=\"padding:15px 0px 0px 0px\">"
            });
            container.Body.Controls.Add(userCard);
            container.Body.Controls.Add(new Literal {
                Text = "</div><div style=height:20px;>&nbsp;</div>"
            });


            var product = ProductManager.Instance[_productID];
            if (product != null && product.Context != null && product.Context.UserActivityControlLoader != null)
            {
                container.Body.Controls.Add(product.Context.UserActivityControlLoader.LoadControl(_userID));
                container.Body.Controls.Add(new Literal {
                    Text = "<div style=height:20px;>&nbsp;</div>"
                });
            }
            else
            {
                var isFirst = true;
                foreach (var prod in WebItemManager.Instance.GetItems(Web.Core.WebZones.WebZoneType.All).OfType <IProduct>())
                {
                    if (prod.Context == null || prod.Context.UserActivityControlLoader == null)
                    {
                        continue;
                    }

                    var sb = new StringBuilder();
                    sb.Append("<div id='studio_product_activityBox_" + prod.ID + "' class='borderBase tintMedium clearFix' style='border-left:none; border-right:none; margin-top:-1px; padding:10px;'>");
                    sb.Append("<div class='headerBase' style='float:left; cursor:pointer;' onclick=\"StudioManager.ToggleProductActivity('" + prod.ID + "');\">");
                    var logoURL = prod.GetIconAbsoluteURL();
                    if (!String.IsNullOrEmpty(logoURL))
                    {
                        sb.Append("<img alt='' style='margin-right:5px;' align='absmiddle' src='" + logoURL + "'/>");
                    }
                    sb.Append(prod.Name.HtmlEncode());
                    sb.Append("<img alt='' align='absmiddle' id='studio_activityProductState_" + prod.ID + "' style='margin-left:15px;'  src='" + WebImageSupplier.GetAbsoluteWebPath(isFirst ? "collapse_down_dark.png" : "collapse_right_dark.png") + "'/>");
                    sb.Append("</div>");
                    sb.Append("</div>");
                    sb.Append("<div id=\"studio_product_activity_" + prod.ID + "\" style=\"padding-left:40px; " + (isFirst ? "" : "display:none;") + " padding-top:20px;\">");

                    container.Body.Controls.Add(new Literal {
                        Text = sb.ToString()
                    });
                    var activityControl = prod.Context.UserActivityControlLoader.LoadControl(_userID);
                    container.Body.Controls.Add(activityControl);

                    sb = new StringBuilder();
                    sb.Append("</div>");
                    container.Body.Controls.Add(new Literal {
                        Text = sb.ToString()
                    });

                    isFirst = false;
                }
            }


            Employee.WriteEmployeeActions(this);


            if (SecurityContext.CheckPermissions(Constants.Action_AddRemoveUser))
            {
                master.SideHolder.Controls.Add(Employee.GetEmployeeNavigation());
            }

            var sideControl = (CompanyNavigation)LoadControl(CompanyNavigation.Location);
            master.SideHolder.Controls.Add(sideControl);
        }