Index: src/services/Deki/DekiWiki-Site.cs
===================================================================
--- src/services/Deki/DekiWiki-Site.cs (revision 6633)
+++ src/services/Deki/DekiWiki-Site.cs (working copy)
@@ -134,6 +134,14 @@
foreach(PageBE page in pagesById.Values) {
DekiContext.Current.Instance.LuceneIndexClient.QueueUpdate(page, false);
}
+ PageDA.GetDescendantPages(PageBL.GetTemplatePage(), out pagesById, out childrenInfo);
+ foreach(PageBE page in pagesById.Values) {
+ DekiContext.Current.Instance.LuceneIndexClient.QueueUpdate(page, false);
+ }
+ PageDA.GetDescendantPages(PageBL.GetUserPage(), out pagesById, out childrenInfo);
+ foreach(PageBE page in pagesById.Values) {
+ DekiContext.Current.Instance.LuceneIndexClient.QueueUpdate(page, false);
+ }
attachments[] attachments = AttachmentDA.GetAttachments(0, int.MaxValue);
foreach(attachments att in attachments) {
DekiContext.Current.Instance.LuceneIndexClient.QueueUpdate(att, false);
Index: src/services/Deki/Logic/PageBL.cs
===================================================================
--- src/services/Deki/Logic/PageBL.cs (revision 6633)
+++ src/services/Deki/Logic/PageBL.cs (working copy)
@@ -176,6 +176,20 @@
public static PageBE GetHomePage() {
return PageDA.GetPageById(HomePageId);
}
+ ///
+ /// Retrieves the template root page object
+ ///
+ ///
+ public static PageBE GetTemplatePage() {
+ return PageDA.GetPageById(TemplatePageId);
+ }
+ ///
+ /// Retrieves the user root page object
+ ///
+ ///
+ public static PageBE GetUserPage() {
+ return PageDA.GetPageById(UserPageId);
+ }
//--- Properties ---
@@ -194,7 +208,31 @@
return homepageId;
}
}
+ public static uint TemplatePageId {
+ get {
+ uint templatepageId = DekiContext.Current.PerRequestCache.Get(TEMPLATEPAGEIDKEY, 0);
+ //Resolve templatepageId if not cached
+ if(templatepageId == 0) {
+ templatepageId = (uint)DekiContext.Current.Instance.Catalog.NewQuery("SELECT page_id FROM pages WHERE page_parent=0 AND page_namespace=10").ReadAs();
+ DekiContext.Current.PerRequestCache[HOMEPAGEIDKEY] = templatepageId;
+ }
+ return templatepageId;
+ }
+ }
+ public static uint UserPageId {
+ get {
+ uint userpageId = DekiContext.Current.PerRequestCache.Get(USERPAGEIDKEY, 0);
+
+ //Resolve userpageId if not cached
+ if(userpageId == 0) {
+ userpageId = (uint)DekiContext.Current.Instance.Catalog.NewQuery("SELECT page_id FROM pages WHERE page_parent=0 AND page_namespace=2").ReadAs();
+ DekiContext.Current.PerRequestCache[HOMEPAGEIDKEY] = userpageId;
+ }
+ return userpageId;
+ }
+ }
+
public static PageBE EnsureParent(bool isRedirect, Title title) {
PageBE parentPage = null;
Title parentTitle = title.GetParent();