Entity entity = DatabaseFilter.getInstance().createNewEntity();
populateFilterEntity(entity, aType, anExpression, aComments, aTag,
anArticleAction, aCommentAction);
- entity.setFieldValue("priority", "1");
+
+
+ String priority = "1";
+
+ if (filters.size() > 0) {
+ try {
+ String lastPriorityString = ((Filter) filters.get(filters.size()-1)).getEntity().getFieldValue("priority");
+ int lastPriority = Integer.parseInt(lastPriorityString);
+ priority = Integer.toString(lastPriority + 1);
+ }
+ catch (Exception e) {
+ }
+ }
+
+ entity.setFieldValue("priority", priority);
entity.setFieldValue("filter_group_id", getEntity().getId());
entity.insert();
return "";
}
+ public String moveFilterUp(String anId) {
+ Filter filter = getFilterForId(anId);
+ String priority = filter.getEntity().getFieldValue("priority");
+ int index = filters.indexOf(filter);
+ if (index>=1) {
+ Filter filterBefore= (Filter) filters.remove(index-1);
+ filters.add(index, filterBefore);
+ filter.getEntity().setFieldValue("priority", filterBefore.getEntity().getFieldValue("priority"));
+ filterBefore.getEntity().setFieldValue("priority", priority);
+ filter.getEntity().update();
+ filterBefore.getEntity().update();
+ }
+
+ return "";
+ }
+
+ public String moveFilterToTop(String anId) {
+ Filter filter = getFilterForId(anId);
+ String priority = filter.getEntity().getFieldValue("priority");
+ int index = filters.indexOf(filter);
+ if (index>0) {
+ filters.remove(index);
+ Filter filterBefore= (Filter) filters.get(0);
+ filters.add(0, filter);
+ filter.getEntity().setFieldValue("priority", filterBefore.getEntity().getFieldValue("priority"));
+ filterBefore.getEntity().setFieldValue("priority", priority);
+ filter.getEntity().update();
+ filterBefore.getEntity().update();
+ }
+
+ return "";
+ }
+
+ public String moveFilterDown(String anId) {
+ Filter filter = getFilterForId(anId);
+ String priority = filter.getEntity().getFieldValue("priority");
+ int index = filters.indexOf(filter);
+ if (index<filters.size()-1) {
+ Filter filterAfter = (Filter) filters.remove(index+1);
+ filters.add(index, filterAfter);
+ filter.getEntity().setFieldValue("priority", filterAfter.getEntity().getFieldValue("priority"));
+ filterAfter.getEntity().setFieldValue("priority", priority);
+ filter.getEntity().update();
+ filterAfter.getEntity().update();
+ }
+
+ return "";
+ }
+
+ public String moveFilterToBottom(String anId) {
+ Filter filter = getFilterForId(anId);
+ String priority = filter.getEntity().getFieldValue("priority");
+ int index = filters.indexOf(filter);
+ if (index>=0 && index<filters.size()-1) {
+ filters.remove(index);
+ Filter filterBefore= (Filter) filters.get(filters.size()-1);
+ filters.add(filters.size(), filter);
+ filter.getEntity().setFieldValue("priority", filterBefore.getEntity().getFieldValue("priority"));
+ filterBefore.getEntity().setFieldValue("priority", priority);
+ filter.getEntity().update();
+ filterBefore.getEntity().update();
+ }
+
+ return "";
+ }
+
+
public String getName() {
return entity.getFieldValue("name");
}
public synchronized void addFilterGroup(String aName) throws DatabaseExc {
Entity entity = DatabaseFilterGroup.getInstance().createNewEntity();
entity.setFieldValue("name", aName);
- entity.setFieldValue("priority", "1");
+
+ String priority = "1";
+
+ if (filterGroups.size() > 0) {
+ try {
+ String lastPriorityString = ((FilterGroup) filterGroups.get(filterGroups.size()-1)).getEntity().getFieldValue("priority");
+ int lastPriority = Integer.parseInt(lastPriorityString);
+ priority = Integer.toString(lastPriority + 1);
+ }
+ catch (Exception e) {
+ }
+ }
+ entity.setFieldValue("priority", priority);
entity.insert();
FilterGroup filterGroup = new FilterGroup(entity);
introduceFilterGroup(filterGroup);
}
+ public synchronized void moveFilterGroupUp(String anId) {
+ FilterGroup group = (FilterGroup) idToFilterGroup.get(anId);
+ String priority = group.getEntity().getFieldValue("priority");
+ int index = filterGroups.indexOf(group);
+ if (index>=1) {
+ FilterGroup groupBefore = (FilterGroup) filterGroups.remove(index-1);
+ filterGroups.add(index, groupBefore);
+ group.getEntity().setFieldValue("priority", groupBefore.getEntity().getFieldValue("priority"));
+ groupBefore.getEntity().setFieldValue("priority", priority);
+ group.getEntity().update();
+ groupBefore.getEntity().update();
+ }
+ }
+
+ public synchronized void moveFilterGroupDown(String anId) {
+ FilterGroup group = (FilterGroup) idToFilterGroup.get(anId);
+ String priority = group.getEntity().getFieldValue("priority");
+ int index = filterGroups.indexOf(group);
+ if (index<filterGroups.size()-1) {
+ FilterGroup groupAfter = (FilterGroup) filterGroups.remove(index+1);
+ filterGroups.add(index, groupAfter);
+ group.getEntity().setFieldValue("priority", groupAfter.getEntity().getFieldValue("priority"));
+ groupAfter.getEntity().setFieldValue("priority", priority);
+ group.getEntity().update();
+ groupAfter.getEntity().update();
+ }
+ }
+
public synchronized void deleteFilterGroup(String anId) {
FilterGroup filterGroup = getFilterGroupForId(anId);
aComments, aTag, anArticleAction, aCommentAction);
}
+ public synchronized String moveFilterUp(String aGroupId, String anId) {
+ return getFilterGroupForId(aGroupId).moveFilterUp(anId);
+ }
+
+ public synchronized String moveFilterDown(String aGroupId, String anId) {
+ return getFilterGroupForId(aGroupId).moveFilterDown(anId);
+ }
+
+ public synchronized String moveFilterToTop(String aGroupId, String anId) {
+ return getFilterGroupForId(aGroupId).moveFilterToTop(anId);
+ }
+
+ public synchronized String moveFilterToBottom(String aGroupId, String anId) {
+ return getFilterGroupForId(aGroupId).moveFilterToBottom(anId);
+ }
+
+
public FilterGroup getFilterGroupForId(String anId) {
FilterGroup result = (FilterGroup) idToFilterGroup.get(anId);
}
}
+ public void movefilterup(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String id=requestParser.getParameter("id");
+ String groupid=requestParser.getParameter("groupid");
+
+ MirGlobal.abuse().getFilterEngine().moveFilterUp(groupid, id);
+ listfilters(aRequest, aResponse);
+ }
+
+
+ public void movefilterdown(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String id=requestParser.getParameter("id");
+ String groupid=requestParser.getParameter("groupid");
+
+ MirGlobal.abuse().getFilterEngine().moveFilterDown(groupid, id);
+ listfilters(aRequest, aResponse);
+ }
+
+ public void movefiltertop(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String id=requestParser.getParameter("id");
+ String groupid=requestParser.getParameter("groupid");
+
+ MirGlobal.abuse().getFilterEngine().moveFilterToTop(groupid, id);
+ listfilters(aRequest, aResponse);
+ }
+
+ public void movefilterbottom(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String id=requestParser.getParameter("id");
+ String groupid=requestParser.getParameter("groupid");
+
+ MirGlobal.abuse().getFilterEngine().moveFilterToBottom(groupid, id);
+ listfilters(aRequest, aResponse);
+ }
+
public void deletefilter(HttpServletRequest aRequest, HttpServletResponse aResponse) {
HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
showfiltergroups(aRequest, aResponse);
}
+ public void movefiltergroupup(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String groupid=requestParser.getParameter("groupid");
+ MirGlobal.abuse().getFilterEngine().moveFilterGroupUp(groupid);
+
+ MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filtergroup:"+groupid, "filter group moved upwards");
+
+ showfiltergroups(aRequest, aResponse);
+ }
+
+ public void movefiltergroupdown(HttpServletRequest aRequest, HttpServletResponse aResponse) {
+ HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+
+ String groupid=requestParser.getParameter("groupid");
+ MirGlobal.abuse().getFilterEngine().moveFilterGroupDown(groupid);
+
+ MirGlobal.logAdminUsage(ServletHelper.getUser(aRequest), getName() + ":" + "filtergroup:"+groupid, "filter group moved downwards");
+
+ showfiltergroups(aRequest, aResponse);
+ }
+
public void showfilterconfiguration(HttpServletRequest aRequest, HttpServletResponse aResponse) {
showfiltergroups(aRequest, aResponse);
}