[GSoC 2009] From Page Versioning to Extension Versioning

For Joomla! 1.5 Coding related discussions, please use: http://groups.google.com/group/joomla-dev-general
Forum rules
Please use the mailing list here: http://groups.google.com/group/joomla-dev-general rather than this forum.
Locked
scytale
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Mon Apr 27, 2009 10:40 am

[GSoC 2009] From Page Versioning to Extension Versioning

Post by scytale » Mon Apr 27, 2009 11:18 am

Hello !

I will be coding from now on for the Joomla! Project during Google Summer of Code and after. I'm new to the Joomla! Framework and currently I'm getting familiar and testing the way one should code for a J! Component.

During the first part of the summer I will finish the Page Versioning extension done by Flavio at last year's GSOC. I will mainly add the following features to the current existing extension:

1. HTML code differences in the component menu, not only content differences. As this regards code differences the content will not be fully displayed, only differences in the HTML tags and attributes of those. Probably will be available a simple change between html view and current existing content view such that a any user could simply see what was changed and where.
This feature could also help users that are willing to learn/understand simple HTML code.

2. Front-end article restore for users that have editing privileges (plugin).

3. Search function: by date, by a certain string available in the content, by a certain version. If multiple users do modifications on a article probably some information gets lost or so (and if you have many versions you simply waste a lot of time looking through all of them for the information you need to revert)

After these features are finished the final step is to include it in the J! 1.6 Core.
Since I'm working on it from now on for about a month I could implement other features if requested and it will be enough time.

During the second part of the summer I will focus on a more ambitious project (I really do hope I will manage to do the first steps in order to accomplish it) that will probably be continued after the GSoC period.

I'll be working on an extension that should try to manage a versioning system in a generalized manner, that could be applied to any other extensions existing in a Joomla! Installation. The administrator should be able to choose which extensions need to be tracked as they are changed (parameters are modified, updates – modifications, etc.). However at this moment, I plan to start the following:

1. Develop a versioning extension for core content component. This will give me a very good insight for further development.
2. Create a user – friendly interface, through which administrators can compare different versions of the com_content component.

I would appreciate comments on this, since the way it is started is very important. It could be a first step toward a system restore extension.

Until my own blog will be available feel free to take a look at the current Version Control component described on Flavio's last year blog: http://labs.joomla.org/developer/develo ... ntrol.html

This is all for now. I would appreciate to know all your advices and suggestions.

ewel
Joomla! Guru
Joomla! Guru
Posts: 522
Joined: Mon Oct 01, 2007 11:35 am

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by ewel » Sat May 23, 2009 7:15 pm

It occurred to me earlier this week that what I would really love to have is a sort of versioning where I could work on a new version of an article, a menu, a module, and so on, and save without publishing, leaving the unchanged version published until I have done all the changes that I want to publish in one go. If in terms of your project you could get a little closer to this, that would be great!

scytale
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Mon Apr 27, 2009 10:40 am

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by scytale » Fri May 29, 2009 9:11 pm

Hello ewel,

Thanks for the feedback. Currently, this can already be done through the component. If you have the time, just follow the instructions from the link below to test the HTML feature and the ones already available.

http://community.joomla.org/blogs/commu ... ation.html

dukeofgaming
Joomla! Intern
Joomla! Intern
Posts: 78
Joined: Fri May 05, 2006 4:43 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by dukeofgaming » Thu Jun 11, 2009 2:21 pm

Hi Victor, I was just referred to you by Amy Stephen regarding this discussion: http://groups.google.com/group/joomla-d ... d44e518664

Here's my post about having versioning in content and integrating it with the archive:
I use it as revision control for my articles, this is, if I update a really
outdated version of an article I really like to keep the other version.

This does not happen often though, so I'd like to see this replaced by
article revision control. Maybe a recursive reference in the database to
detect the latest revision and build a vector of changes?, and then having a
standard "Save and overwrite" behavior and an optional "Archive previous and
save as this latest"... then, the Archive would show previous versions of
articles, or standalone archived ones.

I have been a lot of times in the situation of writing long articles,
screwing up and not being able to undo the changes. This would be a life
saver!, specially if at the content edition page I could access this
archived versions.

Oh well, maybe I'm asking for too much, but this is the way I'd like to be
able to use the archive.
What kind of versioning will you be using?, sorry I don't get into the code myself but, what kind of versioning is the current GSoC 2008 page versioning project using?.

I followed the link you posted to joomla labs and spotted this:
A new functionality of this release is that more than one user can edit a content in the same time. This is configurable, it is just for back-end, and it need to open the content througt Version Control Component. Once it is possible to merge two content, then there is no problem several users editing an article.
I don't really think this is already done, and if you intend to carry on with the development of this feature you might be interested on this:

http://www.[youtube].com/watch?v=3ykZYKCK7AM

It is the algorithm used for live concurrent editing at google docs and google wave.

scytale
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Mon Apr 27, 2009 10:40 am

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by scytale » Fri Jun 19, 2009 2:11 pm

Hi dukeofgaming,

Great feedback. Also, thanks for pointing out the discussion on the CMS list. Haven't seen it.
Maybe a recursive reference in the database to detect the latest revision and build a vector of changes?, and then having a standard "Save and overwrite" behavior and an optional "Archive previous and save as this latest"... then, the Archive would show previous versions of articles, or standalone archived ones.
Let's have a look the way it is currently done:
There are two tables in the database:
#__versioncontrol_latest - which stores full articles at their latest state
#__versioncontrol_versions - stores diffs from a version to another

Currently (not modified from last year), when you modify & save an article the following steps are made (by the System Plugin of Version Control):
1) Diff between latest state & current made modifs.
2) Store the diff in #__versioncontrol_versions
3) Replace #__versioncontrol_latest with the modified article (which now becomes the current/latest state)

Regarding writing long articles, as I have replied to ewel, it's possible.

Thank you for the link on concurrent editing. Indeed, it is not yet implemented. Currently (hopefully finished next week) I'm working on front-end control (which will be a bit like google docs). I have my final exams at university right now & that's why coding is a bit slower.

I'll take in consideration multiple editing, and after finishing frontend I'll definitely give it a try.
I'll be back with more tech specs soon.

Victor

dukeofgaming
Joomla! Intern
Joomla! Intern
Posts: 78
Joined: Fri May 05, 2006 4:43 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by dukeofgaming » Fri Jun 19, 2009 11:04 pm

Hi Victor, even better to know its using differential backup =). Just as a suggestion, it would be nice to add the option to allow some timed ajax autosaving (for unpublished stuff of course), if well designed, might come useful with concurrency.

Good luck with your exams =).

Regards,

David

tiggerle
Joomla! Apprentice
Joomla! Apprentice
Posts: 17
Joined: Sun Dec 07, 2008 10:02 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by tiggerle » Sun Oct 04, 2009 2:30 pm

Hi Victor, hi everybody! What is the current status of this project? I already spent the past 4 hours in reading and searching for information on this. I even read that the versioning would only be part of j1.7 ... well, so far I couldn't find any page the tells me whether you/Victor are still working on that issue or how far you came in this project. Would be nice to hear more about it! In my opinion this is another most important feature for websites where many authors are involved and I have some websites I could not transfer to joomla because of the lack of it. So I am already thinking about writing it myself if nobody is doing it :)

tiggerle
Joomla! Apprentice
Joomla! Apprentice
Posts: 17
Joined: Sun Dec 07, 2008 10:02 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by tiggerle » Sun Oct 04, 2009 4:18 pm

okay, I just found and checked out all the pages and your presentation from http://community.joomla.org/gsoc2009/vi ... rbune.html

I am very glad to see that obviously there is not much work left for me to do :-))))

YOU DID A VERY GREAT JOB VICTOR!!!
This feature is one of the most important ones that also has been needed for a long time!!

I will post some suggestions lateron ;)

tiggerle
Joomla! Apprentice
Joomla! Apprentice
Posts: 17
Joined: Sun Dec 07, 2008 10:02 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by tiggerle » Sun Oct 04, 2009 9:16 pm

okay, I just tested your j1.6 live-demo and I found a lot of bugs (tested both in IE7 and FF 3.0.14), some of them may derive from j1.6

Firtst of all: I really like your work and it is wonderful. I know very well from my own experience that this is very hard work. I will now sum up some bugs and ideas. If something seems to be rude - it wasn't ment to be. If things may sound hard it's just because I want to quickly sum up the facts!

Very important: it was not possible to edit articles in IE7 at all due to javascript errors: you couldn't save an article you were trying to edit! I don't know if this is just a j1.6-issue?

And the bugs:

1) Article Manager
I don't understand why you have the "see revisions" link below each article. It is doble functionallity with the "Revisions" in the table head.

Anyway, I get a big error if I click the "see revisions" link of a LOCKED article:

Fatal error: Call to a member function redirect() on a non-object in /home/victorc/public_html/trunk/administrator/components/com_content/models/revisions.php on line 208

2) Manage Versions
You know what happens if you you tick more than 2 boxes ... well, have a look at wikipedia and how they do - this is the best way to avoid picking more than 2 articles (radio-button!), this alert is not professional...

3)
http://rosedu.cs.pub.ro/~victorc/trunk/ ... icle_id=10

in the iframe the revision is displayed, but the "previous" and "next" button didn't work when I had only 2 revisions, only the drop-down men worked. In the end I had 5 revisions and it did not work. When I opened revisions #5 (the latest one) and pressed "back" it displayed #1 (I expected 4?), also I was only able to switch between those two, I could never go to 2,3,4 ... and there was some javascript error all the time.

The "Show changes information" is not working or has no function. I could not see any change!

4)
First of all I would rather prefer a light-colored highlighting instead of boxes. I find the idea of "changed", "deleted" and "added" is too confusing - but I think this is from GSoc 2008. Anyway, if I edit a paragraph an delete words or add new lines, then it is deleting and adding. But it shows just up as "changed". I think this is a very confusing method because the distingtion between those three is very artificial. I propose to only use TWO colors (green & red) to highlight things changes. By the way I think the pop-up is a bad idea - what if images have been changed? This would overflow the window and make it very uncomfortable. So I recommend a view in the main window like this: You propose a preview in FULL width as from the original layout - only then you can see how images and text are being placed together (I have been layouting some years ago and regard this an important feature). It gets very confusing for some users if the images and text are shuffled and loose their order. This can only be avoided by a single-column preview in FULL original WIDTH. This is a very tricky point one still has to think about a lot - how to compare versions and preserve the real layout when displaying pieces of the page. The easiest way was to preview the whole page and just highlight the differences. Another option was to display only the changed lines (as it is now) or - another option - a combination of the two, so you display e.g. also 2 lines before and after a changed paragraph. The problem is: if there is a floating image at the right, this will have influence on the text. If you really want to display the real layout of a page, you need to display the image (that was not changed) as well as the text beside that had been chaged. You understand? tricky trick. If you make a full display like this you could maybe even use just one color to highlight the deleted lines from the older version.

5)
Merge: TIME of the versions should be displayed in the iframe! Author is not enough information ... time is usually the most important fact (you need to know how old some information is you want to merge! maybe this is already outdated what you want to put in again!)

6) after merging the newly merged article is not the currently published one. Isn't this a mistake? Also the "merge" doesn't seem to have worked. If I edit the article or look at the latest (merged) revision, there is no merge in there, just a copy of the latest previous version.

7) I miss at least the "restore" function ;)
Also the "delete" function would be very easy, wouldn't it? ;)


I would have soooo many ideas more considering functionallity. Before I stumbled across your blog I thought you never took up your work and made a detailed plan about needed functionality ;)

Good luck! Hope to hear from you, it would be really interesting when you want to go on with this great feature!!

scytale
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Mon Apr 27, 2009 10:40 am

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by scytale » Sun Oct 18, 2009 8:01 pm

Hello!

I really appreciate all your comments and feedback!
Unfortunately, my time was very limited right after GSoC and that's why right now there are bugs reported and unsolved.. nevertheless, I'll work on these as soon as I can.

As I have seen, you have tested the patch for 1.6. This is a quite old now, outdated. Soon I will be migrating the 1.5 extension to 1.6, also as an extension. I think it will be splitted in two extensions, one with the main version control and the other one with the collab editor (I'll consider some wave-related development, too).

All your comments, suggestions and bug reports are very important for the development process, and please be assured they will be fixed. At the moment it's just a bit hard for me to approximate the time.

Thanks again for your implication and understanding,
Victor

tiggerle
Joomla! Apprentice
Joomla! Apprentice
Posts: 17
Joined: Sun Dec 07, 2008 10:02 pm

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by tiggerle » Mon Oct 19, 2009 10:54 am

Hi Victor,
I understand that you want to transfer the 1.5 version to 1.6 ... so would it be a good idea to test the 1.5-version and give some comments about it or are there any other, newer versions out there? Which is the best version that we should try out and give comments about?

Thanks a lot for your cool work!
matt

scytale
Joomla! Apprentice
Joomla! Apprentice
Posts: 5
Joined: Mon Apr 27, 2009 10:40 am

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by scytale » Mon Oct 19, 2009 11:26 am

Hi Matt,

Please try this one [1]. There are some bug reports already on tracker [2].

Would be great if you could also submit them to the tracker, so there will be a clearer list of things to be solved. However, it's fine to post your suggestions directly here, I'll be checking them step by step.

With regards,
Victor

[1] http://joomlacode.org/gf/download/frsre ... -alpha.zip
[2] http://joomlacode.org/gf/project/vscontrol/tracker/

User avatar
darb
Joomla! Ace
Joomla! Ace
Posts: 1427
Joined: Thu Jul 06, 2006 12:57 pm
Location: Stockholm Sweden
Contact:

Re: [GSoC 2009] From Page Versioning to Extension Versioning

Post by darb » Mon Dec 14, 2009 7:18 pm

Great to see that is progress still. How is status now? which version should people test for J 1.5 and J 1.6 ?

all the best!
Success in the long run Its not about the code its about the people and community that's make it!
Its not what you say its what you do that matters!

Darb - aka ssnobben


Locked

Return to “Joomla! 1.5 Coding”