Jump to content
renobird

Module: Activity Log

Recommended Posts

This module creates a per-page activity log. It's not version control, but it is a history of changes made to all core field types.

See the screenshots below for further explanation.

 

It consists of 2 modules:

  • MarkupActivityLog 
  • ProcessActivityLogService (handles ajax calls for show old/new values of textareas)

More information on github

 
Non-Superusers
add an 'activity-log' permission.
 
Thanks
Nico, Netcarver, Ryan.
MarkupSEO, Field Change Notifier, and FormBuilder where heavily referenced (*cough* copied) at points.
 
Activity Log Tab
post-474-0-27902900-1430929560_thumb.png
 
Changes to textareas show in modal
post-474-0-45248700-1430929567_thumb.png
 
Module configuration
post-474-0-43263800-1430929575_thumb.png
  • Like 17

Share this post


Link to post
Share on other sites

A friend reported a few small issues, pushed a few quick updates for API usage.

Share this post


Link to post
Share on other sites

Looks really nice, good stuff Tom, I'm gonna install this and give it a burn when I get a minute.

I realise you mention it's not version control, but if all changes are recorded (even text areas) as they appear to be then I'm guessing it's possible to add a roll-back feature to crank a field back to a previous version?

  • Like 1

Share this post


Link to post
Share on other sites

I realise you mention it's not version control, but if all changes are recorded (even text areas) as they appear to be then I'm guessing it's possible to add a roll-back feature to crank a field back to a previous version?

It does not save the real value of the field, but only the textual representation. That's why it's not like version control.

  • Like 2

Share this post


Link to post
Share on other sites

Thanks for working on this.  I'm using this with a few of my internal websites (where I routinely keep my clients updated on their technical support, consulting or web development issues).  The level of detail you have in this module is appropriate for this purpose and has been very helpful.

  • Like 1

Share this post


Link to post
Share on other sites

Amazing module! is this something you could pull into templates to show on the frontend of the website too?

  • Like 1

Share this post


Link to post
Share on other sites

I have some updates coming that address scenarios where a field has been removed from a template or deleted all together, and a few other things that make it easier to get/set values from the API.

  • Like 1

Share this post


Link to post
Share on other sites

It would be nice if PageTables could get some attention in this module. E.g. removing a page from the pagetable will result in an error (line 220).

  • Like 1

Share this post


Link to post
Share on other sites

Absolutely. I hadn't tested PageTables at all — I'll probably make sure it supports all the current ProFields as well.

Share this post


Link to post
Share on other sites

I plan to give this all some serious attention next week. I'll get some updates out soon.

  • Like 4

Share this post


Link to post
Share on other sites

PW dev 2.6.13 - CKE is not loaded correct to the texarea? May it is a special thing i use a other skin on CKE

https://github.com/NicoKnoll/LightWire-Skin

Big thank you for this module - it's a very nice addition for superusers to get a better overview on big websites with many editors/users.

Best regards mr-fan

Share this post


Link to post
Share on other sites

Posting this in case anybody else has been tinkering with this module or if "updates out soon" mentioned a while back are getting closer.

Thought I'd give this a try in 3.0.10 and adapt it to my needs. The only thing needed to get it working was to change some PHP short tags (<? ) in MarkupActivityLog.inc. 

I've added a config variable for selecting fields to ignore, using it in changesToJSON(). Figured I'd ignore any fields that are not supported yet and do something about them later.

One thing that isn't working is the New vs Old display for rich text (CKEditor fieldtype). The information is there in the markup but clicking the tabs doesn't toggle their visibility. You always see the New data.

  • Like 1

Share this post


Link to post
Share on other sites

I ended up making a ton of mods to this for things that were very specific to our needs. Coincidentally, I worked on cleaning it up and getting it back to a more releasable state earlier this week. I'll take a look at it on the devns branch on Monday/

  • Like 5

Share this post


Link to post
Share on other sites

Hey @renobird, did you release your new version yet? I just ran into the same issues as @SteveB. I've updated the MarkupActivityLog.inc since the FileCompiler didn't like the PHP short tags.

Another thing I've noticed is that Activity Log doesn't record/log when a page (or rather field) is updated from ListerPro. My guess is this has to do something to do the saveReady hook not being called within ListerPro. Ryan posted a solution to 'force' the hook.

Thanks!

  • Like 1

Share this post


Link to post
Share on other sites

Hi Arjen,

I haven't released anything new. I will try to take a look at any outstanding issues this week.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks Tom. It would be nice if you can look into the issues. I'm currently testing all existing 'tracking' modules for a project.

Also please look in the ProcessChangeLog thread (and the thread linked to) since it faces similar issues.

  • Like 2

Share this post


Link to post
Share on other sites
On 10/10/2016 at 3:28 PM, renobird said:

I haven't released anything new. I will try to take a look at any outstanding issues this week.

@renobird, any updates on the issue? Perhaps you did some changes locally and didn't commit them?

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for this great module. I would like to use it along with ListerPro but no luck as @arjen mentioned.

Before the release of update, I have tried to fixed this by adding

$this->pages->addHookAfter('saveFieldReady', $this, 'hookUpdateLog');

but it is not working. How can it be fixed? thanks

  • Like 1

Share this post


Link to post
Share on other sites
15 minutes ago, Karl_T said:

I would like to use it along with ListerPro but no luck as @arjen mentioned.

+1 Thanks in advance!

Share this post


Link to post
Share on other sites

Hi @Karl_T, the modules needs to be changed to execute on the savePageOrFieldReady hook. Unfortunately I'm not able to work on Reno's module. We went a different approach. See this topic:

 

Share this post


Link to post
Share on other sites

Thank you @arjen. I tried all the hooks that Ryan mentioned in the post and some others but unfortunately no one seems to be working.

I have checked ProcessChangelog to see what hook it uses to fix the issue as I also have used it for other projects. It works along with ListerPro after update and what it use is the saveFieldReady hook but just cannot simply apply the same change to this module.

Share this post


Link to post
Share on other sites

Hi @Karl_T,

There need to be made more changes since there I believe that are different arguments in the different hooks (see and see). It is unfortunately not as easy as changing hooks.

  • Like 1

Share this post


Link to post
Share on other sites

Thanks @arjen again for the reference links. If I could fix this I would post the fix here. This module is best suit for my new project but it just lacks the ListerPro support.

  • Like 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...