19 package org.turro.dossier.www;
21 import java.util.List;
22 import org.turro.string.Strings;
23 import org.turro.attach.www.AttachCtrl;
24 import org.turro.auth.Authentication;
25 import org.turro.collections.Item;
26 import org.turro.dossier.db.DossierPU;
27 import org.turro.dossier.dossier.DossierCounter;
28 import org.turro.dossier.entity.Category;
29 import org.turro.dossier.entity.DossierStatus;
30 import org.turro.dossier.entity.DossierType;
31 import org.turro.dossier.search.CategoryResults;
32 import org.turro.elephant.context.Application;
33 import org.turro.elephant.context.ElephantContext;
34 import org.turro.elephant.context.IConstructor;
35 import org.turro.elephant.db.WhereClause;
36 import org.turro.elephant.util.Images;
37 import org.turro.entities.Entities;
38 import org.turro.file.util.FileAttach;
39 import org.turro.jpa.content.TreeDaoContentIterator;
40 import org.turro.marker.ElephantMarker;
41 import org.turro.path.Path;
42 import org.turro.plugin.contacts.IContact;
43 import org.turro.polls.PollsCtrl;
44 import org.turro.util.Arrays;
45 import org.turro.visual.CategoryVisualElements;
46 import org.turro.visual.VisualElements;
47 import org.turro.www.commentit.CommentItCtrl;
48 import org.turro.www.describeit.DescribeItCtrl;
49 import org.turro.www.starit.StarItCtrl;
50 import org.turro.www.voteit.VoteItCtrl;
58 private final String categories, types[], status[];
62 this.categories = categories;
72 if(Strings.isBlank(currPath)) {
75 wc.
addClause(
"and g.fullDescription = :pathName");
83 return value instanceof String ?
getDao().find(
Category.class, Long.valueOf((String) value)) : value;
91 if(Strings.isBlank(currPath)) {
92 if(
"all".equals(categories)) {
95 wc.
addClause(
"and g.id in (" + categories +
")");
98 wc.
addClause(
"and g.parent.fullDescription = :pathName");
115 protected Object
getId(Object item) {
136 if(path ==
null || selected ==
null) {
138 }
else if(path.equals(selected)) {
140 }
else if(selected.startsWith(path)) {
150 if(Strings.isBlank(selPath) && !items.isEmpty()) {
151 selPath = ((
Category) ((Item) items.iterator().next()).getValue()).getPath();
216 if(!Arrays.isEmpty(types, status)) {
219 wc.
addClause(
"where d.uniquePath like concat(g.uniquePath, '/%')");
220 if(!Arrays.isEmpty(types)) {
222 wc.
addNamedValue(
"types", Arrays.asList(types).map(t -> typeValue((String) t)));
224 if(!Arrays.isEmpty(status)) {
225 wc.
addClause(
"and d.status in (:status)");
226 wc.
addNamedValue(
"status", Arrays.asList(status).map(s -> statusValue((String) s)));
232 private DossierType typeValue(String name) {
233 return DossierType.valueOf(name);
236 private DossierStatus statusValue(String name) {
237 return DossierStatus.valueOf(name);
static IContact getIContact()
static String getObjectPath(Object object)
static String getPathToFullDescription(String path)
static void addParticipantCategoryAffiliance(WhereClause wc, String sep, String idContact, String categoryField)
Object doFilesCtrl(Object e)
String getFolderImageSrc()
Object doPollsCtrl(Object e)
Object doVotesCtrl(Object e)
Object doDescriptionsCtrl(Object e)
Object getEntity(Object value)
void prepareItem(ElephantMarker marker, Object item)
VisualElements loadVisuals()
CategoriesTree(IConstructor constructor, String context, IContact contact, String categories, String types[], String status[])
Object getId(Object item)
WhereClause getLeafClause(String currPath)
Object doInterestCtrl(Object e)
WhereClause getItemClause(String currPath)
void prepareTree(ElephantMarker marker, List< Item< Object, Object >> items)
String getCssClass(Item item)
WhereClause getChildrenClause(String currPath)
Object doAttachmentsCtrl(Object e)
String getImageSrc(Item item)
Object doCommentsCtrl(Object e)
Object getParentId(Object item)
boolean isInRole(String role)
static Application getApplication()
static String getRootWebPath()
void addClause(String clause)
void addNamedValue(String name, Object value)
static String getImage(String image)
static IElephantEntity getController(String path)
void setSelectedItem(String value)
Object put(Object key, Object value)
static CategoryVisualElements load()
Object configureCtrl(Object ctrl, IContact contact)