From 935dda389a68b93f917e531fd2de89631ee125c3 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Sun, 12 Feb 2017 11:36:08 -0500 Subject: [PATCH] Personal_wikis: Add hack to handle rarely-reproducible problem of editing-after-renaming --- 100_core/src/gplx/core/ios/IoEngine_system.java | 4 +--- 400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java | 8 +++++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/100_core/src/gplx/core/ios/IoEngine_system.java b/100_core/src/gplx/core/ios/IoEngine_system.java index d953c3f4e..4a95747ef 100644 --- a/100_core/src/gplx/core/ios/IoEngine_system.java +++ b/100_core/src/gplx/core/ios/IoEngine_system.java @@ -145,9 +145,7 @@ public class IoEngine_system extends IoEngine_base { } return buffer.toByteArray(); } - @Override public boolean ExistsDir(Io_url url) { - return new File(url.Xto_api()).exists(); - } + @Override public boolean ExistsDir(Io_url url) {return new File(url.Xto_api()).exists();} @Override public void CreateDir(Io_url url) {new File(url.Xto_api()).mkdirs();} @Override public void DeleteDir(Io_url url) { File dir = new File(url.Xto_api()); diff --git a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java index 46825a263..3b1d51369 100644 --- a/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java +++ b/400_xowa/src/gplx/xowa/guis/views/Xog_win_itm.java @@ -69,7 +69,7 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { else if (ctx.Match(k, Invk_page_refresh)) Page__refresh(); else if (ctx.Match(k, Invk_page_async_exec)) Xog_async_wkr.Async(((Xog_tab_itm)m.ReadObj("v"))); else if (ctx.Match(k, Invk_page_view_read)) Page__mode_(Xopg_page_.Tid_read); - else if (ctx.Match(k, Invk_page_view_edit)) Page__mode_(Xopg_page_.Tid_edit); + else if (ctx.Match(k, Invk_page_view_edit)) Page__mode_edit_(); else if (ctx.Match(k, Invk_page_view_html)) Page__mode_(Xopg_page_.Tid_html); else if (ctx.Match(k, Invk_page_edit_save)) Xog_tab_itm_edit_mgr.Save(tab_mgr.Active_tab(), Bool_.N); else if (ctx.Match(k, Invk_page_edit_save_draft)) Xog_tab_itm_edit_mgr.Save(tab_mgr.Active_tab(), Bool_.Y); @@ -157,6 +157,12 @@ public class Xog_win_itm implements Gfo_invk, Gfo_evt_itm { ? null : String_.Mid(v, pos + 1); } + public void Page__mode_edit_() { // only called from by link + // HACK: when "edit" is clicked, always reload page from database; handles rarely-reproducible issue of "edit-after-rename" causing older versions to show up + Xog_tab_itm tab = tab_mgr.Active_tab(); Xoae_page page = tab.Page(); Xowe_wiki wiki = tab.Wiki(); + page = wiki.Page_mgr().Load_page(page.Url(), page.Ttl(), tab); + Page__mode_(Xopg_page_.Tid_edit); + } public void Page__mode_(byte new_mode_tid) { Xog_tab_itm tab = tab_mgr.Active_tab(); Xoae_page page = tab.Page(); Xowe_wiki wiki = tab.Wiki(); if ( new_mode_tid == Xopg_page_.Tid_read // used to be && cur_view_tid == Edit; removed clause else redlinks wouldn't show when going form html to read (or clicking read multiple times) DATE: 2013-11-26;