private void LoadPagesModules(int websiteId) { //get all webpages in the selected website. Website website = Website.Get(websiteId); WebpageInfo websiteRootPage = website.RootWebpage; _webpages = Webpage.GetDescendants(websiteRootPage); _webpages.Insert(0, websiteRootPage); //List<WebModuleType> moduleTypes = WebModuleType.GetModuleTypes(); List <WebApplicationType> webappTypes = WebApplicationType.GetApplications(); //sort alphabetically webappTypes.Sort(delegate(WebApplicationType app1, WebApplicationType app2) { return(app1.Name.CompareTo(app2.Name)); }); //get applications that have >=1 addable module. WebAppsList.DataSource = webappTypes.FindAll(delegate(WebApplicationType app) { foreach (WebModuleType m in app.Modules.Values) { if (m.CanAddModule) { return(true); } } return(false); }); WebAppsList.DataBind(); }
private void LoadExistingModules() { ExistingModulesPagesSelect.Items.Clear(); UseExistingModule.Enabled = true; ExistingModulePanel.Visible = UseExistingModule.Checked; if (UseExistingModule.Checked) { WebpageInfo currentPage = Webpage.GetWebpage(_instanceId); WebModuleType selectedModuleType = GetSelectedModuleType(); List <WebpageInfo> allPages = Webpage.GetDescendants( Webpage.GetWebpage(currentPage.Website.RootNavigationId)); allPages.Add(currentPage.Website.RootWebpage); List <WebpageInfo> pagesWithSelectedModuleType = PagesModulesList.GetPagesWithModuleType(selectedModuleType, allPages); //sort by path pagesWithSelectedModuleType.Sort( delegate(WebpageInfo p1, WebpageInfo p2) { return(p1.Path.CompareTo(p2.Path)); }); bool existingModules = (pagesWithSelectedModuleType.Count > 0); ExistingModulesPagesSelect.Visible = existingModules; UseExistingModule.Enabled = existingModules; NoExistingModulesFoundCtl.Visible = !existingModules; if (!existingModules) { NoExistingModulesFoundCtl.Text = string.Format("There are no existing '{0}' modules.", selectedModuleType.Name); UseExistingModule.Checked = false; } else { foreach (WebpageInfo p in pagesWithSelectedModuleType) { //find all modules of the specified type //(a page may have multiple modules of the same type). List <WebModuleInfo> modules = p.Modules.FindAll(delegate(WebModuleInfo m) { return(!m.IsAlias && //currently, we don't support "alias to alias". m.WebModuleType.Name == selectedModuleType.Name); }); foreach (WebModuleInfo m in modules) { //page path + module name. ExistingModulesPagesSelect.Items.Add(new ListItem( ResolveUrl(p.Path) + " - " + m.Name, m.Id.ToString())); } } } } }
protected void Page_Load(object sender, EventArgs e) { HtmlLink cssLink = new HtmlLink(); cssLink.Href = "~/WebModules/MasterDetail/public/css/MasterDetail.css"; cssLink.Attributes["rel"] = "stylesheet"; cssLink.Attributes["type"] = "text/css"; this.Page.Header.Controls.AddAt(1, cssLink); // Add javscript reference to page this.Page.ClientScript.RegisterClientScriptInclude("masterdetail.js", ResolveUrl("~/WebModules/MasterDetail/public/js/masterdetail.js")); if (!IsPostBack) { //int instanceId; //int.TryParse(Request.QueryString["instanceId"], out instanceId); WebpageInfo startingPage; MasterDetailMiniSummarySetting settings = MasterDetailMiniSummarySetting.FetchByID(this.ModuleId); if ((settings != null) && (settings.StartingPageId != null)) { startingPage = Webpage.GetWebpage((int)settings.StartingPageId); } else { WebpageInfo currentPage = Webpage.GetWebpage(Request.Url); startingPage = currentPage.Website.RootWebpage; } List <WebpageInfo> webpages = Webpage.GetDescendants(startingPage); List <WebpageInfo> pagesWithThisModule = GetPagesWithModuleType("Master Detail Item", webpages); StringBuilder pageIdList = new StringBuilder(); foreach (WebpageInfo page in pagesWithThisModule) { if (page.PostDate > DateTime.Now) { continue; } if ((page.RemoveDate != null) && (page.RemoveDate < DateTime.Now)) { continue; } if (pageIdList.Length == 0) { pageIdList.Append(page.Id); } else { pageIdList.Append("," + page.Id); } // Maximum length of pageIdList for stored proc is 8000 if (pageIdList.Length > 7990) { break; } } if (pageIdList.Length > 0) { if (settings != null) { MiniSummaryRepeater.DataSource = SPs.MasterDetailGetRecentItems(pageIdList.ToString(), settings.FeaturedOnly, settings.NumRows).GetDataSet(); } else { MiniSummaryRepeater.DataSource = SPs.MasterDetailGetRecentItems(pageIdList.ToString(), false, 10).GetDataSet(); } MiniSummaryRepeater.DataBind(); } } }