diff --git a/src/Umbraco.Web/Trees/ContentTreeController.cs b/src/Umbraco.Web/Trees/ContentTreeController.cs
index ef17840edf..9ed37b29d6 100644
--- a/src/Umbraco.Web/Trees/ContentTreeController.cs
+++ b/src/Umbraco.Web/Trees/ContentTreeController.cs
@@ -177,6 +177,7 @@ namespace Umbraco.Web.Trees
if (item.Path.Split(new[] {','}, StringSplitOptions.RemoveEmptyEntries).Contains(RecycleBinId.ToInvariantString()))
{
nodeMenu.DefaultMenuAlias = null;
+ nodeMenu.Items.Insert(2, new MenuItem(ActionRestore.Instance, ui.Text("actions", ActionRestore.Instance.Alias)));
}
else
{
diff --git a/src/umbraco.cms/Actions/ActionRestore.cs b/src/umbraco.cms/Actions/ActionRestore.cs
new file mode 100644
index 0000000000..106dc61763
--- /dev/null
+++ b/src/umbraco.cms/Actions/ActionRestore.cs
@@ -0,0 +1,92 @@
+using System;
+using umbraco.interfaces;
+using umbraco.BasePages;
+
+namespace umbraco.BusinessLogic.Actions
+{
+ ///
+ /// This action is invoked when the content item is to be restored from the recycle bin
+ ///
+ public class ActionRestore : IAction
+ {
+ private static readonly ActionRestore m_instance = new ActionRestore();
+
+ ///
+ /// A public constructor exists ONLY for backwards compatibility in regards to 3rd party add-ons.
+ /// All Umbraco assemblies should use the singleton instantiation (this.Instance)
+ /// When this applicatio is refactored, this constuctor should be made private.
+ ///
+ [Obsolete("Use the singleton instantiation instead of a constructor")]
+ public ActionRestore() { }
+
+ public static ActionRestore Instance
+ {
+ get { return m_instance; }
+ }
+
+ #region IAction Members
+
+ public char Letter
+ {
+ get
+ {
+
+ return '8'; // TODO: Check if this char is available? Is it still used?
+ }
+ }
+
+ public string JsFunctionName
+ {
+ get
+ {
+ return null;
+ }
+ }
+
+ public string JsSource
+ {
+ get
+ {
+
+ return null;
+ }
+ }
+
+ public string Alias
+ {
+ get
+ {
+
+ return "restore";
+ }
+ }
+
+ public string Icon
+ {
+ get
+ {
+
+ return "undo";
+ }
+ }
+
+ public bool ShowInNotifier
+ {
+ get
+ {
+
+ return true;
+ }
+ }
+
+ public bool CanBePermissionAssigned
+ {
+ get
+ {
+
+ return true;
+ }
+ }
+ #endregion
+ }
+}
\ No newline at end of file
diff --git a/src/umbraco.cms/umbraco.cms.csproj b/src/umbraco.cms/umbraco.cms.csproj
index b50979975e..ea1d27ce09 100644
--- a/src/umbraco.cms/umbraco.cms.csproj
+++ b/src/umbraco.cms/umbraco.cms.csproj
@@ -211,6 +211,7 @@
Code
+