summaryrefslogtreecommitdiffstats
path: root/wp-includes/js/autosave.js.php
diff options
context:
space:
mode:
Diffstat (limited to 'wp-includes/js/autosave.js.php')
-rw-r--r--wp-includes/js/autosave.js.php130
1 files changed, 130 insertions, 0 deletions
diff --git a/wp-includes/js/autosave.js.php b/wp-includes/js/autosave.js.php
new file mode 100644
index 0000000..cb73ebf
--- /dev/null
+++ b/wp-includes/js/autosave.js.php
@@ -0,0 +1,130 @@
+<?php @require_once('../../wp-config.php');
+$expiresOffset = 3600 * 24 * 10; // 10 days util client cache expires
+
+header("Content-type: text/javascript; charset: UTF-8");
+header("Vary: Accept-Encoding"); // Handle proxies
+header("Expires: " . gmdate("D, d M Y H:i:s", time() + $expiresOffset) . " GMT");
+
+
+?>
+var autosaveLast = '';
+function autosave_timer() {
+ autosave();
+ setTimeout("autosave_timer()", <?php echo apply_filters('autosave_interval', '60000') ?>);
+}
+
+function autosave_start_timer() {
+ setTimeout("autosave_timer()", <?php echo apply_filters('autosave_start_delay', '60000') ?>);
+}
+addLoadEvent(autosave_start_timer)
+
+function autosave_cur_time() {
+ var now = new Date();
+ return "" + ((now.getHours() >12) ? now.getHours() -12 : now.getHours()) +
+ ((now.getMinutes() < 10) ? ":0" : ":") + now.getMinutes() +
+ ((now.getSeconds() < 10) ? ":0" : ":") + now.getSeconds();
+}
+
+function autosave_update_nonce() {
+ var response = nonceAjax.response;
+ document.getElementsByName('_wpnonce')[0].value = response;
+}
+
+function autosave_update_post_ID() {
+ var response = autosaveAjax.response;
+ var res = parseInt(response);
+ var message;
+
+ if(isNaN(res)) {
+ message = "<?php _e('Error: '); ?>" + response;
+ } else {
+ message = "<?php _e('Saved at '); ?>" + autosave_cur_time();
+ $('post_ID').name = "post_ID";
+ $('post_ID').value = res;
+ $('hiddenaction').value = 'editpost';
+ // We need new nonces
+ nonceAjax = new sack();
+ nonceAjax.element = null;
+ nonceAjax.setVar("action", "autosave-generate-nonces");
+ nonceAjax.setVar("post_ID", res);
+ nonceAjax.setVar("cookie", document.cookie);
+ nonceAjax.setVar("post_type", $('post_type').value);
+ nonceAjax.requestFile = "<?php echo get_bloginfo('siteurl'); ?>/wp-admin/admin-ajax.php";
+ nonceAjax.onCompletion = autosave_update_nonce;
+ nonceAjax.method = "POST";
+ nonceAjax.runAJAX();
+
+ }
+ $('autosave').innerHTML = message;
+}
+
+function autosave_loading() {
+ $('autosave').innerHTML = "<?php _e('Saving Draft...'); ?>";
+}
+
+function autosave_saved() {
+ var response = autosaveAjax.response;
+ var res = parseInt(response);
+ var message;
+
+ if(isNaN(res)) {
+ message = "<?php _e('Error: '); ?>" + response;
+ } else {
+ message = "<?php _e('Saved at '); ?>" + autosave_cur_time() + ".";
+ }
+ $('autosave').innerHTML = message;
+}
+
+function autosave() {
+ var form = $('post');
+
+ autosaveAjax = new sack();
+
+ /* Gotta do this up here so we can check the length when tinyMCE is in use */
+ if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 ) {
+ autosaveAjax.setVar("content", form.content.value);
+ } else {
+ tinyMCE.wpTriggerSave();
+ autosaveAjax.setVar("content", form.content.value);
+ }
+
+ if(form.post_title.value.length==0 || form.content.value.length==0 || form.post_title.value+form.content.value == autosaveLast)
+ return;
+
+ autosaveLast = form.post_title.value+form.content.value;
+
+ cats = document.getElementsByName("post_category[]");
+ goodcats = ([]);
+ for(i=0;i<cats.length;i++) {
+ if(cats[i].checked)
+ goodcats.push(cats[i].value);
+ }
+ catslist = goodcats.join(",");
+
+ autosaveAjax.setVar("action", "autosave");
+ autosaveAjax.setVar("cookie", document.cookie);
+ autosaveAjax.setVar("catslist", catslist);
+ autosaveAjax.setVar("post_ID", $("post_ID").value);
+ autosaveAjax.setVar("post_title", form.post_title.value);
+ autosaveAjax.setVar("post_type", form.post_type.value);
+ if(form.excerpt)
+ autosaveAjax.setVar("excerpt", form.excerpt.value);
+
+ if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 ) {
+ autosaveAjax.setVar("content", form.content.value);
+ } else {
+ tinyMCE.wpTriggerSave();
+ autosaveAjax.setVar("content", form.content.value);
+ }
+
+ autosaveAjax.requestFile = "<?php echo get_bloginfo('siteurl'); ?>/wp-admin/admin-ajax.php";
+ autosaveAjax.method = "POST";
+ autosaveAjax.element = null;
+ autosaveAjax.onLoading = autosave_loading;
+ autosaveAjax.onInteractive = autosave_loading;
+ if(parseInt($("post_ID").value) < 1)
+ autosaveAjax.onCompletion = autosave_update_post_ID;
+ else
+ autosaveAjax.onCompletion = autosave_saved;
+ autosaveAjax.runAJAX();
+} \ No newline at end of file