\documentclass{article}
\usepackage{ulem}
\usepackage{graphicx}
\usepackage{hyperref}
\pagestyle{headings}
\begin{document}
\part{Undo support in Horde}
\section{Bugs}
<a href="https://bugs.horde.org/ticket/11187">https://bugs.horde.org/ticket/11187</a>

\section{People}
\section{Description}
Instead of deletion, support undo in Horde applications. This might take the form of a Horde-wide (per-user of course) "trash folder", or some other form of undeletion or revision history.

One suggested approach is to embed this into a larger task to implement journaling in Horde. This would look include these tasks:

\begin{itemize}
\item Horde\_Journal library with SQL and potentially MongoDB backends (5 hours)


\item Journaling for apps (10 hours): Use Horde\_Journaling in Kronolith, Nag, Turba, Mnemo to track additions, changes, deletions.


\item Collection (calendars, address books, etc) history (10 hours): Application support (backend and UI) to retrieve and display journal summaries for a groupware collection. Maybe on-demand for dynamic frontends?


\item Object history (10 hours): Application support (backend and UI) to retrieve and display complete journal for a groupware object. Maybe on-demand for dynamic frontends?


\item Undo (25 hours): Implement undo functionality based on the journaling features for end users.


\end{itemize}
Time estimations are probably too optimistic, especially for the base journaling functionality.

\section{Resources}
<a href="http://www.alistapart.com/articles/neveruseawarning">http://www.alistapart.com/articles/neveruseawarning</a><br />
<a href="http://bergie.iki.fi/blog/undeletion\_in\_midgard.html">http://bergie.iki.fi/blog/undeletion\textbackslash\{\}\_in\textbackslash\{\}\_midgard.html</a><br />
<a href="http://paulbuchheit.blogspot.com/2007/06/quick-all-actions-should-have-undo.html">http://paulbuchheit.blogspot.com/2007/06/quick-all-actions-should-have-undo.html</a><br />
<a href="http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/">http://humanized.com/weblog/2007/09/14/undo-made-easy-with-ajax-part-1/</a><br />
<a href="http://azarask.in/blog/post/undo\_with\_ajax\_2/">http://azarask.in/blog/post/undo\textbackslash\{\}\_with\textbackslash\{\}\_ajax\textbackslash\{\}\_2/</a><br />
<a href="http://ajaxian.com/archives/addressbook-an-example-of-the-form-history-pattern">http://ajaxian.com/archives/addressbook-an-example-of-the-form-history-pattern</a>


\noindent\rule{\textwidth}{1pt}
Back to the <a href="https://wiki.horde.org/Project">Project List</a>

\end{document}
