From f895fd34a8d107fbdc9f1188330f422b2fd588f2 Mon Sep 17 00:00:00 2001 From: zapata Date: Mon, 26 Dec 2005 00:28:52 +0000 Subject: [PATCH] up/down/top/bottom implemented for filters and filter groups --- source/mircoders/abuse/FilterEngine.java | 142 ++++++++++++++++++++++- source/mircoders/servlet/ServletModuleAbuse.java | 63 ++++++++++ 2 files changed, 203 insertions(+), 2 deletions(-) diff --git a/source/mircoders/abuse/FilterEngine.java b/source/mircoders/abuse/FilterEngine.java index 4032102e..392a9128 100755 --- a/source/mircoders/abuse/FilterEngine.java +++ b/source/mircoders/abuse/FilterEngine.java @@ -254,7 +254,21 @@ public class FilterEngine { 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(); @@ -264,6 +278,73 @@ public class FilterEngine { 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=0 && index 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