diff --git a/AssemblyVersion.cs b/AssemblyVersion.cs index 63a4c31..3b7cded 100644 --- a/AssemblyVersion.cs +++ b/AssemblyVersion.cs @@ -16,5 +16,5 @@ using System.Reflection; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.1.427")] -[assembly: AssemblyFileVersion("3.0.1.427")] +[assembly: AssemblyVersion("3.0.1.428")] +[assembly: AssemblyFileVersion("3.0.1.428")] diff --git a/Core/Pages.cs b/Core/Pages.cs index bf3012b..9428b8c 100644 --- a/Core/Pages.cs +++ b/Core/Pages.cs @@ -538,6 +538,12 @@ namespace ScrewTurn.Wiki { if(done) { AuthWriter.ClearEntriesForPage(page.FullName); + foreach(IFilesStorageProviderV30 prov in Collectors.FilesProviderCollector.AllProviders) { + foreach(string attn in prov.ListPageAttachments(page)) { + prov.DeletePageAttachment(page, attn); + } + } + // Remove the deleted page from the Breadcrumbs Trail and Redirections list SessionFacade.Breadcrumbs.RemovePage(page); Redirections.WipePageOut(page); @@ -573,13 +579,20 @@ namespace ScrewTurn.Wiki { string oldName = page.FullName; - string title = Content.GetPageContent(page, false).Title; + PageContent originalContent = Content.GetPageContent(page, false); + Settings.Provider.StoreOutgoingLinks(page.FullName, new string[0]); PageInfo pg = page.Provider.RenamePage(page, name); if(pg != null) { AuthWriter.ClearEntriesForPage(newFullName); AuthWriter.ProcessPageRenaming(oldName, newFullName); + foreach(IFilesStorageProviderV30 prov in Collectors.FilesProviderCollector.AllProviders) { + prov.NotifyPageRenaming(new PageInfo(oldName, page.Provider, page.CreationDateTime), pg); + } + + StorePageOutgoingLinks(pg, originalContent.Content); + SessionFacade.Breadcrumbs.RemovePage(page); Redirections.Clear(); Content.InvalidateAllPages(); @@ -587,8 +600,8 @@ namespace ScrewTurn.Wiki { // Page redirect is implemented directly in AdminPages.aspx.cs - Log.LogEntry("Page " + page.FullName + " renamed to " + name, EntryType.General, Log.SystemUsername); - RecentChanges.AddChange(page.FullName, title, null, DateTime.Now, SessionFacade.GetCurrentUsername(), Change.PageRenamed, ""); + Log.LogEntry("Page " + oldName + " renamed to " + name, EntryType.General, Log.SystemUsername); + RecentChanges.AddChange(page.FullName, originalContent.Title, null, DateTime.Now, SessionFacade.GetCurrentUsername(), Change.PageRenamed, ""); Host.Instance.OnPageActivity(page, oldName, SessionFacade.GetCurrentUsername(), PageActivity.PageRenamed); return true; } @@ -606,11 +619,17 @@ namespace ScrewTurn.Wiki { /// A value indicating whether to copy the page categories to the target namespace. /// true if the page is migrated, false otherwise. public static bool MigratePage(PageInfo page, NamespaceInfo targetNamespace, bool copyCategories) { + string oldName = page.FullName; + PageInfo result = page.Provider.MovePage(page, targetNamespace, copyCategories); if(result != null) { Settings.Provider.StoreOutgoingLinks(page.FullName, new string[0]); PageContent content = Content.GetPageContent(result, false); StorePageOutgoingLinks(result, content.Content); + + foreach(IFilesStorageProviderV30 prov in Collectors.FilesProviderCollector.AllProviders) { + prov.NotifyPageRenaming(new PageInfo(oldName, page.Provider, page.CreationDateTime), result); + } } return result != null; }