diff --git a/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.java b/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.java index 13df58ff05..223dc04531 100644 --- a/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.java +++ b/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.java @@ -14,20 +14,8 @@ public abstract class AbstractReadStatePanel extends Panel { public static final String TOGGLE = "toggle"; static final String ICON = "icon"; - public enum ShowReadStateTooltip { - ENABLED, - DISABLED - } - - private final ShowReadStateTooltip showReadStateTooltip; - public AbstractReadStatePanel(final String id) { - this(id, ShowReadStateTooltip.DISABLED); - } - - public AbstractReadStatePanel(final String id, final ShowReadStateTooltip showReadStateTooltip) { super(id); - this.showReadStateTooltip = showReadStateTooltip; Component icon = new UpdatingImage(ICON); icon.setOutputMarkupId(true); @@ -59,10 +47,6 @@ public abstract class AbstractReadStatePanel extends Panel { super.onComponentTag(tag); String state = isRead() ? "read" : "unread"; tag.append("class", state, " "); - - if (showReadStateTooltip == ShowReadStateTooltip.ENABLED && !isRead()) { - tag.put("title", getString("unread.msg")); - } } } } diff --git a/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.utf8.properties b/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.utf8.properties deleted file mode 100644 index e86f4d6e50..0000000000 --- a/view/src/main/java/se/su/dsv/scipro/forum/panels/AbstractReadStatePanel.utf8.properties +++ /dev/null @@ -1 +0,0 @@ -unread.msg=There are unread messages. \ No newline at end of file diff --git a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.html b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.html index b50ec6da63..da97aaf553 100755 --- a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.html +++ b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.html @@ -42,9 +42,8 @@ <table class="table table-striped table-hover" wicket:id="dp"></table> - <!-- todo: reconsider name of this id, parentMarkupId, needs improvement. --> - <wicket:fragment wicket:id="parentMarkupId"> - <wicket:container wicket:id="flag"></wicket:container> + <wicket:fragment wicket:id="readStateColumnMarkupId"> + <span wicket:id="flag"></span> <wicket:container wicket:id="counter"></wicket:container> </wicket:fragment> </wicket:panel> diff --git a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.java b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.java index 3ac0eb01e8..5d9cf5ca90 100755 --- a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.java +++ b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.java @@ -4,6 +4,7 @@ import jakarta.inject.Inject; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.form.AjaxFormChoiceComponentUpdatingBehavior; import org.apache.wicket.ajax.markup.html.form.AjaxCheckBox; +import org.apache.wicket.AttributeModifier; import org.apache.wicket.extensions.markup.html.repeater.data.grid.ICellPopulator; import org.apache.wicket.extensions.markup.html.repeater.data.sort.SortOrder; import org.apache.wicket.extensions.markup.html.repeater.data.table.AbstractColumn; @@ -200,12 +201,19 @@ public class SupervisorMyProjectsPanel extends Panel { @Override public void populateItem(Item<ICellPopulator<Project>> item, String id, IModel<Project> projectModel) { - /* - item.add(new AbstractReadStatePanel(id, AbstractReadStatePanel.ShowReadStateTooltip.ENABLED) { + // Since table cell only can contain one item, we use Wicket Fragment here. It will contains two components, + // one for flag, one for unread messages counter. + + Fragment fragment = new Fragment(id, "readStateColumnMarkupId", SupervisorMyProjectsPanel.this); + + long msgCount = projectForumService.getUnreadThreadsCount(projectModel.getObject(), + SciProSession.get().getUser()); + boolean isRead = msgCount == 0; + + AbstractReadStatePanel readStatePanel = new AbstractReadStatePanel("flag") { @Override protected boolean isRead() { - return !projectForumService.hasUnreadThreads(projectModel.getObject(), - SciProSession.get().getUser()); + return isRead; } @Override @@ -213,36 +221,13 @@ public class SupervisorMyProjectsPanel extends Panel { setResponsePage(SupervisorThreadedForumPage.class, SupervisorThreadedForumPage.getPageParameters(projectModel.getObject())); } - }); - */ + }; - // WebMarkupContainer container = new WebMarkupContainer(id); - // container.setOutputMarkupId(true); -/* - container - */ - //container.add(new NumberOfMessagesPanel("counter")); + if (!isRead) { + readStatePanel.add(new AttributeModifier("title", getString("unread.msg"))); + } - //item.add(container); - - //boolean hasUnreadThreads = projectForumService.hasUnreadThreads(projectModel.getObject(), SciProSession.get().getUser()); - long msgCount = projectForumService.getUnreadThreadsCount(projectModel.getObject(), SciProSession.get().getUser()); - - // todo: reconsider name of this id, needs to be improved. - Fragment fragment = new Fragment(id, "parentMarkupId", SupervisorMyProjectsPanel.this); - - fragment.add(new AbstractReadStatePanel("flag", AbstractReadStatePanel.ShowReadStateTooltip.ENABLED) { - @Override - protected boolean isRead() { - return msgCount == 0; - } - - @Override - protected void onFlagClick(AjaxRequestTarget target) { - setResponsePage(SupervisorThreadedForumPage.class, - SupervisorThreadedForumPage.getPageParameters(projectModel.getObject())); - } - }); + fragment.add(readStatePanel); fragment.add(new NumberOfMessagesPanel("counter") { @Override diff --git a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.utf8.properties b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.utf8.properties index 17f454ad8c..e279982933 100644 --- a/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.utf8.properties +++ b/view/src/main/java/se/su/dsv/scipro/supervisor/panels/SupervisorMyProjectsPanel.utf8.properties @@ -12,3 +12,5 @@ ProjectStatus.COMPLETED= Completed SupervisorProjectNoteDisplay.COMPACT=Compact SupervisorProjectNoteDisplay.FULL=Full + +unread.msg=There are unread messages. \ No newline at end of file