--- /dev/null
+% if ( $Draft && $Draft->id && $Draft->Content ) {
+<input type="submit" class="button" name="LoadDraft" value="<&|/l&>Load draft</&>" />
+% }
+<input type="submit" class="button" name="SaveDraft" value="<% ($Draft && $Draft->id) ? loc('Update draft') : loc('Save draft')%>" />
+
+<script type="text/javascript">
+jQuery(function() {
+ timeout_save_draft = window.setTimeout(save_draft, <% RT->Config->Get('AutoSaveDraftPeriod', $session{'CurrentUser'}) || 300 %> * 1000);
+});
+
+function save_draft() {
+ jQuery.post("/Helpers/SaveDraft", {UserId: "<% $session{'CurrentUser'}->id %>", TicketId: "<% $Ticket->id %>", Content: jQuery('#UpdateContent').val(), ContentType: jQuery('#UpdateContent').hasClass('richtext') ? 'text/html' : 'text/plain'},
+ function(res) {
+ console.log(res);
+ }
+ );
+ timeout_save_draft = window.setTimeout(save_draft, <% RT->Config->Get('AutoSaveDraftPeriod', $session{'CurrentUser'}) || 300 %> * 1000);
+}
+</script>
+<%init>
+my $Ticket = LoadTicket($ARGS{'id'});
+
+my $Draft = RT::Attribute->new( $session{'CurrentUser'} );
+$Draft->LoadByNameAndObject( Object => $session{'CurrentUser'}->UserObj, Name => 'Draft-'.$Ticket->id );
+
+if ( $ARGS{'SaveDraft'} ) {
+ if ( $Draft && $Draft->Id ) {
+ $Draft->SetContent( $ARGS{'UpdateContent'} );
+ $Draft->SetContentType( $ARGS{'UpdateContentType'} || 'text/plain' );
+ } else {
+ $Draft->Create( Name => 'Draft-'.$Ticket->id,
+ Object => $session{'CurrentUser'}->UserObj,
+ Content => $ARGS{'UpdateContent'},
+ ContentType => $ARGS{'UpdateContentType'} || 'text/plain',
+ );
+ }
+}
+</%init>