diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index 8d5aac77c..6ac335f22 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -78,8 +78,10 @@ - - + + + + diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/SettingsAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/SettingsAuditTrailEventProvider.cs index deeab756c..94ff07b21 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/SettingsAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/SettingsAuditTrailEventProvider.cs @@ -8,7 +8,7 @@ namespace Orchard.AuditTrail.Providers.AuditTrail { public override void Describe(DescribeContext context) { context.For("AuditTrailSettings", T("Audit Trail Settings")) - .Event(this, EventsChanged, T("Events Changed"), T("Audit Trail event settings were changed."), enableByDefault: true, isMandatory: true); + .Event(this, EventsChanged, T("Events changed"), T("Audit trail event settings were changed."), enableByDefault: true, isMandatory: true); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/TrimmingSettingsAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/TrimmingSettingsAuditTrailEventProvider.cs index 6f2ce0884..ffdc2760d 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/TrimmingSettingsAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/AuditTrail/TrimmingSettingsAuditTrailEventProvider.cs @@ -10,7 +10,7 @@ namespace Orchard.AuditTrail.Providers.AuditTrail { public override void Describe(DescribeContext context) { context.For("AuditTrailSettings", T("Audit Trail Settings")) - .Event(this, TrimmingSettingsChanged, T("Trimming Settings Changed"), T("Audit Trail trimming settings were changed."), enableByDefault: true); + .Event(this, TrimmingSettingsChanged, T("Trimming settings changed"), T("Audit trail trimming settings were changed."), enableByDefault: true); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/ContentAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/ContentAuditTrailEventProvider.cs index 4b3f2819b..1624e54de 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/ContentAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Content/ContentAuditTrailEventProvider.cs @@ -25,12 +25,12 @@ namespace Orchard.AuditTrail.Providers.Content { } public override void Describe(DescribeContext context) { - context.For("Content", T("Content")) - .Event(this, Created, T("Created"), T("Content was created."), enableByDefault: true) - .Event(this, Saved, T("Saved"), T("Content was saved."), enableByDefault: true) - .Event(this, Published, T("Published"), T("Content was published."), enableByDefault: true) - .Event(this, Unpublished, T("Unpublished"), T("Content was unpublished."), enableByDefault: true) - .Event(this, Removed, T("Removed"), T("Content was deleted."), enableByDefault: true); + context.For("Content", T("Content Items")) + .Event(this, Created, T("Created"), T("A content item was created."), enableByDefault: true) + .Event(this, Saved, T("Saved"), T("A content item was saved."), enableByDefault: true) + .Event(this, Published, T("Published"), T("A content item was published."), enableByDefault: true) + .Event(this, Unpublished, T("Unpublished"), T("A content item was unpublished."), enableByDefault: true) + .Event(this, Removed, T("Removed"), T("A content item was deleted."), enableByDefault: true); context.QueryFilter(QueryFilter); context.DisplayFilter(DisplayFilter); diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/ContentDefinition/ContentPartAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/ContentDefinition/ContentPartAuditTrailEventProvider.cs index a803495fa..5d8e6348e 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/ContentDefinition/ContentPartAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/ContentDefinition/ContentPartAuditTrailEventProvider.cs @@ -14,14 +14,14 @@ namespace Orchard.AuditTrail.Providers.ContentDefinition { public const string FieldSettingsUpdated = "FieldSettingsUpdated"; public override void Describe(DescribeContext context) { - context.For("ContentPart", T("Content Part")) - .Event(this, Created, T("Created"), T("Content Type was created."), enableByDefault: true) - .Event(this, Removed, T("Removed"), T("Content Type was removed."), enableByDefault: true) - .Event(this, DescriptionChanged, T("Description changed"), T("Content Part description was changed."), enableByDefault: true) - .Event(this, FieldAdded, T("Field added"), T("Content Field was added."), enableByDefault: true) - .Event(this, FieldRemoved, T("Field removed"), T("Content Field was removed."), enableByDefault: true) - .Event(this, PartSettingsUpdated, T("Part settings updated"), T("Content Part settings were updated."), enableByDefault: true) - .Event(this, FieldSettingsUpdated, T("Field settings updated"), T("Content Field settings were updated."), enableByDefault: true); + context.For("ContentPart", T("Content Parts")) + .Event(this, Created, T("Created"), T("A content type was created."), enableByDefault: true) + .Event(this, Removed, T("Removed"), T("A content type was removed."), enableByDefault: true) + .Event(this, DescriptionChanged, T("Description changed"), T("A content part description was changed."), enableByDefault: true) + .Event(this, FieldAdded, T("Field added"), T("A field was added to a content part."), enableByDefault: true) + .Event(this, FieldRemoved, T("Field removed"), T("A field was removed from a content part."), enableByDefault: true) + .Event(this, PartSettingsUpdated, T("Part settings updated"), T("The settings of a content part were updated."), enableByDefault: true) + .Event(this, FieldSettingsUpdated, T("Field settings updated"), T("The settings of a field on a content part were updated."), enableByDefault: true); } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Roles/RoleAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Roles/RoleAuditTrailEventProvider.cs index 58b080289..fbc21667b 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Roles/RoleAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Roles/RoleAuditTrailEventProvider.cs @@ -14,12 +14,12 @@ namespace Orchard.AuditTrail.Providers.Roles { public const string UserRemoved = "UserRemoved"; public override void Describe(DescribeContext context) { - context.For("Role", T("Role")) + context.For("Role", T("Roles")) .Event(this, Created, T("Created"), T("A role was created."), enableByDefault: true) .Event(this, Removed, T("Removed"), T("A role was removed."), enableByDefault: true) .Event(this, Renamed, T("Renamed"), T("A role was renamed."), enableByDefault: true) - .Event(this, PermissionAdded, T("Permission added"), T("Permission was added to a role."), enableByDefault: true) - .Event(this, PermissionRemoved, T("Permission removed"), T("Permission was removed from a role."), enableByDefault: true) + .Event(this, PermissionAdded, T("Permission added"), T("A permission was added to a role."), enableByDefault: true) + .Event(this, PermissionRemoved, T("Permission removed"), T("A permission was removed from a role."), enableByDefault: true) .Event(this, UserAdded, T("User added"), T("A user was added to a role."), enableByDefault: true) .Event(this, UserRemoved, T("User removed"), T("A user was removed from a role."), enableByDefault: true); } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserAuditTrailEventProvider.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserAuditTrailEventProvider.cs index b4c122a9b..1ce794ca1 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserAuditTrailEventProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Providers/Users/UserAuditTrailEventProvider.cs @@ -11,10 +11,10 @@ namespace Orchard.AuditTrail.Providers.Users { public const string PasswordChanged = "PasswordChanged"; public override void Describe(DescribeContext context) { - context.For("User", T("User")) + context.For("User", T("Users")) .Event(this, LoggedIn, T("Logged in"), T("A user was successfully logged in."), enableByDefault: true) - .Event(this, LoggedOut, T("Logged out"), T("A user explicitly logged out."), enableByDefault: true) - .Event(this, LogInFailed, T("Login failed"), T("An attempt to login failed due to an incorrect username/email and/or password."), enableByDefault: true) + .Event(this, LoggedOut, T("Logged out"), T("A user actively logged out."), enableByDefault: true) + .Event(this, LogInFailed, T("Login failed"), T("An attempt to login failed due to incorrect credentials."), enableByDefault: true) .Event(this, PasswordChanged, T("Password changed"), T("A user's password was changed."), enableByDefault: true); } } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audit-trail-admin.js b/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audit-trail-admin.js deleted file mode 100644 index 519fa06df..000000000 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audit-trail-admin.js +++ /dev/null @@ -1,49 +0,0 @@ -(function($) { - - var initExpandoControl = function() { - $(".expando-wrapper legend").expandoControl( - function(controller) { - return controller.nextAll(".expando"); - }, { - collapse: true, - remember: true - }); - }; - - var initCheckAll = function() { - $("table.check-all").each(function() { - var table = $(this); - var controller = table.find("thead input[type=\"checkbox\"]"); - var checkboxes = table.find("tbody input[type=\"checkbox\"]:not(:disabled)"); - - var updateController = function () { - var allChecked = checkboxes.filter(":not(:checked)").length == 0; - controller.prop("checked", allChecked); - } - - table.on("change", "thead input[type=\"checkbox\"]", function() { - var isChecked = $(this).is(":checked"); - checkboxes.prop("checked", isChecked); - }); - - table.on("change", "tbody input[type=\"checkbox\"]", function () { - updateController(); - }); - - updateController(); - }); - }; - - var disableContentEditor = function () { - $(".content-disabled input").prop("disabled", true); - $(".content-disabled textarea").prop("disabled", true); - $(".content-disabled button").prop("disabled", true); - }; - - $(function() { - initExpandoControl(); - initCheckAll(); - disableContentEditor(); - }); - -})(jQuery); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-admin.js b/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-admin.js new file mode 100644 index 000000000..a24963747 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-admin.js @@ -0,0 +1,24 @@ +(function($) { + + var initExpandoControl = function() { + $(".expando-wrapper legend").expandoControl( + function(controller) { + return controller.nextAll(".expando"); + }, { + collapse: true, + remember: true + }); + }; + + var disableContentEditor = function () { + $(".content-disabled input").prop("disabled", true); + $(".content-disabled textarea").prop("disabled", true); + $(".content-disabled button").prop("disabled", true); + }; + + $(function() { + initExpandoControl(); + disableContentEditor(); + }); + +})(jQuery); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-checkall.js b/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-checkall.js new file mode 100644 index 000000000..a11fea70f --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Scripts/audittrail-checkall.js @@ -0,0 +1,23 @@ +$(function () { + $(".check-all-container").each(function () { + var container = $(this); + var master = container.find("input[type=\"checkbox\"].check-all-master"); + var slaves = container.find("input[type=\"checkbox\"]:not(:disabled).check-all-slave"); + + var updateMaster = function () { + var allChecked = slaves.filter(":not(:checked)").length == 0; + master.prop("checked", allChecked); + } + + master.on("change", function () { + var isChecked = $(this).is(":checked"); + slaves.prop("checked", isChecked); + }); + + slaves.on("change", function () { + updateMaster(); + }); + + updateMaster(); + }); +}); \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/admin.css b/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/admin.css deleted file mode 100644 index 0a9638f24..000000000 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/admin.css +++ /dev/null @@ -1,52 +0,0 @@ -.audit-trail-filter { - margin-bottom: 1em; -} - - .audit-trail-filter fieldset label { - display: inline-block; - width: 10em; - } - - .audit-trail-filter fieldset label.inline { - display: inline; - width: auto; - } - -.audit-trail-list .info { - line-height: 25px; -} - -.audit-trail-list .event-content .version { - font-size: 0.8em; -} - -.audit-trail-event fieldset legend span { - font-size: 0.8em; -} - -.audit-trail-site-settings table th.event-name { - width: 250px; -} - -.audit-trail-site-settings table th.event-enabled { - width: 60px; -} - -.content-disabled { - position: relative; -} - -.content-disabled .overlay { - position: absolute; - left: -24px; - top: -16px; - right: -24px; - bottom: -28px; - background: url('overlay.png'); -} - -.content-disabled .edit-item-secondary, -.content-disabled .audit-trail.expando-wrapper, -.content-disabled .audit-trail-link { - display: none; -} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-admin.css b/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-admin.css new file mode 100644 index 000000000..432c5e283 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-admin.css @@ -0,0 +1,40 @@ +.audit-trail-filter { + margin-bottom: 1em; +} + + .audit-trail-filter fieldset label { + display: inline-block; + width: 10em; + } + + .audit-trail-filter fieldset label.inline { + display: inline; + width: auto; + } + +.audit-trail-list .info { + line-height: 25px; +} + +.audit-trail-list .event-content .version { + font-size: 0.8em; +} + +.content-disabled { + position: relative; +} + + .content-disabled .overlay { + position: absolute; + left: -24px; + top: -16px; + right: -24px; + bottom: -28px; + background: url('overlay.png'); + } + + .content-disabled .edit-item-secondary, + .content-disabled .audit-trail.expando-wrapper, + .content-disabled .audit-trail-link { + display: none; + } diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-settings.css b/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-settings.css new file mode 100644 index 000000000..cf764eae3 --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Styles/audittrail-settings.css @@ -0,0 +1,15 @@ +.audittrail-settings-section table.audittrail-events-table { + width: auto; + min-width: 600px; + margin-top: 1em; +} + +.audittrail-settings-section tbody.audittrail-category-body tr th { + background-color: #ebebeb; + font-size: 1.1em; + font-weight: bold; +} + +.audittrail-settings-section .audittrail-events-table .audittrail-event-enabled-cell { + text-align: right; +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Detail.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Detail.cshtml index 3b06415e9..e94b9d225 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Detail.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Detail.cshtml @@ -1,6 +1,6 @@ @model Orchard.AuditTrail.ViewModels.AuditTrailDetailsViewModel @{ - Style.Include("admin.css"); + Style.Include("audittrail-admin.css"); } @{ var record = Model.Record; diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Index.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Index.cshtml index 6fb0cacb4..ba0867ef2 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Index.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Admin/Index.cshtml @@ -2,7 +2,7 @@ @model Orchard.AuditTrail.ViewModels.AuditTrailViewModel @{ Style.Include("custom-grid.css"); - Style.Include("admin.css"); + Style.Include("audittrail-admin.css"); var orderBy = Model.OrderBy; var orderByItems = new List { new SelectListItem {Text = T("Date (desc)").Text, Value = AuditTrailOrderBy.DateDescending.ToString(), Selected = Model.OrderBy == AuditTrailOrderBy.DateDescending}, diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Content/Detail.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Content/Detail.cshtml index 4987192f0..c60ff6204 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Content/Detail.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Content/Detail.cshtml @@ -1,9 +1,9 @@ @using Orchard.ContentManagement @{ - Style.Include("admin.css"); + Style.Include("audittrail-admin.css"); Script.Require("ShapesBase"); Script.Include("~/Themes/TheAdmin/scripts/admin.js").AtFoot(); - Script.Include("audit-trail-admin.js").AtFoot(); + Script.Include("audittrail-admin.js").AtFoot(); var contentItem = (ContentItem)Model.ContentItem; Layout.Title = T("{0} - (version {1})", contentItem.ContentType, contentItem.Version); diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailSettings.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailSettings.cshtml index f1051e37b..144acecf5 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailSettings.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailSettings.cshtml @@ -1,51 +1,53 @@ @model Orchard.AuditTrail.ViewModels.AuditTrailSettingsViewModel @{ - Style.Include("admin.css"); + Style.Include("audittrail-settings.css"); Script.Require("ShapesBase"); - Script.Include("~/Themes/TheAdmin/scripts/admin.js").AtFoot(); - Script.Include("audit-trail-admin.js").AtFoot(); + //Script.Include("~/Themes/TheAdmin/scripts/admin.js").AtFoot(); + Script.Include("audittrail-checkall.js").AtFoot(); } -
-
- @T("Specify the events to audit") - @{ - var i = 0; - } - @foreach (var category in Model.Categories) { -
- @category.Name - - - - - - - - - - @{ var j = 0; } - @foreach (var evnt in category.Events) { - var checkboxId = String.Format("Event{0}{1}", i, j); - - - - - - j++; - } -
@T("Event")@T("Description") - -
- - @evnt.Name - @evnt.Description - checked="checked"} @if(evnt.IsMandatory){disabled="disabled"}/> -
-
- i++; - } -
-
\ No newline at end of file +
+

@T("Events to record in the audit trail")

+ + + + + + + + + @{ var i = 0; } + @foreach (var category in Model.Categories) { + + + + + + @{ var j = 0; } + @foreach (var e in category.Events) { + var checkboxId = String.Format("Event{0}{1}", i, j); + + + + + + j++; + } + + i++; + } +
@T("Event")@T("Description") + +
+ @category.Name + + + +
+ + @e.Name + @e.Description + checked="checked" } @if (e.IsMandatory) { disabled="disabled" } /> +
+
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailTrimmingSettings.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailTrimmingSettings.cshtml index 60c98ed7a..61b11ae6b 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailTrimmingSettings.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/EditorTemplates/Parts.AuditTrailTrimmingSettings.cshtml @@ -1,9 +1,7 @@ @model Orchard.AuditTrail.ViewModels.AuditTrailTrimmingSettingsViewModel -
- @T("Trimming Settings") -
- @Html.LabelFor(m => m.RetentionPeriod, T("Retention period")) - @Html.TextBoxFor(m => m.RetentionPeriod, new { @class = "text small" }) - @T("The number of days of audit log data to retain.") -
-
\ No newline at end of file +
+

@T("Trimming settings")

+ @Html.LabelFor(m => m.RetentionPeriod, T("Retention period")) + @Html.TextBoxFor(m => m.RetentionPeriod, new { @class = "text small" }) + @T("The number of days of audit log data to retain.") +
\ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Parts.AuditTrail.cshtml b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Parts.AuditTrail.cshtml index dee36c96b..218ae43e9 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Parts.AuditTrail.cshtml +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Views/Parts.AuditTrail.cshtml @@ -3,7 +3,7 @@ @{ Script.Require("ShapesBase"); Script.Include("~/Themes/TheAdmin/scripts/admin.js").AtFoot(); - Script.Include("audit-trail-admin.js").AtFoot(); + Script.Include("audittrail-admin.js").AtFoot(); } @{ var records = (IEnumerable)Model.Records;