#57165 add periodic autosave feature to RT-Extension-Drafts
[manu/RT-Extension-Drafts.git] / html / Callbacks / Drafts / Ticket / Update.html / AfterMessageBox
index e92c773..fb9e389 100644 (file)
@@ -2,11 +2,26 @@
 <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'}, Name => 'Draft-'.$Ticket->id );
+$Draft->LoadByNameAndObject( Object => $session{'CurrentUser'}->UserObj, Name => 'Draft-'.$Ticket->id );
 
 if ( $ARGS{'SaveDraft'} ) {
     if ( $Draft && $Draft->Id ) {
@@ -14,7 +29,7 @@ if ( $ARGS{'SaveDraft'} ) {
         $Draft->SetContentType( $ARGS{'UpdateContentType'} || 'text/plain' );
     } else {
         $Draft->Create( Name => 'Draft-'.$Ticket->id,
-            Object => $session{'CurrentUser'},
+            Object => $session{'CurrentUser'}->UserObj,
             Content => $ARGS{'UpdateContent'},
             ContentType => $ARGS{'UpdateContentType'} || 'text/plain',
         );