Author: szimano Date: 2005-10-11 17:11:02 -0400 (Tue, 11 Oct 2005) New Revision: 1373 Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java Log: renaming works !!! Modified: trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/forge-wiki/src/java/org/jboss/wiki/fileaccess/WikiFileAccessFilter.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -144,8 +144,6 @@ // Parse URI to get filename and page name String[] tokens = requestURI.split("[/]"); - System.out.println("TOK LEN: "+tokens.length); - if ((tokens.length == 1)&&(tokens[0].equals(""))) { //show Main page - as there is no place to go specified :) httpResponse.sendRedirect(hostURL + wikiHome); Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -82,4 +82,9 @@ * @return true if attachemnts were deleted. False otherwise. */ public boolean deleteAttachments(String pageName); + + /**Sets wikiEngine reference + * @param wikiEngine + */ + public void setWikiEngine(WikiEngine wikiEngine); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/FileDataSource.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -1052,14 +1052,15 @@ } public synchronized void rename(String uid, String newName) - throws PageAlreadyExistsException { - lock = true; - + throws PageRenamingException { + if (wikiEngine.pageExists(newName)) { - throw new PageAlreadyExistsException( - "Page with the name you're trying to rename already exists."); + throw new PageRenamingException( + "Page with the name you're trying rename to already exists."); } - + + lock = true; + pageDictionary.setProperty(uid, newName); pageRevDictionary.setProperty(newName, uid); @@ -1067,18 +1068,20 @@ // find apropriate uid int i = 2; - + while ((pageExists(uid + String.valueOf(i))) || (pageDictionary.containsKey(uid + String.valueOf(i)))) { - i++; + System.out.println(i++); } // add maping for new (to be done) with name translated to old uid pageDictionary.setProperty(uid + String.valueOf(i), uid); pageRevDictionary.setProperty(uid, uid + String.valueOf(i)); + + saveDictionary(); - //saveDictionary(); - + System.out.println("Renamed (uid) "+uid+" to "+newName); + lock = false; } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -188,5 +188,8 @@ */ public boolean deletePage(String pageName); + /**Sets wikiEngine reference + * @param wikiEngine + */ public void setWikiEngine(WikiEngine wikiEngine); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -42,11 +42,14 @@ for (int i = 0; i < uids.size(); i++) { try { wikiPageDictionary.rename(uids.get(i), realNames.get(i)); - } catch (PageAlreadyExistsException e) { + } catch (PageRenamingException e) { e.printStackTrace(); } } + //clear tables + uids.clear(); realNames.clear(); + wikiEngine.getS().release(); runs = false; Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -30,6 +30,7 @@ import javax.xml.parsers.SAXParserFactory; import org.jboss.wiki.exceptions.PageNotEditedException; +import org.jboss.wiki.exceptions.PageRenamingException; import org.jboss.wiki.exceptions.WikiException; import java.io.File; @@ -115,7 +116,6 @@ } public boolean pageExists(String pageName) { - System.out.println("pageEx: "+pageName); return mediaDataSource.pageExists(getUid(pageName)); } @@ -272,7 +272,9 @@ editedPages = new HashSet<Integer>(); mediaDataSource.setWikiEngine(this); - + attachementDataSource.setWikiEngine(this); + wikiPageDictionary.setWikiEngine(this); + pages = new HashMap<String, WikiPage>(); wikiTypes = new HashMap<String, WikiType>(); @@ -712,8 +714,18 @@ } public synchronized void rename(String uid, String newName) throws WikiException { + if (newName.indexOf("/") != -1) { + throw new PageRenamingException ("You can rename only page/subpage name. / is not allowed."); + } + + if (uid.indexOf("/") != -1) { + //renaming subpage - create aprop. newName + newName = uid.substring(0, uid.lastIndexOf("/")+1)+newName; + } + if (!arePagesEdited()) { wikiPageDictionary.rename(uid, newName); + System.out.println(10); } else { // some pages are edited now - execute watcher Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -9,11 +9,16 @@ public String getUid(String realName); - public void rename(String uid, String newName) throws PageAlreadyExistsException; + public void rename(String uid, String newName) throws PageRenamingException; public boolean uidInDictionary(String uid); public boolean realNameInDictionary(String realName); public void removeDictForPage(String uid) throws PageRenamingException; + + /**Sets wikiEngine reference + * @param wikiEngine + */ + public void setWikiEngine(WikiEngine wikiEngine); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -88,7 +88,7 @@ .getPageContent()); adminConsole.append("\n<hr><h3>Admin console</h3>\n"); - + adminConsole.append("Go to <a href=\"").append(actionURL).append("&type=admin").append("\">ADMIN GENERAL CONSOLE</a><br />\n"); if (errorMsg.length() > 0) { adminConsole.append("<i>" + errorMsg + "</i><br />\n"); } Modified: trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java =================================================================== --- trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java 2005-10-11 21:01:52 UTC (rev 1372) +++ trunk/forge/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java 2005-10-11 21:11:02 UTC (rev 1373) @@ -16,27 +16,28 @@ @Override public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) { Credentials credentials = (Credentials)wikiSession.getAttribute("credentials"); - StringBuilder adminContent = new StringBuilder("<h3>Admin</h3><br />\n"); + String actionURL = (String)wikiSession.getAttribute("actionURL"); + StringBuilder adminContent = new StringBuilder("<h2><a href=\"").append(actionURL).append("&type=admin \">Admin</a></h2><br />\n"); if (credentials.isAdmin()) { + adminContent.append("<h3>Renaming:</h3>\n<br />\n"); + if((wikiSession.getAttribute("var1") != null)&&(wikiSession.getAttribute("var1").equals(RENAME_CAPTION))) { if ((wikiSession.getAttribute("var2") != null)&&(wikiSession.getAttribute("var3") != null)) { String oldName = (String)wikiSession.getAttribute("var2"); String uid = wikiEngine.getUid(oldName); - String newName = (String)wikiSession.getAttribute("var3"); + String newName = HTMLTranslatorParts.cleanLink((String)wikiSession.getAttribute("var3")); - System.out.println("oldname: "+oldName+"\nuid: "+uid+"\nnewName: "+newName); try { wikiEngine.rename(uid, newName); - adminContent.append("Added renaming from page: ").append(oldName).append(" to page: ").append(newName).append("<br />\n"); + adminContent.append("Added renaming from page: ").append(oldName).append(" to page: ").append(newName).append("<br /><br />\n"); } catch (WikiException e) { - adminContent.append("Couldn't rename page because: ").append(e.getMessage()).append("<br />\n"); + adminContent.append("Couldn't rename page because: ").append(e.getMessage()).append("<br /><br />\n"); e.printStackTrace(); } } } - String actionURL = (String)wikiSession.getAttribute("actionURL"); HashMap<String,String> pagesWaiting = wikiEngine.getPagesWaiting(); |