Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
Max Mecklin
/
Moya
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 0e48a8ea
authored
Feb 09, 2014
by
Antti Tönkyrä
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Further filtering logic
1 parent
61143b14
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
153 additions
and
26 deletions
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ActionLogBean.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ActionLogFacade.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ActionLogMessageTagFacade.java
code/MoyaBeansClient/ejbModule/fi/codecrew/moya/beans/ActionLogBeanLocal.java
code/MoyaDatabase/src/fi/codecrew/moya/model/ActionLogMessage.java
code/MoyaWeb/WebContent/actionlog/index.xhtml
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/actionlog/ActionLogCreateView.java
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/actionlog/ActionLogMessageView.java
code/MoyaBeans/ejbModule/fi/codecrew/moya/beans/ActionLogBean.java
View file @
0e48a8e
...
@@ -2,6 +2,7 @@ package fi.codecrew.moya.beans;
...
@@ -2,6 +2,7 @@ package fi.codecrew.moya.beans;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
javax.annotation.security.DeclareRoles
;
import
javax.annotation.security.DeclareRoles
;
...
@@ -64,14 +65,22 @@ public class ActionLogBean implements ActionLogBeanLocal {
...
@@ -64,14 +65,22 @@ public class ActionLogBean implements ActionLogBeanLocal {
alm
.
setMessage
(
message
);
alm
.
setMessage
(
message
);
alm
.
setUser
(
permissionBean
.
getCurrentUser
());
alm
.
setUser
(
permissionBean
.
getCurrentUser
());
alm
.
setLanEvent
(
permissionBean
.
getCurrentUser
().
getEvent
());
alm
.
setLanEvent
(
permissionBean
.
getCurrentUser
().
getEvent
());
alm
.
setTags
(
almts
);
actionLogFacade
.
saveToActionLog
(
alm
);
actionLogFacade
.
saveToActionLog
(
alm
);
}
}
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
@Deprecated
public
List
<
ActionLogMessage
>
getAllActionLogEvents
()
{
public
List
<
ActionLogMessage
>
getAllActionLogEvents
()
{
return
actionLogFacade
.
getAllSortedByTimestamp
(
permissionBean
.
getCurrentUser
().
getEvent
());
return
actionLogFacade
.
getAllSortedByTimestamp
(
permissionBean
.
getCurrentUser
().
getEvent
());
}
}
@Override
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
public
List
<
ActionLogMessage
>
getAllActionLogEventsByFilter
(
List
<
ActionLogMessageTag
>
filterTags
)
{
return
actionLogFacade
.
getAllSortedByTimestampFiltered
(
permissionBean
.
getCurrentUser
().
getEvent
(),
filterTags
);
}
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
public
List
<
Role
>
getAssignableRoles
()
{
public
List
<
Role
>
getAssignableRoles
()
{
...
@@ -83,6 +92,12 @@ public class ActionLogBean implements ActionLogBeanLocal {
...
@@ -83,6 +92,12 @@ public class ActionLogBean implements ActionLogBeanLocal {
if
(!
alm
.
getLanEvent
().
equals
(
permissionBean
.
getCurrentUser
().
getEvent
()))
return
null
;
if
(!
alm
.
getLanEvent
().
equals
(
permissionBean
.
getCurrentUser
().
getEvent
()))
return
null
;
return
actionLogFacade
.
getActionLogMessageResponses
(
alm
);
return
actionLogFacade
.
getActionLogMessageResponses
(
alm
);
}
}
@Override
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
public
List
<
ActionLogMessageTag
>
getAllTags
()
{
return
actionLogMessageTagFacade
.
getAllTags
(
eventBean
.
getCurrentEvent
());
}
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
public
void
addActionLogMessageResponse
(
ActionLogMessage
alm
,
String
message
,
ActionLogMessageState
state
)
{
public
void
addActionLogMessageResponse
(
ActionLogMessage
alm
,
String
message
,
ActionLogMessageState
state
)
{
...
@@ -149,7 +164,9 @@ public class ActionLogBean implements ActionLogBeanLocal {
...
@@ -149,7 +164,9 @@ public class ActionLogBean implements ActionLogBeanLocal {
return
almts
;
return
almts
;
}
}
private
ActionLogMessageTag
getActionLogMessageTagByString
(
String
s
)
{
@Override
@RolesAllowed
(
ContentPermission
.
S_MANAGE_ACTIONLOG
)
public
ActionLogMessageTag
getActionLogMessageTagByString
(
String
s
)
{
s
=
s
.
toLowerCase
();
s
=
s
.
toLowerCase
();
ActionLogMessageTag
almt
=
null
;
ActionLogMessageTag
almt
=
null
;
...
...
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ActionLogFacade.java
View file @
0e48a8e
package
fi
.
codecrew
.
moya
.
facade
;
package
fi
.
codecrew
.
moya
.
facade
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
javax.ejb.LocalBean
;
import
javax.ejb.LocalBean
;
...
@@ -12,6 +13,7 @@ import javax.persistence.criteria.Root;
...
@@ -12,6 +13,7 @@ import javax.persistence.criteria.Root;
import
fi.codecrew.moya.model.ActionLogMessageResponse_
;
import
fi.codecrew.moya.model.ActionLogMessageResponse_
;
import
fi.codecrew.moya.model.ActionLogMessage
;
import
fi.codecrew.moya.model.ActionLogMessage
;
import
fi.codecrew.moya.model.ActionLogMessageResponse
;
import
fi.codecrew.moya.model.ActionLogMessageResponse
;
import
fi.codecrew.moya.model.ActionLogMessageTag
;
import
fi.codecrew.moya.model.ActionLogMessage_
;
import
fi.codecrew.moya.model.ActionLogMessage_
;
import
fi.codecrew.moya.model.LanEvent
;
import
fi.codecrew.moya.model.LanEvent
;
...
@@ -24,6 +26,7 @@ public class ActionLogFacade extends IntegerPkGenericFacade<ActionLogMessage> {
...
@@ -24,6 +26,7 @@ public class ActionLogFacade extends IntegerPkGenericFacade<ActionLogMessage> {
super
(
ActionLogMessage
.
class
);
super
(
ActionLogMessage
.
class
);
}
}
@Deprecated
public
List
<
ActionLogMessage
>
getAllSortedByTimestamp
(
LanEvent
event
)
{
public
List
<
ActionLogMessage
>
getAllSortedByTimestamp
(
LanEvent
event
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
ActionLogMessage
>
cq
=
cb
.
createQuery
(
ActionLogMessage
.
class
);
CriteriaQuery
<
ActionLogMessage
>
cq
=
cb
.
createQuery
(
ActionLogMessage
.
class
);
...
@@ -56,4 +59,35 @@ public class ActionLogFacade extends IntegerPkGenericFacade<ActionLogMessage> {
...
@@ -56,4 +59,35 @@ public class ActionLogFacade extends IntegerPkGenericFacade<ActionLogMessage> {
getEm
().
persist
(
almr
);
getEm
().
persist
(
almr
);
getEm
().
flush
();
getEm
().
flush
();
}
}
public
List
<
ActionLogMessage
>
getAllSortedByTimestampFiltered
(
LanEvent
event
,
List
<
ActionLogMessageTag
>
filterTags
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
ActionLogMessage
>
cq
=
cb
.
createQuery
(
ActionLogMessage
.
class
);
Root
<
ActionLogMessage
>
root
=
cq
.
from
(
ActionLogMessage
.
class
);
cq
.
where
(
cb
.
equal
(
root
.
get
(
ActionLogMessage_
.
lanEvent
),
event
)
);
cq
.
orderBy
(
cb
.
desc
(
root
.
get
(
"time"
)));
// todo: filter using jpa..
TypedQuery
<
ActionLogMessage
>
tq
=
getEm
().
createQuery
(
cq
);
List
<
ActionLogMessage
>
allResults
=
tq
.
getResultList
();
List
<
ActionLogMessage
>
filteredResults
=
new
ArrayList
<>();
boolean
containsTag
=
false
;
for
(
ActionLogMessage
alm
:
allResults
)
{
for
(
ActionLogMessageTag
almt
:
alm
.
getTags
())
{
if
(
filterTags
.
contains
(
almt
))
{
containsTag
=
true
;
break
;
}
}
if
(
containsTag
)
{
filteredResults
.
add
(
alm
);
containsTag
=
false
;
}
}
return
filteredResults
;
}
}
}
code/MoyaBeans/ejbModule/fi/codecrew/moya/facade/ActionLogMessageTagFacade.java
View file @
0e48a8e
package
fi
.
codecrew
.
moya
.
facade
;
package
fi
.
codecrew
.
moya
.
facade
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.ejb.LocalBean
;
import
javax.ejb.LocalBean
;
import
javax.ejb.Stateless
;
import
javax.ejb.Stateless
;
import
javax.persistence.TypedQuery
;
import
javax.persistence.TypedQuery
;
...
@@ -40,4 +43,20 @@ public class ActionLogMessageTagFacade extends IntegerPkGenericFacade<ActionLogM
...
@@ -40,4 +43,20 @@ public class ActionLogMessageTagFacade extends IntegerPkGenericFacade<ActionLogM
}
}
return
almt
;
return
almt
;
}
}
public
List
<
ActionLogMessageTag
>
getAllTags
(
LanEvent
event
)
{
CriteriaBuilder
cb
=
getEm
().
getCriteriaBuilder
();
CriteriaQuery
<
ActionLogMessageTag
>
cq
=
cb
.
createQuery
(
ActionLogMessageTag
.
class
);
Root
<
ActionLogMessageTag
>
root
=
cq
.
from
(
ActionLogMessageTag
.
class
);
cq
.
where
(
cb
.
equal
(
root
.
get
(
ActionLogMessageTag_
.
event
),
event
)
);
TypedQuery
<
ActionLogMessageTag
>
tq
=
getEm
().
createQuery
(
cq
);
try
{
return
tq
.
getResultList
();
}
catch
(
Exception
e
)
{
return
new
ArrayList
<
ActionLogMessageTag
>();
}
}
}
}
code/MoyaBeansClient/ejbModule/fi/codecrew/moya/beans/ActionLogBeanLocal.java
View file @
0e48a8e
package
fi
.
codecrew
.
moya
.
beans
;
package
fi
.
codecrew
.
moya
.
beans
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
javax.ejb.Local
;
import
javax.ejb.Local
;
...
@@ -6,6 +7,7 @@ import javax.ejb.Local;
...
@@ -6,6 +7,7 @@ import javax.ejb.Local;
import
fi.codecrew.moya.enums.ActionLogMessageState
;
import
fi.codecrew.moya.enums.ActionLogMessageState
;
import
fi.codecrew.moya.model.ActionLogMessage
;
import
fi.codecrew.moya.model.ActionLogMessage
;
import
fi.codecrew.moya.model.ActionLogMessageResponse
;
import
fi.codecrew.moya.model.ActionLogMessageResponse
;
import
fi.codecrew.moya.model.ActionLogMessageTag
;
import
fi.codecrew.moya.model.Role
;
import
fi.codecrew.moya.model.Role
;
@Local
@Local
...
@@ -16,4 +18,8 @@ public interface ActionLogBeanLocal {
...
@@ -16,4 +18,8 @@ public interface ActionLogBeanLocal {
public
List
<
ActionLogMessageResponse
>
getActionLogMessageResponses
(
ActionLogMessage
id
);
public
List
<
ActionLogMessageResponse
>
getActionLogMessageResponses
(
ActionLogMessage
id
);
public
void
addActionLogMessageResponse
(
ActionLogMessage
alm
,
String
message
,
ActionLogMessageState
state
);
public
void
addActionLogMessageResponse
(
ActionLogMessage
alm
,
String
message
,
ActionLogMessageState
state
);
public
void
createActionLogEvent
(
String
message
,
boolean
isTask
);
public
void
createActionLogEvent
(
String
message
,
boolean
isTask
);
List
<
ActionLogMessageTag
>
getAllTags
();
ActionLogMessageTag
getActionLogMessageTagByString
(
String
s
);
List
<
ActionLogMessage
>
getAllActionLogEventsByFilter
(
List
<
ActionLogMessageTag
>
filterTags
);
}
}
code/MoyaDatabase/src/fi/codecrew/moya/model/ActionLogMessage.java
View file @
0e48a8e
...
@@ -58,7 +58,7 @@ public class ActionLogMessage extends GenericEntity {
...
@@ -58,7 +58,7 @@ public class ActionLogMessage extends GenericEntity {
@JoinColumn
(
name
=
"actionlog_message_tag_id"
,
referencedColumnName
=
ActionLogMessageTag
.
ID_COLUMN
)
@JoinColumn
(
name
=
"actionlog_message_tag_id"
,
referencedColumnName
=
ActionLogMessageTag
.
ID_COLUMN
)
}
}
)
)
private
List
<
ActionLogMessageTag
>
parent
s
=
new
ArrayList
<
ActionLogMessageTag
>();
private
List
<
ActionLogMessageTag
>
tag
s
=
new
ArrayList
<
ActionLogMessageTag
>();
@Column
(
name
=
"state"
,
nullable
=
true
)
@Column
(
name
=
"state"
,
nullable
=
true
)
@Enumerated
(
EnumType
.
STRING
)
@Enumerated
(
EnumType
.
STRING
)
...
@@ -112,4 +112,11 @@ public class ActionLogMessage extends GenericEntity {
...
@@ -112,4 +112,11 @@ public class ActionLogMessage extends GenericEntity {
this
.
actionLogMessageResponses
=
actionLogMessageResponses
;
this
.
actionLogMessageResponses
=
actionLogMessageResponses
;
}
}
public
List
<
ActionLogMessageTag
>
getTags
()
{
return
tags
;
}
public
void
setTags
(
List
<
ActionLogMessageTag
>
tags
)
{
this
.
tags
=
tags
;
}
}
}
code/MoyaWeb/WebContent/actionlog/index.xhtml
View file @
0e48a8e
...
@@ -15,24 +15,30 @@
...
@@ -15,24 +15,30 @@
<p>
#{i18n['actionlog.messagelist.description']}
</p>
<p>
#{i18n['actionlog.messagelist.description']}
</p>
<h:form
id=
"actionlog_create"
>
<h:form
id=
"actionlog_create"
>
<h2>
#{i18n['actionlog.create.header']}
</h2>
<h2>
#{i18n['actionlog.create.header']}
</h2>
<h:messages
/>
<p:messages
/>
<div
class=
"row"
>
<h:panelGrid
columns=
"2"
>
<h3
class=
"actionlog_create_message"
>
#{i18n['actionlog.create.message']}
</h3>
<h:panelGrid
columns=
"3"
>
<h3
class=
"actionlog_create_istask"
>
#{i18n['actionlog.create.taskradio']}
</h3>
<h:outputText
value=
"#{i18n['actionlog.create.message']}"
/>
</div>
<h:outputText
value=
"#{i18n['actionlog.create.taskradio']}"
/>
<h:outputText
/>
<div
class=
"row"
>
<div
class=
"actionlog_create_message"
>
<p:inputText
value=
"#{actionLogCreateView.message}"
/>
<h:inputText
value=
"#{actionLogCreateView.message}"
/>
<p:selectBooleanCheckbox
value=
"#{actionLogCreateView.task}"
/>
</div>
<h:commandButton
class=
"sendbutton"
action=
"#{actionLogCreateView.send}"
value=
"#{i18n['actionlog.create.submitbutton']}"
/>
</h:panelGrid>
<div
class=
"actionlog_create_istask"
>
<h:selectBooleanCheckbox
value=
"#{actionLogCreateView.task}"
/>
<h:panelGrid
columns=
"1"
>
</div>
<p:tagCloud
model=
"#{actionLogMessageView.tagCloud}"
>
<p:ajax
event=
"select"
listener=
"#{actionLogMessageView.onTagSelect}"
update=
"@form"
/>
<h:commandButton
class=
"sendbutton"
action=
"#{actionLogCreateView.send}"
value=
"#{i18n['actionlog.create.submitbutton']}"
>
</p:tagCloud>
</h:commandButton>
</div>
<h:panelGroup
layout=
"block"
>
<ui:repeat
id=
"selectedtags"
var=
"tag"
value=
"#{actionLogMessageView.activeTags}"
>
<span
style=
"border: 1px solid #0af; display: inline-block; padding: 2px"
>
#{tag.tag}
</span>
</ui:repeat>
</h:panelGroup>
</h:panelGrid>
</h:panelGrid>
</h:form>
</h:form>
<div
class=
"clearfix"
></div>
<div
class=
"clearfix"
></div>
<h2>
#{i18n['actionlog.tasklist.header']}
</h2>
<h2>
#{i18n['actionlog.tasklist.header']}
</h2>
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/actionlog/ActionLogCreateView.java
View file @
0e48a8e
...
@@ -22,7 +22,6 @@ public class ActionLogCreateView extends GenericCDIView {
...
@@ -22,7 +22,6 @@ public class ActionLogCreateView extends GenericCDIView {
@Size
(
min
=
4
,
message
=
"{actionlog.message.tooshort}"
)
@Size
(
min
=
4
,
message
=
"{actionlog.message.tooshort}"
)
private
String
message
;
private
String
message
;
private
Role
role
;
private
boolean
task
;
private
boolean
task
;
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
...
...
code/MoyaWeb/src/fi/codecrew/moya/web/cdiview/actionlog/ActionLogMessageView.java
View file @
0e48a8e
...
@@ -4,9 +4,16 @@ import java.util.ArrayList;
...
@@ -4,9 +4,16 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
javax.ejb.EJB
;
import
javax.ejb.EJB
;
import
javax.enterprise.context.ConversationScoped
;
import
javax.enterprise.context.RequestScoped
;
import
javax.enterprise.context.RequestScoped
;
import
javax.inject.Named
;
import
javax.inject.Named
;
import
org.primefaces.event.SelectEvent
;
import
org.primefaces.model.tagcloud.DefaultTagCloudItem
;
import
org.primefaces.model.tagcloud.DefaultTagCloudModel
;
import
org.primefaces.model.tagcloud.TagCloudItem
;
import
org.primefaces.model.tagcloud.TagCloudModel
;
import
fi.codecrew.moya.beans.ActionLogBeanLocal
;
import
fi.codecrew.moya.beans.ActionLogBeanLocal
;
import
fi.codecrew.moya.enums.apps.ContentPermission
;
import
fi.codecrew.moya.enums.apps.ContentPermission
;
import
fi.codecrew.moya.model.ActionLogMessage
;
import
fi.codecrew.moya.model.ActionLogMessage
;
...
@@ -14,20 +21,35 @@ import fi.codecrew.moya.model.ActionLogMessageTag;
...
@@ -14,20 +21,35 @@ import fi.codecrew.moya.model.ActionLogMessageTag;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
import
fi.codecrew.moya.web.cdiview.GenericCDIView
;
@Named
@Named
@
Request
Scoped
@
Conversation
Scoped
public
class
ActionLogMessageView
extends
GenericCDIView
{
public
class
ActionLogMessageView
extends
GenericCDIView
{
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
private
boolean
updateEnabled
=
true
;
private
boolean
updateEnabled
=
true
;
private
ArrayList
<
ActionLogMessageTag
>
selectedTags
;
private
TagCloudModel
tagCloud
=
null
;
private
List
<
ActionLogMessageTag
>
activeTags
=
null
;
@EJB
@EJB
private
transient
ActionLogBeanLocal
actionLogBean
;
private
transient
ActionLogBeanLocal
actionLogBean
;
public
void
initView
()
{
public
void
initView
()
{
super
.
requirePermissions
(
ContentPermission
.
MANAGE_ACTIONLOG
);
if
(
super
.
requirePermissions
(
ContentPermission
.
MANAGE_ACTIONLOG
))
{
this
.
beginConversation
();
if
(
tagCloud
==
null
||
activeTags
==
null
)
{
tagCloud
=
new
DefaultTagCloudModel
();
for
(
ActionLogMessageTag
almt
:
actionLogBean
.
getAllTags
())
{
tagCloud
.
addTag
(
new
DefaultTagCloudItem
(
almt
.
getTag
(),
1
));
}
activeTags
=
new
ArrayList
<>();
}
}
}
}
public
boolean
getUpdateEnabled
()
{
public
boolean
getUpdateEnabled
()
{
return
updateEnabled
;
return
updateEnabled
;
}
}
...
@@ -37,6 +59,23 @@ public class ActionLogMessageView extends GenericCDIView {
...
@@ -37,6 +59,23 @@ public class ActionLogMessageView extends GenericCDIView {
}
}
public
List
<
ActionLogMessage
>
getMessages
()
{
public
List
<
ActionLogMessage
>
getMessages
()
{
return
actionLogBean
.
getAllActionLogEvents
();
return
actionLogBean
.
getAllActionLogEventsByFilter
(
activeTags
);
}
public
TagCloudModel
getTagCloud
()
{
return
tagCloud
;
}
public
void
onTagSelect
(
SelectEvent
event
)
{
System
.
err
.
println
(
"T+"
+
activeTags
.
size
());
TagCloudItem
item
=
(
TagCloudItem
)
event
.
getObject
();
ActionLogMessageTag
almt
=
actionLogBean
.
getActionLogMessageTagByString
(
item
.
getLabel
());
if
(!
activeTags
.
contains
(
almt
))
activeTags
.
add
(
almt
);
}
public
List
<
ActionLogMessageTag
>
getActiveTags
()
{
return
this
.
activeTags
;
}
}
}
}
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment