Added feature setting for auto-save, defaulting to enabled.

This commit is contained in:
Andrew Manning 2018-04-08 19:44:21 -04:00
parent 4760dc9bcb
commit f9ec3c66ff
6 changed files with 68 additions and 36 deletions

View File

@ -733,6 +733,8 @@ class ThreadItem {
$arr = array('comment_buttons' => '','id' => $this->get_id());
call_hooks('comment_buttons',$arr);
$comment_buttons = $arr['comment_buttons'];
$feature_auto_save_draft = ((feature_enabled($conv->get_profile_owner(), 'auto_save_draft')) ? "true" : "false");
$comment_box = replace_macros($template,array(
'$return_path' => '',
@ -768,7 +770,8 @@ class ThreadItem {
'$anoncomments' => ((($conv->get_mode() === 'channel' || $conv->get_mode() === 'display') && perm_is_allowed($conv->get_profile_owner(),'','post_comments')) ? true : false),
'$anonname' => [ 'anonname', t('Your full name (required)') ],
'$anonmail' => [ 'anonmail', t('Your email address (required)') ],
'$anonurl' => [ 'anonurl', t('Your website URL (optional)') ]
'$anonurl' => [ 'anonurl', t('Your website URL (optional)') ],
'$auto_save_draft' => $feature_auto_save_draft,
));
return $comment_box;

View File

@ -1301,7 +1301,9 @@ function status_editor($a, $x, $popup = false) {
$id_select = '';
$webpage = ((x($x,'webpage')) ? $x['webpage'] : '');
$feature_auto_save_draft = ((feature_enabled($x['profile_uid'], 'auto_save_draft')) ? "true" : "false");
$tpl = get_markup_template('jot-header.tpl');
App::$page['htmlhead'] .= replace_macros($tpl, array(
@ -1323,6 +1325,7 @@ function status_editor($a, $x, $popup = false) {
'$modalerroralbum' => t('Error getting album'),
'$nocomment_enabled' => t('Comments enabled'),
'$nocomment_disabled' => t('Comments disabled'),
'$auto_save_draft' => $feature_auto_save_draft,
));
$tpl = get_markup_template('jot.tpl');

View File

@ -350,6 +350,15 @@ function get_features($filtered = true) {
feature_level('suppress_duplicates',1),
],
[
'auto_save_draft',
t('Auto-save drafts of posts and comments'),
t('Automatically saves post and comment drafts in local browser storage to help prevent accidental loss of compositions'),
true,
get_config('feature_lock','auto_save_draft'),
feature_level('auto_save_draft',1),
],
],
// Network Tools

View File

@ -167,9 +167,13 @@ function handle_comment_form(e) {
$('#' + commentElm).attr('tabindex','9');
$('#' + submitElm).attr('tabindex','10');
var commentBody = localStorage.getItem("comment_body");
if(commentBody && $('#' + commentElm).val() === '') {
$('#' + commentElm).val(commentBody);
if(auto_save_draft) {
var commentBody = localStorage.getItem("comment_body");
if(commentBody && $('#' + commentElm).val() === '') {
$('#' + commentElm).val(commentBody);
}
} else {
localStorage.removeItem("comment_body");
}
form.find(':not(:visible)').show();
@ -207,10 +211,12 @@ function handle_comment_form(e) {
},10000);
});
function commentSaveChanges(isFinal = false, type) {
localStorage.setItem("comment_body", $('#' + emptyCommentElm).val());
if( !isFinal) {
commentSaveTimer = setTimeout(commentSaveChanges,10000);
function commentSaveChanges(isFinal = false) {
if(auto_save_draft) {
localStorage.setItem("comment_body", $('#' + emptyCommentElm).val());
if( !isFinal) {
commentSaveTimer = setTimeout(commentSaveChanges,10000);
}
}
}
}

View File

@ -1,3 +1,6 @@
<script>
var auto_save_draft = {{$auto_save_draft}};
</script>
{{if $threaded}}
<div class="comment-wwedit-wrapper threaded" id="comment-edit-wrapper-{{$id}}" style="display: block;">
{{else}}

View File

@ -580,37 +580,45 @@ $( document ).on( "click", ".wall-item-delete-link,.page-delete-link,.layout-del
});
function postSaveChanges(isFinal = false, type) {
localStorage.setItem("post_title", $("#jot-title").val());
localStorage.setItem("post_body", $("#profile-jot-text").val());
localStorage.setItem("post_category", $("#jot-category").val());
if( !isFinal) {
postSaveTimer = setTimeout(postSaveChanges,10000);
}
if({{$auto_save_draft}}) {
localStorage.setItem("post_title", $("#jot-title").val());
localStorage.setItem("post_body", $("#profile-jot-text").val());
localStorage.setItem("post_category", $("#jot-category").val());
if( !isFinal) {
postSaveTimer = setTimeout(postSaveChanges,10000);
}
}
}
$(document).ready(function() {
var postTitle = localStorage.getItem("post_title");
var postBody = localStorage.getItem("post_body");
var postCategory = localStorage.getItem("post_category");
var openEditor = false;
if(postTitle) {
$('#jot-title').val(postTitle);
openEditor = true;
}
if(postBody) {
$('#profile-jot-text').val(postBody);
openEditor = true;
}
if(postCategory) {
var categories = postCategory.split(',');
categories.forEach(function(cat) {
$('#jot-category').tagsinput('add', cat);
});
openEditor = true;
}
if(openEditor) {
initEditor();
if({{$auto_save_draft}}) {
var postTitle = localStorage.getItem("post_title");
var postBody = localStorage.getItem("post_body");
var postCategory = localStorage.getItem("post_category");
var openEditor = false;
if(postTitle) {
$('#jot-title').val(postTitle);
openEditor = true;
}
if(postBody) {
$('#profile-jot-text').val(postBody);
openEditor = true;
}
if(postCategory) {
var categories = postCategory.split(',');
categories.forEach(function(cat) {
$('#jot-category').tagsinput('add', cat);
});
openEditor = true;
}
if(openEditor) {
initEditor();
}
} else {
localStorage.removeItem("post_title");
localStorage.removeItem("post_body");
localStorage.removeItem("post_category");
}
});