Forum Message UI Improvement (Thesis Board #3470) #61
@ -26,4 +26,6 @@ public interface ProjectForumService {
|
||||
List<Pair<ProjectThread, ForumPost>> latestPost(Project a, int amount);
|
||||
|
||||
boolean hasUnreadThreads(Project project, User user);
|
||||
|
||||
int getUnreadThreadsCount(Project project, User user);
|
||||
}
|
||||
|
@ -106,6 +106,7 @@ public class ProjectForumServiceImpl implements ProjectForumService {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getUnreadThreadsCount(Project project, User user) {
|
||||
List<ProjectThread> threads = getThreads(project);
|
||||
int count = 0;
|
||||
|
@ -1,13 +1,31 @@
|
||||
package se.su.dsv.scipro.forum.panels;
|
||||
|
||||
import org.apache.wicket.markup.ComponentTag;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.Model;
|
||||
|
||||
public class NumberOfMessagesPanel extends Panel {
|
||||
public abstract class NumberOfMessagesPanel extends Panel {
|
||||
|
||||
private Model<String> model = Model.of("");
|
||||
|
||||
public NumberOfMessagesPanel(final String id) {
|
||||
super(id);
|
||||
|
||||
add(new Label("msgCount", " (0)"));
|
||||
add(new Label("msgCount", model));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onComponentTag(ComponentTag tag) {
|
||||
super.onComponentTag(tag);
|
||||
|
||||
int count = getMessageCount();
|
||||
|
||||
if (count > 0) {
|
||||
model.setObject("(" + count + ")");
|
||||
}
|
||||
}
|
||||
|
||||
public abstract int getMessageCount();
|
||||
}
|
||||
|
@ -214,27 +214,27 @@ public class SupervisorMyProjectsPanel extends Panel {
|
||||
SupervisorThreadedForumPage.getPageParameters(projectModel.getObject()));
|
||||
}
|
||||
});
|
||||
|
||||
*/
|
||||
|
||||
|
||||
//WebMarkupContainer container = new WebMarkupContainer(id);
|
||||
//container.setOutputMarkupId(true);
|
||||
// WebMarkupContainer container = new WebMarkupContainer(id);
|
||||
// container.setOutputMarkupId(true);
|
||||
/*
|
||||
container
|
||||
*/
|
||||
//container.add(new NumberOfMessagesPanel("counter"));
|
||||
|
||||
//item.add(container);
|
||||
// todo: reconsider name of this id, needs to be improved.
|
||||
|
||||
//boolean hasUnreadThreads = projectForumService.hasUnreadThreads(projectModel.getObject(), SciProSession.get().getUser());
|
||||
int 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 !projectForumService.hasUnreadThreads(projectModel.getObject(),
|
||||
SciProSession.get().getUser());
|
||||
return msgCount == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -243,7 +243,13 @@ public class SupervisorMyProjectsPanel extends Panel {
|
||||
SupervisorThreadedForumPage.getPageParameters(projectModel.getObject()));
|
||||
}
|
||||
});
|
||||
fragment.add(new NumberOfMessagesPanel("counter"));
|
||||
|
||||
fragment.add(new NumberOfMessagesPanel("counter") {
|
||||
@Override
|
||||
public int getMessageCount() {
|
||||
return msgCount;
|
||||
}
|
||||
});
|
||||
|
||||
item.add(fragment);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user