AutomaticTextareaAutosave

From Request Tracker Wiki
Jump to navigation Jump to search

A number of my colleagues have a 5 button mouse where the 'thumb-button' is mapped to Back. I hear the cries of despair when they accidentally click this after spending 20 minutes working on a ticket ... This adds an automatic autosave to the comment/reply textarea of RT.

You will need a) Windows b) Firefox with the Save Text Area extension - https://addons.mozilla.org/en-US/firefox/addon/1046

- Ensure you have a directory C:\temp
- Open a new tab in Firefox, enter about:config in the location bar and edit the following

Name Value Purpose
extensions.savetextarea.autosave-delay 60 autosave every 60 seconds (you don’t have to change this, but I think the default 5 minutes is too long)
extensions.savetextarea.enable-attributes true make it so

|extensions.savetextarea.allow-attributes-from|https://your.rt.com/%7CThe machines to trust. Please read the Save Text Area notes about this setting|

You also need to modify RT:

$ pwd
/usr/local/share/request-tracker3.4/html/Elements

$ diff -d MessageBox.pre_autosave MessageBox
< <textarea class="messagebox" cols="<%$Width%>" rows="<%$Height%>" wrap="<%$Wrap%>" name="<%$Name%>"><& /Element

s/Callback, %ARGS &><% $Default %><%$message%><%$IncludeSignature ? $signature : ''%></textarea>

---
> <textarea class="messagebox" cols="<%$Width%>" rows="<%$Height%>" wrap="<%$Wrap%>" name="<%$Name%>" saveto="c:\

\temp\\RT-<%$uniq_id%>.txt" autosave="yes"><& /Elements/Callback, %ARGS &><% $Default %><%$message%><%$IncludeSig nature ? $signature : ''%></textarea>

50a51,53
> # get a unique number for save file
> my $uniq_id = rand(1000000);

Restart apache and away you go.

Whatever text is in the textarea of your comment/reply will be periodically saved according to the value you gave for autosave-delay. It is saved in a file with a name something like C:\temp\RT-118630.87127836.txt. Change the saveto parameter in MessageBox to call it something else, or save it somewhere else.

If you’ve just lost your work:

- Start->Run and enter c:\temp
- sort the directory display by Date Modified
- find the newest RT-* file
- in RT, open the ticket you were working on
- click Comment or Reply
- press Ctrl + Shift + L (or right-click and select Text->Load) and select the file you picked in 3 above
- voila! you shouldn’t have lost more than a minute’s work.

There is no mechanism to clear out old files; depending on the number and size of comments/replies you make, you should remove old C:\temp\RT-* files periodically.