From: <max...@us...> - 2009-10-02 16:38:14
|
Revision: 3883 http://uni-d.svn.sourceforge.net/uni-d/?rev=3883&view=rev Author: max_brod Date: 2009-10-02 16:36:50 +0000 (Fri, 02 Oct 2009) Log Message: ----------- [UNI-477] Improvements in the alerts page: -Make it possible to delete alerts. -Only option to "resolve" is available, not "ignore". Modified Paths: -------------- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/Alerts.java trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/AlertsParameters.java trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/dataModel/AlertsAdministrationQuery.java trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/pages/alerts/Alerts.html trunk/Uni-d/template/src/main/webapp/translations-common.txt Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/Alerts.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/Alerts.java 2009-10-02 14:54:01 UTC (rev 3882) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/Alerts.java 2009-10-02 16:36:50 UTC (rev 3883) @@ -62,7 +62,6 @@ public abstract class Alerts extends NavigationablePageImpl<AlertsParameters> { - private static String STATUS_ALERT_IGNORED = "I"; private static String STATUS_ALERT_SOLVED = "S"; private static final Logger log = Logger.getLogger( Alerts.class ); @@ -112,10 +111,14 @@ public void setShowWarnings( boolean show ) { getPageParameters().setShowWarnings( show ); } - public String getDateIgnoreUntil() { return getPageParameters().getDateIgnoreUntil(); } + public boolean isShowResolved() { return getPageParameters().isShowResolved(); } - public void setDateIgnoreUntil( String d ) { getPageParameters().setDateIgnoreUntil( d ); } + public void setShowResolved( boolean show ) { getPageParameters().setShowResolved( show ); } + public String getDateDeleteUntil() { return getPageParameters().getDateDeleteUntil(); } + + public void setDateDeleteUntil( String d ) { getPageParameters().setDateDeleteUntil( d ); } + public boolean isUserAdministrator() { return getSessionUserAdmin().isUserAdministrator(); @@ -133,7 +136,8 @@ try { UnidSelector sel = UnidProxyAccessor.getSelector( "UnidAlert" ); - AlertsAdministrationQuery query = new AlertsAdministrationQuery( getPageParameters().isShowWarnings() ); + AlertsAdministrationQuery query = new AlertsAdministrationQuery( getPageParameters().isShowWarnings(), + getPageParameters().isShowResolved() ); if ( max > 0 ) { query.setMaxResults( max ); @@ -179,39 +183,42 @@ setStatus( STATUS_ALERT_SOLVED ); } - public void ignore() + public void delete() { - setStatus( STATUS_ALERT_IGNORED ); + List<AlertFacade> facades = getPageParameters().getResults(); + for ( AlertFacade facade : facades ) + { + if ( facade.isChecked() ) + { + try + { + facade.getProxy().removeEntityBean(); + } + catch ( Exception e ) + { + log.error( e, e ); + setError( getTranslatedExceptionMessage( e ) ); + } + } + } } - public void ignoreUntil() + public void deleteUntil() { DateTimeFormatter dateFormat = DateTimeFormat.forPattern( "dd/MM/yyyy" ); try { Timestamp t = - new Timestamp( dateFormat.parseDateTime( getDateIgnoreUntil() ).getMillis() + 24 * 60 * 60 * 1000 ); + new Timestamp( dateFormat.parseDateTime( getDateDeleteUntil() ).getMillis() + 24 * 60 * 60 * 1000 ); if ( log.isDebugEnabled() ) log.debug( "Ignoring alerts until " + t ); TextBuilder queryString = TextBuilder.newInstance(); UnidQueryImpl query = new UnidQueryImpl(); - queryString.append( "SELECT al FROM DMUnidAlertBean al WHERE (al.time<:time) AND (al.status='A')" ); + queryString.append( "DELETE FROM DMUnidAlertBean al WHERE (al.time<:time)" ); query.addParameter( "time", t ); query.setQueryString( queryString.toString() ); UnidSelector sel = UnidProxyAccessor.getSelector( "UnidAlert" ); - List<UnidProxy> proxies = sel.findUnidProxy( query ); - if ( log.isDebugEnabled() ) log.debug( "Ignoring alerts. Found " + proxies.size() ); - List<UOID> uoids = new ArrayList<UOID>(); - for ( UnidProxy proxy : proxies ) - { - uoids.add( proxy.getUOID() ); - } - for ( UOID uoid : uoids ) - { - UnidProxy proxy = sel.findUOIDProxy( uoid ); - UnidProxyAccessor.setField( proxy, "Status", String.class, STATUS_ALERT_IGNORED ); - proxy.unidUpdate(); - } + sel.unidRunUpdateQuery( query ); sel.remove(); } catch ( Exception e ) @@ -290,9 +297,9 @@ public String getJavaScriptVariables() { - return "<script language=\"JavaScript\">\n<!--\n var messageConfirmIgnoreUntilDate=\"" + - getMessage( "message.ConfirmIgnoreUntilDate" ) + "\"; var messageIgnoreUntilDate=\"" + - getMessage( "message.IgnoreUntilDate" ) + + return "<script language=\"JavaScript\">\n<!--\n var messageConfirmDeleteUntilDate=\"" + + getMessage( "message.ConfirmDeleteUntilDate" ) + "\"; var messageDeleteUntilDate=\"" + + getMessage( "message.DeleteUntilDate" ) + "\"; \n-->\n</script>"; } Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/AlertsParameters.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/AlertsParameters.java 2009-10-02 14:54:01 UTC (rev 3882) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/AlertsParameters.java 2009-10-02 16:36:50 UTC (rev 3883) @@ -33,7 +33,6 @@ import org.apache.log4j.Logger; import java.util.List; -import java.sql.Date; /** * PageParameters class for the Alerts management page @@ -48,7 +47,8 @@ List<AlertFacade> results; boolean showWarnings; - String dateIgnoreUntil; + boolean showResolved; + String dateDeleteUntil; public List<AlertFacade> getResults() { @@ -75,16 +75,26 @@ this.showWarnings = showWarnings; } - public String getDateIgnoreUntil() + public String getDateDeleteUntil() { - return dateIgnoreUntil; + return dateDeleteUntil; } - public void setDateIgnoreUntil( String dateIgnoreUntil ) + public void setDateDeleteUntil( String dateDeleteUntil ) { - this.dateIgnoreUntil = dateIgnoreUntil; + this.dateDeleteUntil = dateDeleteUntil; } + public boolean isShowResolved() + { + return showResolved; + } + + public void setShowResolved( boolean showResolved ) + { + this.showResolved = showResolved; + } + @Override public AlertsParameters clone( PageParameters newParams ) { @@ -95,7 +105,8 @@ { clone.setResults( results ); } - clone.setDateIgnoreUntil( dateIgnoreUntil ); + clone.setDateDeleteUntil( dateDeleteUntil ); + clone.setShowResolved( showResolved ); return clone; } Modified: trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/dataModel/AlertsAdministrationQuery.java =================================================================== --- trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/dataModel/AlertsAdministrationQuery.java 2009-10-02 14:54:01 UTC (rev 3882) +++ trunk/Uni-d/tapestry/src/main/java/be/unid/tapestry/pages/alerts/dataModel/AlertsAdministrationQuery.java 2009-10-02 16:36:50 UTC (rev 3883) @@ -37,14 +37,16 @@ public class AlertsAdministrationQuery extends UnidQueryImpl { - boolean showAll; + private boolean showWarnings; + private boolean showResolved; AlertsAdministrationQuery() {/*used by deserialization*/} - public AlertsAdministrationQuery( boolean showAll ) + public AlertsAdministrationQuery( boolean showWarnings, boolean showResolved ) { super(); - this.showAll = showAll; + this.showWarnings = showWarnings; + this.showResolved = showResolved; // build query buildQueryString(); } @@ -53,13 +55,25 @@ { TextBuilder queryString = TextBuilder.newInstance(); - queryString.append( "SELECT al FROM DMUnidAlertBean al WHERE (al.status=\'A\') " ); + queryString.append( "SELECT al FROM DMUnidAlertBean al " ); - if ( !showAll ) + if ( !showWarnings ) { // show only critical alerts - queryString.append( " AND (al.alertType=\'C\') " ); + queryString.append( " WHERE (al.alertType='C') " ); } + if ( !showResolved) + { + if (showWarnings) + { + queryString.append(" WHERE "); + } + else + { + queryString.append(" AND "); + } + queryString.append(" (al.status='A') "); + } queryString.append( " ORDER BY al.unidCreationDate DESCENDING " ); this.setQueryString( queryString.toString() ); Modified: trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/pages/alerts/Alerts.html =================================================================== --- trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/pages/alerts/Alerts.html 2009-10-02 14:54:01 UTC (rev 3882) +++ trunk/Uni-d/tapestry/src/main/resources/be/unid/tapestry/pages/alerts/Alerts.html 2009-10-02 16:36:50 UTC (rev 3883) @@ -1,49 +1,59 @@ <border jwcid="@Border" internationalizedTitle="message:title"> - <link type="text/css" media="all" href="css/layout.css" rel="stylesheet"></link> +<link type="text/css" media="all" href="css/layout.css" rel="stylesheet"></link> - <span jwcid="keepAlive"/> +<span jwcid="keepAlive"/> - <span class="displayError" jwcid="@Insert" value="prop:error"/> +<span class="displayError" jwcid="@Insert" value="prop:error"/> - <span jwcid="@Insert" raw="true" value="prop:javaScriptVariables"/> +<span jwcid="@Insert" raw="true" value="prop:javaScriptVariables"/> - <form jwcid="@Form" delegate="bean:validationDelegate" enctype="multipart/form-data" - clientValidationEnabled="literal:true"> +<form jwcid="@Form" delegate="bean:validationDelegate" enctype="multipart/form-data" + clientValidationEnabled="literal:true"> <span class="defaultBlock"> <span class="defaultField"> <span class="defaultFieldLabel"> - <span key="ShowWarnings"/> + <span key="ShowWarnings"/> + </span> + <span class="defaultFieldValue"> + <input jwcid="@Checkbox" value="prop:showWarnings" id="CHECKBOX_SHOW_WARNINGS"/> + </span> </span> - <span class="defaultFieldValue"> - <input jwcid="@Checkbox" value="prop:showWarnings" id="CHECKBOX_SHOW_WARNINGS"/> - </span> - </span> + + <span class="defaultField"> + <span class="defaultFieldLabel"> + <span key="ShowResolved"/> + </span> + <span class="defaultFieldValue"> + <input jwcid="@Checkbox" value="prop:showResolved" id="CHECKBOX_SHOW_RESOLVED"/> + </span> + </span> </span> - <input jwcid="@Submit" value="message:Find" action="listener:search" class="submitButton" id="BUTTON_SEARCH"/> + <input jwcid="@Submit" value="message:Find" action="listener:search" class="submitButton" id="BUTTON_SEARCH"/> <span jwcid="@If" condition="prop:userAdministrator"> - <input jwcid="@Any" type="button" value="message:IgnoreUntil" action="listener:ignoreUntil" class="submitButton" id="BUTTON_IGNORE_UNTIL" - onclick=" - var data1=prompt(messageIgnoreUntilDate); - var data2=prompt(messageConfirmIgnoreUntilDate); + <input jwcid="@Any" type="button" value="message:DeleteUntil" class="submitButton" id="BUTTON_DELETE_UNTIL" + onclick=" + var data1=prompt(messageDeleteUntilDate); + var data2=prompt(messageConfirmDeleteUntilDate); if (data1==data2 && data1!=null && data1.length==10) { var dateField=document.getElementById('TEXTFIELD_HIDDEN_DATE'); dateField.value=data1; - var buttonIgnore=document.getElementById('BUTTON_IGNORE_UNTIL_HIDDEN'); - buttonIgnore.click(); + var buttonDelete=document.getElementById('BUTTON_DELETE_UNTIL_HIDDEN'); + buttonDelete.click(); } " - /> - </span> + /> + </span> - <input jwcid="@TextField" value="prop:dateIgnoreUntil" style="display:none" id="TEXTFIELD_HIDDEN_DATE"/> - <input jwcid="@Submit" value="message:Ignore" action="listener:ignoreUntil" id="BUTTON_IGNORE_UNTIL_HIDDEN" style="display:none"/> + <input jwcid="@TextField" value="prop:dateDeleteUntil" style="display:none" id="TEXTFIELD_HIDDEN_DATE"/> + <input jwcid="@Submit" value="delete hidden" action="listener:deleteUntil" id="BUTTON_DELETE_UNTIL_HIDDEN" + style="display:none"/> <span jwcid="@If" condition="ognl:hasResults()"> <input jwcid="@Submit" value="message:Resolve" action="listener:resolve" id="BUTTON_RESOLVE"/> - <input jwcid="@Submit" value="message:Ignore" action="listener:ignore" id="BUTTON_IGNORE"/> + <input jwcid="@Submit" value="message:Delete" action="listener:delete" id="BUTTON_DELETE"/> <table border="0" width="100%"> <tr> @@ -60,7 +70,7 @@ <span jwcid="results@For" source="prop:results" value="prop:currentItem"> <tr> <td width="20%" align="left"> - <a jwcid="@NavigationLink" listener="listener:view" + <a jwcid="@NavigationLink" listener="listener:view" parameters="ognl:currentItem.proxy.UOID" class="result"> <span jwcid="@Insert" value="prop:timestamp"/> @@ -84,33 +94,32 @@ </tr> </span> </table> - <input jwcid="@Submit" value="message:Resolve" action="listener:resolve" class="submitButton" id="BUTTON_RESOLVE_2"/> - <input jwcid="@Submit" value="message:Ignore" action="listener:ignore" class="submitButton" id="BUTTON_IGNORE_2"/> + <!--input jwcid="@Submit" value="message:Resolve" action="listener:resolve" id="BUTTON_RESOLVE2"/> + <input jwcid="@Submit" value="message:Delete" action="listener:delete" id="BUTTON_DELETE2"/--> - </span> <span jwcid="@Else"> <br/> <span jwcid="@Insert" value="message:NoResults"/> </span> - </form> - <script language="JavaScript"> - <!-- - function setAll(checked) - { - parent=document.getElementsByName('alert_checked')[0]; - while(parent.tagName!='TABLE') - { - parent=parent.parentNode; - } - size=parent.getElementsByTagName("TR").length; - document.getElementsByName('alert_checked')[0].checked = checked; - for(i=0; i<size-1; i++) - { - document.getElementsByName('alert_checked_' + i)[0].checked = checked; - } - } +</form> +<script language="JavaScript"> + <!-- + function setAll(checked) + { + parent=document.getElementsByName('alert_checked')[0]; + while(parent.tagName!='TABLE') + { + parent=parent.parentNode; + } + size=parent.getElementsByTagName("TR").length; + document.getElementsByName('alert_checked')[0].checked = checked; + for(i=0; i<size-1; i++) + { + document.getElementsByName('alert_checked_' + i)[0].checked = checked; + } + } - --> - </script> + --> +</script> </border> Modified: trunk/Uni-d/template/src/main/webapp/translations-common.txt =================================================================== --- trunk/Uni-d/template/src/main/webapp/translations-common.txt 2009-10-02 14:54:01 UTC (rev 3882) +++ trunk/Uni-d/template/src/main/webapp/translations-common.txt 2009-10-02 16:36:50 UTC (rev 3883) @@ -235,13 +235,13 @@ .label.nl Alle .label.ro Selecteaza toate .label.fr Tous -.key IgnoreUntil/Alerts -.label.en Ignore until date -.label.ro Ignora pana la data -.key message.IgnoreUntilDate/Alerts +.key DeleteUntil/Alerts +.label.en Delete until date +.label.ro Sterge pana la data +.key message.DeleteUntilDate/Alerts .label.en Date (dd/mm/yyyy) .label.ro Data (dd/mm/yyyy) -.key message.ConfirmIgnoreUntilDate/Alerts +.key message.ConfirmDeleteUntilDate/Alerts .label.en Confirm date (dd/yy/mmmm) .label.ro Confirma data (dd/yy/mmmm) .key ClearAll/Alerts @@ -322,11 +322,11 @@ .key HideInactiveRecords/Uni-d-fixed .label.en Hide inactive records .label.ro Ascunde inregistrarile inactive -.key Ignore/Alerts -.label.en Ignore -.label.nl Negeer -.label.ro Ignora -.label.fr Ignorer +.key Delete/Alerts +.label.en Delete +.label.nl Verwijderen +.label.ro Sterge +.label.fr Supprimer .key Index/Uni-d-fixed .label.en Index .label.nl Index @@ -552,6 +552,9 @@ .label.nl Waarschuwingen en berichten weergeven .label.ro Arata avertismentele si mesajele .label.fr Visualiser cautions et messages +.key ShowResolved/Alerts +.label.en Show resolved alerts +.label.ro Arata alertele rezolvate .key StartPage/Uni-d-fixed .label.en Start page .label.nl Startpagina This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |