<%-- #RevizeProperties USE REVIZE MENU (DOCUMENT PROPERTIES) TO EDIT DATA BELOW: status=edit options= server=localhost:8080 projectName=plugins label=calendar_calendar_delete location=calendar_app/calendar_lists/calendar_calendar_delete.jsp version=21 docType=template subType=unique moduleName= fieldName= channels=revize| description= --%><%-- #BeginRZ-PageHeader --%> <%@ page language="java" %> <%@ include file = "/util/setup_editlist_header.jsp" %> <%-- #EndRZ-PageHeader --%> Delete Mapping Records <%-- ___________________________________________________________________________________ Delete mapping table records. For details on overall mapping strategy, see: calendar_db_data.rzt Mapping must be deleted when any records is deleted: groups, calendars, events editlist pages plus event detail NOTE: in frame version filename was: calendar_calendar_delete.jsp ___________________________________________________________________________________ --%> <%@ include file="/plugins/calendar/calendar3.head_version_include.jsp" %><%@ include file="/util/cachecontrol.jsp" %><%-- //-------------------------------------------------------------------------------\\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DW use only (below tags NOT published); required files loaded during page setup * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * --%><% if (false) { %> <% } %><%-- \\-------------------------------------------------------------------------------// --%><% /**********************************/ /*BOOKMARK Page specific JSP Code*/ /********************************/ LOADING = "Deleting Records from Database..."; %><%@ page import = "java.util.Vector, contentimporter.Importer" %><% boolean nodebug = request.getParameter("nodebug") != null; if (nodebug) debug = false; //override debug for this page // INPUT: returnurl = StringUtils.getParameter(request,"returnurl"); groupid = StringUtils.getParameter(request,"groupid"); calendarid = StringUtils.getParameter(request,"calendarid"); eventid = StringUtils.getParameter(request,"eventid"); if (eventid.length() > 0) event_calendarid = ""; else { filter = "_recordid=" + eventid; event_calendarid = rz.fetch("calendar_events","calendarid","",filter); event_begin_date = rz.fetch("calendar_events","begin_date","",filter); } //too risky on url calendarname = ""; eventname = ""; //calendarname = StringUtils.getParameter(request,"calendarname"); //eventname = StringUtils.getParameter(request,"eventname"); // OUTPUT variables (used in html) notes = ""; errMsg = ""; calendarCount = 0; eventCount = 0; mappingCount = 0; requestDesc = ""; // work variables (shared with formatDisplay) calendarNames = new HashMap(); //key is calendarid eventNames = new HashMap(); //key is eventid filter = ""; // addition work variables String list_calendarid = ""; String list_eventid = ""; boolean isDeleted; String calidsDeletedMsg = ","; String calidsDeletedMsgFull = ""; String eventsDeletedMsg = ","; String eventsDeletedMsgFull = ""; String mappingsDeletedMsg = ","; String mappingsDeletedMsgFull = ""; Vector calidsDeleted = new Vector(); Vector eventsDeleted = new Vector(); Vector mappingsDeleted = new Vector(); %><%! // INPUT: String returnurl; String groupid; String calendarid; String event_calendarid; String event_begin_date; String calendarname; String eventid; String eventname; // OUTPUT variables String notes; String errMsg; String requestDesc; int calendarCount; int eventCount; int mappingCount; // work variables (shared with formatDisplay) String filter; int count; HashMap calendarNames; HashMap eventNames; /** returns formatted calendarid, eventid or mapping recordid * if multiple calendars being deleted, calendar name & id also displayed . * only ids are displayed after the first few events. **/ String formatDisplay(String calid) { return formatDisplay(calid, null, null); } String formatDisplay(String calid, String evtid) { return formatDisplay(calid, evtid, null); } String formatDisplay(String calid, String evtid, String mapid) { String html = ""; String calendarDisplay = ""; String eventDisplay = ""; // show calendar id/name when deleting events from multiple calendars calendarDisplay = ""; if (calendarid.length() == 0) //single calendar id NOT specified { calendarDisplay = calid; if (calendarNames.get(calid) != null && count <= 10) calendarDisplay = calendarNames.get(calid) + "[" + calendarDisplay + "]"; } eventDisplay = ""; if (evtid != null) { eventDisplay = evtid; if (eventNames.get(evtid) != null && count <= 10) { eventDisplay = eventNames.get(evtid) + ""; if (eventDisplay.length() > 15) eventDisplay = eventDisplay.substring(0,15) + "..."; eventDisplay = eventDisplay.trim() + "[" + evtid + "]"; } } html = calendarDisplay; if (evtid != null) html += (html.length() > 0 ? ":" : "") + eventDisplay; if (mapid != null) html += ":" + mapid; html += ", "; return html; } String trim(String msg) { if (msg.endsWith(", ")) msg = msg.substring(0,msg.length()-2); return msg; } %><% //-------------------------------------------------------------------- // Always Scan CALENDAR_NAMES for calendar names // build list of ids to delete if groupid specified (NOT complete) //-------------------------------------------------------------------- if (eventid.length() == 0 && calendarid.length() > 0) //calendar record is aleady deleted { calidsDeletedMsg += calendarid + ","; calendarNames.put(calendarid,calendarname); //for display } else { count = 0; filter = (groupid.length() > 0) ? "calendar_names.groupid=" + groupid : ""; rz.listsetup("calendar_names", "noemptylistmessage", filter, ""); while ( rz.listnext() ) { if (rz.listindex < 0) break; rz.fetch("calendar_names","calendar_name"); if (calendarid.length() > 0 && calendarname.length() == 0) calendarname = rz.content; calendarNames.put(rz.recordid,rz.content); // not deleting multiple calendars if (calendarid.length() > 0 || eventid.length() > 0) continue; calendarCount++; calidsDeleted.addElement(new Integer(rz.recordid)); calidsDeletedMsg += rz.content + ","; calidsDeletedMsgFull += rz.content + "[" + rz.recordid + "], "; } calidsDeletedMsgFull = trim(calidsDeletedMsgFull); } //-------------------------------------------------------------------- // Scan CALENDAR_EVENTS for events belonging to any deleted calendar //-------------------------------------------------------------------- if (eventid.length() > 0) //event record is already deleted { eventsDeletedMsg += eventname + ","; eventNames.put(eventid,eventname); //for display mappingsDeletedMsgFull += "Event Name[eventid]:mapid
"; } else { count = 0; // use filter when deleting single calendar filter = (calendarid.length() > 0) ? "calendarid=" + calendarid : ""; rz.listsetup("calendar_events", "noemptylistmessage", filter, ""); while ( rz.listnext() ) { if (rz.listindex < 0) break; isDeleted = false; list_calendarid = rz.fetch("calendar_events", "calendarid"); //----- if deleting this event if (isDeleted) { eventCount++; eventsDeleted.addElement(new Integer(rz.recordid)); eventsDeletedMsg += rz.recordid + ","; //----- format deleted event id for display // test for when deleting single event; with filter, always true if (eventid.length() > 0) { isDeleted = true; } // test for when deleting single calendar; with filter, always true else if (calendarid.length() > 0) { isDeleted = true; } // test for when deleting multiple calendars (and their events) else if (groupid.length() > 0) { if (calidsDeletedMsg.indexOf("," + list_calendarid + ",") != -1) isDeleted = true; } if (count++ > 10) { eventname = rz.fetch("calendar_events", "event_name"); eventNames.put(rz.recordid,eventname); } eventsDeletedMsgFull += formatDisplay(list_calendarid, rz.recordid) + ", "; } } eventsDeletedMsgFull = trim(eventsDeletedMsgFull); } //-------------------------------------------------------------------- // Scan CALENDAR_MAPPING for deleted events //-------------------------------------------------------------------- filter = ""; if (eventid.length() > 0) filter = "eventid=" + eventid; else if (calendarid.length() > 0) filter = "calendarid=" + calendarid; rz.listsetup("calendar_mapping", "noemptylistmessage", filter, ""); while ( rz.listnext() ) { if (rz.listindex < 0) break; //> isDeleted = false; list_calendarid = rz.fetch("calendar_mapping", "calendarid"); list_eventid = rz.fetch("calendar_mapping", "eventid"); // test for when deleting single event; // with filter, always true if (eventid.length() > 0) { isDeleted = true; } // test for when deleting single calendar (and its events) else if (calendarid.length() > 0) { if (calendarid.equals(list_calendarid)) isDeleted = true; } // test for when deleting multiple calendars (and their events) else if (groupid.length() > 0) { if (eventsDeletedMsg.indexOf(","+rz.record+",") != -1) isDeleted = true; } if (isDeleted) { mappingCount++; mappingsDeleted.addElement(new Integer(rz.content)); mappingsDeletedMsg += rz.content + ","; mappingsDeletedMsgFull += formatDisplay(list_calendarid,list_eventid,rz.recordid); } } mappingsDeletedMsgFull = trim(mappingsDeletedMsgFull); //-------------------------------------------------------------------- // Determine request desc for html display //-------------------------------------------------------------------- if (calendarCount == 0) calidsDeletedMsgFull = "No calendars deleted"; if (mappingCount == 0) { mappingsDeletedMsgFull = "No mapping records found"; if (eventid.length() > 0) mappingsDeletedMsgFull += " for eventid=" + eventid; if (calendarid.length() > 0) mappingsDeletedMsgFull += " for calendarid=" + calendarid; } if (eventid.length() > 0) { requestDesc = "delete all mapping records for eventid=" + eventid; //+ " eventname=" + eventname; calidsDeletedMsgFull = "NA when eventid specified"; eventsDeletedMsgFull = "See notes"; notes = "When eventid specified; event record already deleted."; if (mappingCount == 0) notes += "
" + "however at least one mapping record should be deleted"; } else if (calendarid.length() > 0) { calidsDeletedMsgFull = "Calendar id=" + calendarid + " already Deleted"; requestDesc = "delete all events for Calendar: " + calendarname + " (id=" + calendarid + ")"; } else if (groupid.length() > 0) { requestDesc = "delete all calendars and events for groupid=" + groupid + "
Not Currently Supported"; debug = true; } //-------------------------------------------------------------------- //********** Delete Calendar, Event and Mapping records ********** //-------------------------------------------------------------------- boolean dbUpdated = false; if (!debug) { Importer importer = new Importer(); if (calidsDeleted.size() > 0) importer.delete( rz.webspace, "calendar_names", calidsDeleted ); if (eventsDeleted.size() > 0) importer.delete( rz.webspace, "calendar_events", eventsDeleted ); if (mappingsDeleted.size() > 0) importer.delete( rz.webspace, "calendar_mapping", mappingsDeleted ); dbUpdated = (calidsDeleted.size() > 0 || eventsDeleted.size() > 0 || mappingsDeleted.size() > 0); } /************************************/ /*BOOKMARK Page specific JavaScript*/ /**********************************/ %> <%-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DELETE standard javascript include file after the body tag (if shown above); it is included in the head section for edit pages and not used on templates. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ --%>

Debug Mode pause on this URL
location.href
Request: <%=requestDesc%>
<%=calendarCount%> Calendar(s) to Delete: <%=calidsDeletedMsgFull%>
<%=eventCount%> Event(s) to Delete: <%=eventsDeletedMsgFull%>
<%=mappingCount%> Mapping record(s) to Delete: <%=mappingsDeletedMsgFull%>
 
Notes: <%=notes%>
 

nexturl: