From 4e45bdedafa0f7588f00965d9f1be0c1a0b00dbb Mon Sep 17 00:00:00 2001
From: hg <none@none>
Date: Thu, 10 Jul 2014 14:31:54 +0200
Subject: [PATCH] OO-1068: fix tooltip on link, add number of entries in table,
 hardened business control against null resource

---
 .../modules/bc/components/ListRenderer.java   |  6 ++----
 .../table/AbstractFlexiTableRenderer.java     | 12 ++++++++++--
 .../table/_content/tablelayout.html           | 11 +++++++++--
 .../id/context/StackedBusinessControl.java    | 19 +++++++++----------
 .../olat/modules/wiki/WikiMainController.java |  3 ++-
 5 files changed, 32 insertions(+), 19 deletions(-)

diff --git a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
index b2fcfb2f239..60201ebe7ed 100644
--- a/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
+++ b/src/main/java/org/olat/core/commons/modules/bc/components/ListRenderer.java
@@ -333,10 +333,8 @@ public class ListRenderer {
 				  .append("	   container: 'body',\n")
 				  .append("    title: function(){ return jQuery('#o_sel_doc_tooltip_").append(pos).append("').html(); }\n")
 				  .append("  });\n")
-				  .append("  jQuery('#o_sel_doc_").append(pos).append("').on('show.bs.tooltip', function(){\n")
-				  .append("	   setTimeout(function() {\n")
-				  .append("	    jQuery('#o_sel_doc_").append(pos).append("').tooltip('hide');\n")
-				  .append("	   }, 30000);\n")
+				  .append("  jQuery('#o_sel_doc_").append(pos).append("').on('click', function(){\n")
+				  .append("	   jQuery('#o_sel_doc_").append(pos).append("').tooltip('hide');\n")
 				  .append("  });\n")
 				  .append("});")
 				  .append("/* ]]> */")
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index 3623e8b5e1f..4d160fa55ce 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -128,8 +128,16 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 			renderHeaderSearch(renderer, sb, ftE, ubu, translator, renderResult, args);
 			sb.append("</div>");
 		}
-
-		sb.append("<div class='col-lg-2'></div><div class='col-lg-4'>");
+		
+		
+		sb.append("<div class='col-lg-3'>");
+		int rowCount = ftE.getTableDataModel().getRowCount();
+		if(rowCount == 1) {
+			sb.append(rowCount).append(" ").append(ftE.getTranslator().translate("table.entry"));
+		} else if(rowCount > 1) {
+			sb.append(rowCount).append(" ").append(ftE.getTranslator().translate("table.entries"));
+		}
+		sb.append("</div><div class='col-lg-3'>");
 		renderHeaderTools(renderer, sb, ftE, ubu, translator, renderResult,  args);
 		sb.append("</div></div>");
 	}
diff --git a/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html b/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
index 61660d74fcf..d9cf2585e1d 100644
--- a/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
+++ b/src/main/java/org/olat/core/gui/components/table/_content/tablelayout.html
@@ -8,8 +8,15 @@
 			  $r.render("tableSearch")
 			#end
 		</div>
-		<div class="col-lg-2"></div>
-		<div class="col-lg-4"><div class="pull-right o_table_tools">
+		<div class="col-lg-3">
+			$numberOfElements
+			#if ($numberOfElements == "1")
+				$r.translate("table.entry")
+			#else
+				$r.translate("table.entries")
+			#end
+		</div>
+		<div class="col-lg-3"><div class="pull-right o_table_tools">
 			#if ($hasFilters && $filters.size() > 0)
 			<div class="btn-group">	
 				<button type='button' class='btn btn-default dropdown-toggle' data-toggle='dropdown'>
diff --git a/src/main/java/org/olat/core/id/context/StackedBusinessControl.java b/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
index 5f834765f4b..757124a4403 100644
--- a/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
+++ b/src/main/java/org/olat/core/id/context/StackedBusinessControl.java
@@ -52,9 +52,6 @@ public class StackedBusinessControl implements BusinessControl {
 	private ContextEntry currentCe;
 	private List<ContextEntry> businessControls;
 
-	
-	
-	
 	public List<ContextEntry> getBusinessControls() {
 		return businessControls;
 	}
@@ -89,13 +86,16 @@ public class StackedBusinessControl implements BusinessControl {
 		}
 	}
 
-
+	@Override
 	public String toString() {
 		return getAsString(); 
 	}
 	
+	@Override
 	public String getAsString() {
-		if(contextEntry == null) return "";
+		if(contextEntry == null || contextEntry.getOLATResourceable() == null) {
+			return "";
+		}
 		Long key = contextEntry.getOLATResourceable().getResourceableId();
 		String postfix = BusinessControl.START_TAG +contextEntry.getOLATResourceable().getResourceableTypeName() + 
 		(key == null? "":BusinessControl.DELIMITER_TAG+key)+BusinessControl.END_TAG;
@@ -103,7 +103,6 @@ public class StackedBusinessControl implements BusinessControl {
 	}
 
 	@Override
-	//fxdiff BAKS-7 Resume function
 	public List<ContextEntry> getEntries() {
 		if(contextEntry == null) new ArrayList<ContextEntry>();
 		List<ContextEntry> entries = new ArrayList<ContextEntry>();
@@ -116,6 +115,7 @@ public class StackedBusinessControl implements BusinessControl {
 		return entries;
 	}
 
+	@Override
 	public ContextEntry popLauncherContextEntry() {
 		ContextEntry currentToSpawn = popInternalLaucherContextEntry();
 		
@@ -139,12 +139,12 @@ public class StackedBusinessControl implements BusinessControl {
 		}
 	}
 	
-	
+	@Override
 	public void dropLauncherEntries() {
 		origBusinessControl.dropLauncherEntries();
 	}
 
-
+	@Override
 	public boolean hasContextEntry() {
 		return origBusinessControl.hasContextEntry();
 	}
@@ -181,5 +181,4 @@ public class StackedBusinessControl implements BusinessControl {
 			}
 		}
 	}
-
-}
+}
\ No newline at end of file
diff --git a/src/main/java/org/olat/modules/wiki/WikiMainController.java b/src/main/java/org/olat/modules/wiki/WikiMainController.java
index 230529fa0c9..7b63c8b04fc 100644
--- a/src/main/java/org/olat/modules/wiki/WikiMainController.java
+++ b/src/main/java/org/olat/modules/wiki/WikiMainController.java
@@ -657,8 +657,9 @@ public class WikiMainController extends BasicController implements CloneableCont
 				forum = ForumManager.getInstance().addAForum();
 				page.setForumKey(forum.getKey().longValue());
 				WikiManager.getInstance().updateWikiPageProperties(ores, page);
+			} else {
+				forum = ForumManager.getInstance().loadForum(Long.valueOf(page.getForumKey()));
 			}
-			forum = ForumManager.getInstance().loadForum(Long.valueOf(page.getForumKey()));
 			// TODO enhance forum callback with subscription stuff								
 			boolean isModerator = securityCallback.mayModerateForum();				
 			ForumCallback forumCallback = new WikiForumCallback(ureq.getUserSession().getRoles().isGuestOnly(), isModerator);
-- 
GitLab