mirror of
https://github.com/WordPress/WordPress.git
synced 2024-08-19 20:33:00 +02:00
git-svn-id: http://core.svn.wordpress.org/trunk@23930 1a063a9b-81f0-0310-95a4-ce76da25c4cd
1 line
11 KiB
JavaScript
1 line
11 KiB
JavaScript
var autosave,autosaveLast="",autosavePeriodical,autosaveDelayPreview=false,notSaved=true,blockSave=false,fullscreen,autosaveLockRelease=true;jQuery(document).ready(function(a){autosaveLast=(a("#post #title").val()||"")+(a("#post #content").val()||"");autosavePeriodical=a.schedule({time:autosaveL10n.autosaveInterval*1000,func:function(){autosave()},repeat:true,protect:true});a("#post").submit(function(){a.cancel(autosavePeriodical);autosaveLockRelease=false});a('input[type="submit"], a.submitdelete',"#submitpost").click(function(){blockSave=true;window.onbeforeunload=null;a(":button, :submit","#submitpost").each(function(){var b=a(this);if(b.hasClass("button-primary")){b.addClass("button-primary-disabled")}else{b.addClass("button-disabled")}});if(a(this).attr("id")=="publish"){a("#major-publishing-actions .spinner").show()}else{a("#minor-publishing .spinner").show()}});window.onbeforeunload=function(){var b=typeof(tinymce)!="undefined"?tinymce.activeEditor:false,d,c;if(b&&!b.isHidden()){if(b.isDirty()){return autosaveL10n.saveAlert}}else{if(fullscreen&&fullscreen.settings.visible){d=a("#wp-fullscreen-title").val()||"";c=a("#wp_mce_fullscreen").val()||""}else{d=a("#post #title").val()||"";c=a("#post #content").val()||""}if((d||c)&&d+c!=autosaveLast){return autosaveL10n.saveAlert}}};a(window).unload(function(b){if(!autosaveLockRelease){return}if(b.target&&b.target.nodeName!="#document"){return}a.ajax({type:"POST",url:ajaxurl,async:false,data:{action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:a("#post_ID").val(),active_post_lock:a("#active_post_lock").val()}})});a("#post-preview").click(function(){if(a("#auto_draft").val()=="1"&¬Saved){autosaveDelayPreview=true;autosave();return false}doPreview();return false});doPreview=function(){a("input#wp-preview").val("dopreview");a("form#post").attr("target","wp-preview").submit().attr("target","");var b=navigator.userAgent.toLowerCase();if(b.indexOf("safari")!=-1&&b.indexOf("chrome")==-1){a("form#post").attr("action",function(c,d){return d+"?t="+new Date().getTime()})}a("input#wp-preview").val("")};a("#title").on("keydown.editor-focus",function(c){var b;if(c.which!=9){return}if(!c.ctrlKey&&!c.altKey&&!c.shiftKey){if(typeof(tinymce)!="undefined"){b=tinymce.get("content")}if(b&&!b.isHidden()){a(this).one("keyup",function(d){a("#content_tbl td.mceToolbar > a").focus()})}else{a("#content").focus()}c.preventDefault()}});if("1"==a("#auto_draft").val()){a("#title").blur(function(){if(!this.value||a("#auto_draft").val()!="1"){return}delayed_autosave()})}a(document).on("heartbeat-connection-lost.autosave",function(){autosave_disable_buttons();a("#lost-connection-notice").show()}).on("heartbeat-connection-restored.autosave",function(){autosave_enable_buttons();a("#lost-connection-notice").hide()})});function autosave_parse_response(b){var d=wpAjax.parseAjaxResponse(b,"autosave"),c,a;if(d&&d.responses&&d.responses.length){if(d.responses[0].supplemental){a=d.responses[0].supplemental;jQuery.each(a,function(e,f){if(e.match(/^replace-/)){jQuery("#"+e.replace("replace-","")).val(f)}})}if(!d.errors){if(c=parseInt(d.responses[0].id,10)){autosave_update_slug(c)}if(d.responses[0].data){jQuery(".autosave-message").text(d.responses[0].data)}}}return d}function autosave_saved(a){blockSave=false;autosave_parse_response(a);autosave_enable_buttons()}function autosave_saved_new(a){blockSave=false;var c=autosave_parse_response(a),b;if(c&&c.responses.length&&!c.errors){b=parseInt(c.responses[0].id,10);if(b){notSaved=false;jQuery("#auto_draft").val("0")}autosave_enable_buttons();if(autosaveDelayPreview){autosaveDelayPreview=false;doPreview()}}else{autosave_enable_buttons()}}function autosave_update_slug(a){if("undefined"!=makeSlugeditClickable&&jQuery.isFunction(makeSlugeditClickable)&&!jQuery("#edit-slug-box > *").size()){jQuery.post(ajaxurl,{action:"sample-permalink",post_id:a,new_title:fullscreen&&fullscreen.settings.visible?jQuery("#wp-fullscreen-title").val():jQuery("#title").val(),samplepermalinknonce:jQuery("#samplepermalinknonce").val()},function(c){if(c!=="-1"){var b=jQuery("#edit-slug-box");b.html(c);if(b.hasClass("hidden")){b.fadeIn("fast",function(){b.removeClass("hidden")})}makeSlugeditClickable()}})}}function autosave_loading(){jQuery(".autosave-message").html(autosaveL10n.savingText)}function autosave_enable_buttons(){if(!wp.heartbeat.connectionLost){setTimeout(function(){var a=jQuery("#submitpost");a.find(":button, :submit").removeAttr("disabled");a.find(".spinner").hide()},500)}}function autosave_disable_buttons(){jQuery("#submitpost").find(":button, :submit").prop("disabled",true);setTimeout(autosave_enable_buttons,5000)}function delayed_autosave(){setTimeout(function(){if(blockSave){return}autosave()},200)}autosave=function(){blockSave=true;var c=(typeof tinymce!="undefined")&&tinymce.activeEditor&&!tinymce.activeEditor.isHidden(),d,f,b,e,a;autosave_disable_buttons();d=wp.autosave.getPostData();f=d.autosave;if(jQuery("#TB_window").css("display")=="block"){f=false}if((d.post_title.length==0&&d.content.length==0)||d.post_title+d.content==autosaveLast){f=false}if(f){autosaveLast=d.post_title+d.content;jQuery(document).triggerHandler("wpcountwords",[d.content])}else{d.autosave=0}if(d.auto_draft=="1"){a=autosave_saved_new}else{a=autosave_saved}jQuery.ajax({data:d,beforeSend:f?autosave_loading:null,type:"POST",url:ajaxurl,success:a})};window.wp=window.wp||{};wp.autosave=wp.autosave||{};(function(a){wp.autosave.getPostData=function(){var c=typeof tinymce!="undefined"?tinymce.activeEditor:null,e,g,b,d=[],f={action:"autosave",autosave:true,post_id:a("#post_ID").val()||0,autosavenonce:a("#autosavenonce").val()||"",post_type:a("#post_type").val()||"",post_author:a("#post_author").val()||"",excerpt:a("#excerpt").val()||""};if(c&&!c.isHidden()){if(c.plugins.spellchecker&&c.plugins.spellchecker.active){f.autosave=false;return f}else{if("mce_fullscreen"==c.id){tinymce.get("content").setContent(c.getContent({format:"raw"}),{format:"raw"})}tinymce.triggerSave()}}if(typeof fullscreen!="undefined"&&fullscreen.settings.visible){f.post_title=a("#wp-fullscreen-title").val()||"";f.content=a("#wp_mce_fullscreen").val()||""}else{f.post_title=a("#title").val()||"";f.content=a("#content").val()||""}a('input[id^="in-category-"]:checked').each(function(){d.push(this.value)});f.catslist=d.join(",");if(e=a("#post_name").val()){f.post_name=e}if(g=a("#parent_id").val()){f.parent_id=g}if(a("#comment_status").prop("checked")){f.comment_status="open"}if(a("#ping_status").prop("checked")){f.ping_status="open"}if(a("#auto_draft").val()=="1"){f.auto_draft="1"}b=a("#post_format").val()||"";f.post_format=b=="standard"?"":b;a(".post-formats-fields").find('input[name^="_wp_format_"], textarea[name^="_wp_format_"]').each(function(h,j){f[j.name]=j.value||""});return f};wp.autosave.local={lastsaveddata:"",blog_id:0,ajaxurl:window.ajaxurl||"wp-admin/admin-ajax.php",hasStorage:false,checkStorage:function(){var d=Math.random(),b=false;try{sessionStorage.setItem("wp-test",d);b=sessionStorage.getItem("wp-test")==d;sessionStorage.removeItem("wp-test")}catch(c){}this.hasStorage=b;return b},getStorage:function(){var b=false;if(this.hasStorage&&this.blog_id){b=sessionStorage.getItem("wp-autosave-"+this.blog_id);if(b){b=JSON.parse(b)}else{b={}}}return b},setStorage:function(b){var c;if(this.hasStorage&&this.blog_id){c="wp-autosave-"+this.blog_id;sessionStorage.setItem(c,JSON.stringify(b));return sessionStorage.getItem(c)!==null}return false},getData:function(){var c=this.getStorage(),b=a("#post_ID").val();if(!c||!b){return false}return c["post_"+b]||false},setData:function(b){var d=this.getStorage(),c=a("#post_ID").val();if(!d||!c){return false}if(b){d["post_"+c]=b}else{if(d.hasOwnProperty("post_"+c)){delete d["post_"+c]}else{return false}}return this.setStorage(d)},save:function(c){var b=false;if(!c){post_data=wp.autosave.getPostData()}else{post_data=this.getData()||{};a.extend(post_data,c)}if(post_data.post_title+": "+post_data.content==this.lastsaveddata){return false}if(!post_data.autosave){return false}post_data.save_time=(new Date()).getTime();post_data.status=a("#post_status").val()||"";b=this.setData(post_data);if(typeof console!="undefined"){console.log("Local autosave: saved, post content = %s",post_data.content)}if(b){this.lastsaveddata=post_data.post_title+": "+post_data.content}return b},init:function(c){var b=this;if("post"!=window.pagenow||!this.checkStorage()){return}if(typeof switchEditors=="undefined"){return}if(c){a.extend(this,c)}if(!this.blog_id){this.blog_id=typeof window.autosaveL10n!="undefined"?window.autosaveL10n.blog_id:0}this.checkPost();a(document).ready(function(){b.run()})},run:function(){var b=this,c;if(!this.lastsaveddata){c=wp.autosave.getPostData();if(c.content&&a("#wp-content-wrap").hasClass("tmce-active")){this.lastsaveddata=c.post_title+": "+switchEditors.pre_wpautop(c.content)}else{this.lastsaveddata=c.post_title+": "+c.content}}this.schedule=a.schedule({time:15*1000,func:function(){wp.autosave.local.save()},repeat:true,protect:true});a("form#post").on("submit.autosave-local",function(){var e=typeof tinymce!="undefined"&&tinymce.get("content"),d=a("#post_ID").val()||0;if(e&&!e.isHidden()){e.onSubmit.add(function(){wp.autosave.local.save({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})})}else{b.save({post_title:a("#title").val()||"",content:a("#content").val()||"",excerpt:a("#excerpt").val()||""})}wpCookies.set("wp-saving-post-"+d,"check")})},compare:function(d,c){function b(e){return e.toString().replace(/[\x20\t\r\n\f]+/g,"")}return(b(d||"")==b(c||""))},checkPost:function(){var b=this,i=this.getData(),f,h,e=false,g,c=a("#post_ID").val()||0,d=wpCookies.get("wp-saving-post-"+c);if(typeof console!="undefined"){console.log("Local autosave: checkPost, cookie = %s, post content = %s",d,i&&i.content)}if(!i){return}if(d){wpCookies.remove("wp-saving-post-"+c);if(d=="saved"){this.setData(false);return}}if(a("#has-newer-autosave").length){return}if(d!="check"){f=a("#content").val();h=a.extend({},i);if(a("#wp-content-wrap").hasClass("tmce-active")){f=switchEditors.pre_wpautop(f)}if(this.compare(f,h.content)&&this.compare(a("#title").val(),h.post_title)&&this.compare(a("#excerpt").val(),h.excerpt)){return}}this.restore_post_data=i;this.undo_post_data=wp.autosave.getPostData();g=a("#local-storage-notice");a("form#post").before(g.addClass("updated").show());g.on("click",function(k){var j=a(k.target);if(j.hasClass("restore-backup")){b.restorePost(b.restore_post_data);j.parent().hide();a(this).find("p.undo-restore").show()}else{if(j.hasClass("undo-restore-backup")){b.restorePost(b.undo_post_data);j.parent().hide();a(this).find("p.local-restore").show()}}k.preventDefault()})},restorePost:function(c){var b;if(c){this.lastsaveddata=c.post_title+": "+c.content;if(a("#title").val()!=c.post_title){a("#title").focus().val(c.post_title||"")}a("#excerpt").val(c.excerpt||"");b=typeof tinymce!="undefined"&&tinymce.get("content");if(b&&!b.isHidden()){b.undoManager.add();b.setContent(c.content?switchEditors.wpautop(c.content):"")}else{a("#content-html").click();a("#content").val(c.content)}return true}return false}};wp.autosave.local.init()}(jQuery)); |