Make WordPress Core

Changeset 4085


Ignore:
Timestamp:
08/11/2006 06:19:32 PM (20 years ago)
Author:
ryan
Message:

wpTriggerSave for autosave. does not move cursor.

Location:
trunk/wp-includes/js
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/js/autosave.js.php

    r4084 r4085  
    88
    99?>
     10var autosaveLast = '';
    1011function autosave_timer() {
    1112        autosave();
    … …  
    5758       
    5859function autosave() {
     60        var form = $('post');
     61
    5962        autosaveAjax = new sack();
    60         form = $('post');
    6163
    6264        /* Gotta do this up here so we can check the length when tinyMCE is in use */
    … …  
    6466                autosaveAjax.setVar("content", form.content.value);
    6567        } else {
    66                 tinyMCE.triggerSave();
     68                tinyMCE.wpTriggerSave();
    6769                autosaveAjax.setVar("content", form.content.value);
    6870        }
    6971
    70         if(form.post_title.value.length==0 || form.content.value.length==0)
     72        if(form.post_title.value.length==0 || form.content.value.length==0 || form.post_title.value+form.content.value == autosaveLast)
    7173                return;
    72                
     74
     75        autosaveLast = form.post_title.value+form.content.value;
     76
    7377        cats = document.getElementsByName("post_category[]");
    7478        goodcats = ([]);
    … …  
    9195                autosaveAjax.setVar("content", form.content.value);
    9296        } else {
    93                 tinyMCE.triggerSave();
     97                tinyMCE.wpTriggerSave();
    9498                autosaveAjax.setVar("content", form.content.value);
    9599        }
  • trunk/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js

    r4080 r4085  
    383383        return re;
    384384};
     385wpInstTriggerSave = function (skip_cleanup, skip_callback) {
     386        var e, nl = new Array(), i, s;
     387
     388        this.switchSettings();
     389        s = tinyMCE.settings;
     390
     391        // Force hidden tabs visible while serializing
     392        if (tinyMCE.isMSIE && !tinyMCE.isOpera) {
     393                e = this.iframeElement;
     394
     395                do {
     396                        if (e.style && e.style.display == 'none') {
     397                                e.style.display = 'block';
     398                                nl[nl.length] = {elm : e, type : 'style'};
     399                        }
     400
     401                        if (e.style && s.hidden_tab_class.length > 0 && e.className.indexOf(s.hidden_tab_class) != -1) {
     402                                e.className = s.display_tab_class;
     403                                nl[nl.length] = {elm : e, type : 'class'};
     404                        }
     405                } while ((e = e.parentNode) != null)
     406        }
     407
     408        tinyMCE.settings['preformatted'] = false;
     409
     410        // Default to false
     411        if (typeof(skip_cleanup) == "undefined")
     412                skip_cleanup = false;
     413
     414        // Default to false
     415        if (typeof(skip_callback) == "undefined")
     416                skip_callback = false;
     417
     418//      tinyMCE._setHTML(this.getDoc(), this.getBody().innerHTML);
     419
     420        // Remove visual aids when cleanup is disabled
     421        if (this.settings['cleanup'] == false) {
     422                tinyMCE.handleVisualAid(this.getBody(), true, false, this);
     423                tinyMCE._setEventsEnabled(this.getBody(), true);
     424        }
     425
     426        tinyMCE._customCleanup(this, "submit_content_dom", this.contentWindow.document.body);
     427        var htm = skip_cleanup ? this.getBody().innerHTML : tinyMCE._cleanupHTML(this, this.getDoc(), this.settings, this.getBody(), tinyMCE.visualAid, true, true);
     428        htm = tinyMCE._customCleanup(this, "submit_content", htm);
     429
     430        if (!skip_callback && tinyMCE.settings['save_callback'] != "")
     431                var content = eval(tinyMCE.settings['save_callback'] + "(this.formTargetElementId,htm,this.getBody());");
     432
     433        // Use callback content if available
     434        if ((typeof(content) != "undefined") && content != null)
     435                htm = content;
     436
     437        // Replace some weird entities (Bug: #1056343)
     438        htm = tinyMCE.regexpReplace(htm, "(", "(", "gi");
     439        htm = tinyMCE.regexpReplace(htm, ")", ")", "gi");
     440        htm = tinyMCE.regexpReplace(htm, "&#59;", ";", "gi");
     441        htm = tinyMCE.regexpReplace(htm, """, """, "gi");
     442        htm = tinyMCE.regexpReplace(htm, "^", "^", "gi");
     443
     444        if (this.formElement)
     445                this.formElement.value = htm;
     446
     447        if (tinyMCE.isSafari && this.formElement)
     448                this.formElement.innerText = htm;
     449
     450        // Hide them again (tabs in MSIE)
     451        for (i=0; i<nl.length; i++) {
     452                if (nl[i].type == 'style')
     453                        nl[i].elm.style.display = 'none';
     454                else
     455                        nl[i].elm.className = s.hidden_tab_class;
     456        }
     457}
     458tinyMCE.wpTriggerSave = function () {
     459        var inst, n;
     460        for (n in tinyMCE.instances) {
     461                inst = tinyMCE.instances[n];
     462                if (!tinyMCE.isInstance(inst))
     463                        continue;
     464                inst.wpTriggerSave = wpInstTriggerSave;
     465                inst.wpTriggerSave(false, false);
     466        }
     467}
Note: See TracChangeset for help on using the changeset viewer.