Project

General

Profile

Actions

Feature #15090

closed

Improve usability of "Undo/History" feature.

Added by Kirill Klimov about 19 years ago. Updated over 18 years ago.

Status:
Closed
Priority:
Should have
Category:
-
Target version:
-
Start date:
2005-10-18
Due date:
% Done:

0%

Estimated time:
PHP Version:
4
Tags:
Complexity:
Sprint Focus:

Description

For now "Undo/History" feature isn't very nice from usability point of view.
Problems:

1. If you want to see changes (to undo some of that) you should go to the info module, "Log" section. It would be nice to be able to see this log from page module.

2. There is no way to restore deleted element (with deleted=1). Functionality more or less like at kj_recycler would be very nice to have at the same section as current history/log.

3. Page module, when editing page content element - there is one step back undo/redo. Would be nice to have:
3.1 More the one step available.
3.2 Different icons for undo and redo. Because for now redo feature is pretty hidden.

(issue imported from #M1650)


Files

bug_1650_undohistory.patch (26.7 KB) bug_1650_undohistory.patch Administrator Admin, 2005-12-06 23:10
bug_1650_undohistory_1.patch (29.7 KB) bug_1650_undohistory_1.patch Administrator Admin, 2005-12-08 13:47
bug_1650_undohistory_2.patch (34.2 KB) bug_1650_undohistory_2.patch Administrator Admin, 2005-12-09 22:47
showrechistest.zip (128 KB) showrechistest.zip Administrator Admin, 2005-12-12 19:50
bug_1650_undohistory_4.patch (69.8 KB) bug_1650_undohistory_4.patch Administrator Admin, 2006-01-18 20:43
bug_1650_undohistory_5.patch (69.5 KB) bug_1650_undohistory_5.patch Administrator Admin, 2006-01-18 21:34
Actions #1

Updated by Sebastian Kurfuerst about 19 years ago

some more things:
The function should be at first level of clickmenu.
Difference between "Accumulate changes up to that point" and "Restore old values of all fields below" is not evident.
Maybe some kind of "preview" before really doing it.

we should maybe wait ntil workspaces/versioning 1.0 is published, as this might have an impact on our work here.
greets, sebastian

Actions #2

Updated by Kirill Klimov about 19 years ago

Yes, I've also thought that probably it could wait until versioning 1.0
My idea was that even with current functionality, usability of this functions could be improved. However, if versioning 1.0 is near - let's wait, but please consider these ideas

Actions #3

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,
I'll try to take care of this in the next time.
Greets, Sebastian

Actions #4

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,

TECHNOLOGY PREVIEW

the attached patch is a first version of a rewrite of the undo/history feature. It is a kind of preview, not all functions are implemented yet.
TCEMain is extended to implement an undelete feature.

It works as following: Check out the page history - you will see the history of all records as well, including inserts and deletes of records (this will be made configurable).

Reverts only make sense when you first compare them with the current version of the record. This is what the small icons between each row are for. Click on one, then the summed up diff between the selected version and the current version is shown (again including inserts/deletes).

Then you can revert ALL changes by clicking onto the top "revert" icon next to the title, you can revert all changes for one content element, and you can as well revert only single fields.

I am very interested in comments and ideas.
Greets, Sebastian

Actions #5

Updated by Michael Stucki almost 19 years ago

Hi Sebastian. Your patch looks very interesting! Just a short question: Why did you replace class.show_rechis.inc with class.show_rechis_new.inc? Is it really a total rewrite of this file?

Actions #6

Updated by Sebastian Kurfuerst almost 19 years ago

Hi Michael,
I plan to rename class.show_rechis_new.inc to class.show_rechis.inc lateron, but for reference I wanted to keep both versions at the moment. Yes, the _new class is basically a complete rewrite, only a few things have been copied, but they have been modified afterwards as well.
Greets, Sebastian

Actions #7

Updated by Kirill Klimov almost 19 years ago

Hi Sebastian,
your patch is intended for CVS version, right?

Because I've tried it with 3.8.0 and got

Fatal error: Call to undefined function: getworkspaceversionofrecord() in /www/typo3_src-3.8.0/typo3/class.show_rechis_new.inc on line 649

when trying to access history feature.

Actions #8

Updated by Sebastian Kurfuerst almost 19 years ago

Hi Kirill,
you are right. Sorry, but I cannot provide a patch for 3.8.0...

Greets, Sebastian

Actions #9

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,
concerning tests on 3.8.0/3.8.1 - just comment out the contents of the function "resolveElement" (but NOT the function itself)

Then it should work.
Greets, Sebastian

Actions #10

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,
the new patch _1 implements some more settings. Please test. There is a short ToDo list on top of the function "main".

for 3.8.* just comment out the contents of the function "resolveElement" (but NOT the function itself), but LEAVE "return $uid" inside the function

Greets, Sebastian

Actions #11

Updated by Kirill Klimov almost 19 years ago

Hi Sebastian,
have tried patch_1 on 3.8.0
1st of all - it looks great - thnx for your work. Now comments:

1. It's not clear/evident from 1st look what arrow button should be used to revert to some point (the one below or above needed line).

2. Clicking top arrow results to these warnings:
--------------------------
Warning: array_keys(): The first argument should be an array in /www/typo3_src-3.8.0/typo3/class.show_rechis_new.inc on line 357

Warning: array_keys(): The first argument should be an array in /www/typo3_src-3.8.0/typo3/class.show_rechis_new.inc on line 357
--------------------------

Actions #12

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,
I have uploaded the _2 version.
This update contains the possibility to set all configuration options. For 3.8, do as described before.

We are getting nearer to a more stable version. One important issue is that the history-table is NOT cleaned up automatically right now, as the "snapshot"-feature doesn't work anymore then. I don't have any clean suggestions how to archive that, the easiest solution would be to drop the snapshot feature (has been superseded by versions anyways), or remove the auto-cleaning.

Any comments?
Sebastian

Actions #13

Updated by Sebastian Kurfuerst almost 19 years ago

[posted on DEV, but contains more information as well, that's why I post it here.:]

Hi,
I currently re-code the current Undo/History feature to a more usable
form. The current version of my code can be found here:
http://bugs.typo3.org/view.php?id=1650
The patches are created against CVS. To check it against 3.8.* just
remove out the contents of the function "resolveElement" (NOT the
function itself), but LEAVE "return $uid" inside the function.

Here is what is changed: * I reversed the view - new entries are on top now (more common) * you can set how many items should be shown in history * you can see changes on content elements as well when looking at
the history of a page * inserts and deletes appear in the history now

Every revert has 3 steps now:
1. see the complete history
2. see the differences between the current revision of the
record(s) and the selected time
3. rollback all changes, some records or some fields of some
records

What doesn't work yet and brings problems is the "snapshot" feature. I'd
drop it, as the current implementation is not usable. Imagine a
situation where a snapshot is preserved, then some new history entries
are created and they are as well deleted. then the snapshot is in an
inconsistent state as well - that's as it is right now.
I would drop the snapshot feature as this is IMO covered by versioning /
workspaces perfectly. Any comments?

Anyways, I'd like to hear some suggestions on
- usability
- UI design
- Icons (maybe somebody can create some fancy ones?)
(- features)

It'd be great if somebody was interested in it, as I want to integrate
this feature in 4.0.

I appreciate any kinds of comments.

Greets, Sebastian

Actions #14

Updated by Kirill Klimov almost 19 years ago

Hi, Sebastian
have also tried patch_2 - it works ok.

Anyways, I'd like to hear some suggestions on
- usability
- UI design

As I already mentioned here - arrow icons "between" the lines was little bit confusing from the beginning. I've was thinking how it could be improved... Here is what I think could change the situation:

1. Remove the top arrow icon and link. Anyway it isn't functional because should revert state to current one, so does nothing - in that case why it should be present there..?
2. Add 1st table row with headers to columns, so it would be absolutely clear from 1st look for everyone what does every column mean.

Actions #15

Updated by Sebastian Kurfuerst almost 19 years ago

The zip file contain all modified files. just copy them to your CVS install.
For 3.8.1, do the change outlined above.
Greets, Sebastian

Actions #16

Updated by Kirill Klimov almost 19 years ago

Hi,

files from zip doesn't work with 3.8.0 - when trying to restore element, got

Fatal error: Call to undefined function: workspaceol() in /www/typo3_src-3.8.0/t3lib/class.t3lib_tcemain.php on line 4166

but still, now it looks much better with new headlines.

the only problem I can see still is:
- top arrow button: while it is really better now because there is no warnings after clicking it, but still we don't need this button because it has no function ...

Actions #17

Updated by Sebastian Kurfuerst almost 19 years ago

hi kiril, I'll remove the top button.
greets, sebastian

Actions #18

Updated by anoop atre almost 19 years ago

Zip file not liked by 3.8.1 also or maybe just me.

TYPO3_VERSION: 3.8.1
PHP_VERSION : 4.3.4

When I try to add/edit/delete content on pages I get the following error:

Fatal error: Call to undefined function: getworkspaceversionofrecord() in /srv/www/typo3_src-3.8.1/t3lib/class.t3lib_tcemain.php

ADD: Line 583
EDIT: Line 4166
DELETE: Line 2952

On using "Rollback changes" I got this error:

Fatal error: Call to undefined function: workspaceol() in /srv/www/typo3_src-3.8.1/t3lib/class.t3lib_tcemain.php on line 4166

Yes I did follow instructions in note 0004453.

USABILITY:

I agree with Kirill that the top arrow needs to go and I see you already have the column headers : )

Option "Show Diff" - Inline and Popup are both the same?

"Click to go back" should go back to the history (?)

"Accumulate changes to this point" What does this mean? Maybe should be "View history/changes till this point"?

I like the background color change when I select "Protect this state from being erased" for each state (needs an explanation like the one line about red/green text?) BUT once I click that icon I expect the icon mesage to change to "UN-Protect this state from being erased" or something similar.

~

Actions #19

Updated by dummy-download-user since almost 19 years ago

Looks useful to me.

Using the little arrow "summarize changes up to this point" results in:

Warning: array_merge() [function.array-merge]: Argument #1 is not an array in /pathOnServer/typo3_src-3.9.dev-CVS/typo3/class.show_rechis_new.inc on line 505

Option popup seems not implemented yet?

Actions #20

Updated by Sebastian Kurfuerst almost 19 years ago

I've asked someone else for the left triangles and the impression was
exactly like mine. They look like a rendering problem...

We agreed that having more space between records (anyway it's not a page
most people will print...) is the way to go.

The triangle doesn't "speak" enough. An arrow and a watch or calendar
would be better and maybe even print the text "Get back to this state".

We found the actual "Accumulate changes up to this point" quite
difficult to grasp...

Feature to add:

Show the 2 values related to TCEMain:

history.keepEntries

history.maxAgeDays

Change the color to red and green for

Record was deleted

Record was inserted

Patrick Gaumond

Actions #21

Updated by Sebastian Kurfuerst almost 19 years ago

hi anoopa,
sorry, I just noticed you are completely right. unfortunately the zip wont work with 3.8.1.
greets, Sebastian

Actions #22

Updated by anoop atre almost 19 years ago

Thanks to Bernard Kraft I got to test 3.9.0-dev and tried the changes, everything works fine!

I did see the following error at the bottom panel but that went away after I did a page reload.

Warning: Invalid argument supplied for foreach() in /srv/www/typo3_src-3.9.0-dev/typo3/alt_shortcut.php on line 534

Backwards compatibility (?) and Usability/UI need to be looked at I'm not great at any of them but will test when available. Maybe the design group can take a look at it with regards to UI/Usability when you are ready.

Actions #23

Updated by Sebastian Kurfuerst almost 19 years ago

Hi,
Undo/history is almost ready I think! I have set up a testing server at http://testing.garbage-group.de/typo3 - if you want to have BE access for testing, please tell me. Any feedback is very appreciated.

Greets, Sebastian

Actions #24

Updated by Michael Stucki almost 19 years ago

Anoop: I noticed your bug in alt_shortcut.php and will take care of it. It has nothing to do with the undo/history feature.

Actions #25

Updated by anoop atre almost 19 years ago

Michael: Thanks!

Sebastian: The extra features on the rollback preview page are very impressive : )

I think the usability has improved a lot, just a couple of new observations:
1. Do we want to have a column name "State" for the right most column?
2. What does "Mark State" mean? Should there be a small description like there is for the "Difference" column at the bottom of the list?
3. Would be nice if we could have nicer icons, for rollback options. I'll try to work on it later today or on Friday (if it's not too late).

Actions #26

Updated by Sebastian Kurfuerst almost 19 years ago

Finally in the core! Thanks for everybody providing input.
Greets, Sebastian

Actions

Also available in: Atom PDF