PHP Cross Reference of WordPress Subversion HEAD |
| [ Index ] [ Classes ] [ Functions ] [ Variables ] [ Constants ] |
[Summary view] [Print] [Text view]
1 var autosaveLast = ''; 2 var autosavePeriodical; 3 4 function autosave_start_timer() { 5 var form = $('post'); 6 autosaveLast = form.post_title.value+form.content.value; 7 // Keep autosave_interval in sync with edit_post(). 8 autosavePeriodical = new PeriodicalExecuter(autosave, autosaveL10n.autosaveInterval); 9 //Disable autosave after the form has been submitted 10 if(form.addEventListener) { 11 form.addEventListener("submit", function () { autosavePeriodical.currentlyExecuting = true; }, false); 12 } 13 if(form.attachEvent) { 14 form.save ? form.save.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 15 form.submit ? form.submit.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 16 form.publish ? form.publish.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 17 form.deletepost ? form.deletepost.attachEvent("onclick", function () { autosavePeriodical.currentlyExecuting = true; }) : null; 18 } 19 } 20 addLoadEvent(autosave_start_timer) 21 22 function autosave_cur_time() { 23 var now = new Date(); 24 return "" + ((now.getHours() >12) ? now.getHours() -12 : now.getHours()) + 25 ((now.getMinutes() < 10) ? ":0" : ":") + now.getMinutes() + 26 ((now.getSeconds() < 10) ? ":0" : ":") + now.getSeconds(); 27 } 28 29 function autosave_update_nonce() { 30 var response = nonceAjax.response; 31 document.getElementsByName('_wpnonce')[0].value = response; 32 } 33 34 function autosave_update_post_ID() { 35 var response = autosaveAjax.response; 36 var res = parseInt(response); 37 var message; 38 39 if(isNaN(res)) { 40 message = autosaveL10n.errorText.replace(/%response%/g, response); 41 } else { 42 message = autosaveL10n.saveText.replace(/%time%/g, autosave_cur_time()); 43 $('post_ID').name = "post_ID"; 44 $('post_ID').value = res; 45 // We need new nonces 46 nonceAjax = new sack(); 47 nonceAjax.element = null; 48 nonceAjax.setVar("action", "autosave-generate-nonces"); 49 nonceAjax.setVar("post_ID", res); 50 nonceAjax.setVar("cookie", document.cookie); 51 nonceAjax.setVar("post_type", $('post_type').value); 52 nonceAjax.requestFile = autosaveL10n.requestFile; 53 nonceAjax.onCompletion = autosave_update_nonce; 54 nonceAjax.method = "POST"; 55 nonceAjax.runAJAX(); 56 $('hiddenaction').value = 'editpost'; 57 } 58 $('autosave').innerHTML = message; 59 autosave_enable_buttons(); 60 } 61 62 function autosave_loading() { 63 $('autosave').innerHTML = autosaveL10n.savingText; 64 } 65 66 function autosave_saved() { 67 var response = autosaveAjax.response; 68 var res = parseInt(response); 69 var message; 70 71 if(isNaN(res)) { 72 message = autosaveL10n.errorText.replace(/%response%/g, response); 73 } else { 74 message = autosaveL10n.saveText.replace(/%time%/g, autosave_cur_time()); 75 } 76 $('autosave').innerHTML = message; 77 autosave_enable_buttons(); 78 } 79 80 function autosave_disable_buttons() { 81 var form = $('post'); 82 form.save ? form.save.disabled = 'disabled' : null; 83 form.submit ? form.submit.disabled = 'disabled' : null; 84 form.publish ? form.publish.disabled = 'disabled' : null; 85 form.deletepost ? form.deletepost.disabled = 'disabled' : null; 86 setTimeout('autosave_enable_buttons();', 1000); // Re-enable 1 sec later. Just gives autosave a head start to avoid collisions. 87 } 88 89 function autosave_enable_buttons() { 90 var form = $('post'); 91 form.save ? form.save.disabled = '' : null; 92 form.submit ? form.submit.disabled = '' : null; 93 form.publish ? form.publish.disabled = '' : null; 94 form.deletepost ? form.deletepost.disabled = '' : null; 95 } 96 97 function autosave() { 98 var form = $('post'); 99 var rich = ((typeof tinyMCE != "undefined") && tinyMCE.getInstanceById('content')) ? true : false; 100 101 autosaveAjax = new sack(); 102 103 /* Gotta do this up here so we can check the length when tinyMCE is in use */ 104 if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 || rich == false ) { 105 autosaveAjax.setVar("content", form.content.value); 106 } else { 107 // Don't run while the TinyMCE spellcheck is on. 108 if(tinyMCE.selectedInstance.spellcheckerOn) return; 109 tinyMCE.wpTriggerSave(); 110 autosaveAjax.setVar("content", form.content.value); 111 } 112 113 if(form.post_title.value.length==0 || form.content.value.length==0 || form.post_title.value+form.content.value == autosaveLast) 114 return; 115 116 autosave_disable_buttons(); 117 118 autosaveLast = form.post_title.value+form.content.value; 119 120 cats = document.getElementsByName("post_category[]"); 121 goodcats = ([]); 122 for(i=0;i<cats.length;i++) { 123 if(cats[i].checked) 124 goodcats.push(cats[i].value); 125 } 126 catslist = goodcats.join(","); 127 128 autosaveAjax.setVar("action", "autosave"); 129 autosaveAjax.setVar("cookie", document.cookie); 130 autosaveAjax.setVar("catslist", catslist); 131 autosaveAjax.setVar("post_ID", $("post_ID").value); 132 autosaveAjax.setVar("post_title", form.post_title.value); 133 autosaveAjax.setVar("post_type", form.post_type.value); 134 if ( form.comment_status.checked ) 135 autosaveAjax.setVar("comment_status", 'open'); 136 if ( form.ping_status.checked ) 137 autosaveAjax.setVar("ping_status", 'open'); 138 if(form.excerpt) 139 autosaveAjax.setVar("excerpt", form.excerpt.value); 140 141 if ( typeof tinyMCE == "undefined" || tinyMCE.configs.length < 1 || rich == false ) { 142 autosaveAjax.setVar("content", form.content.value); 143 } else { 144 tinyMCE.wpTriggerSave(); 145 autosaveAjax.setVar("content", form.content.value); 146 } 147 148 autosaveAjax.requestFile = autosaveL10n.requestFile; 149 autosaveAjax.method = "POST"; 150 autosaveAjax.element = null; 151 autosaveAjax.onLoading = autosave_loading; 152 autosaveAjax.onInteractive = autosave_loading; 153 if(parseInt($("post_ID").value) < 1) 154 autosaveAjax.onCompletion = autosave_update_post_ID; 155 else 156 autosaveAjax.onCompletion = autosave_saved; 157 autosaveAjax.runAJAX(); 158 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated Thu Dec 6 06:47:08 2007 for RedAlt XRefs | Cross-referenced by PHPXref 0.6 and RedAlt |