Notă: După salvare, trebuie să treceți peste cache-ul browser-ului pentru a vedea modificările.

  • Mozilla, Google Chrome, Safari, Konqueror: țineți apăsat Shift în timp ce apăsați butonul Reload (sau apăsați Ctrl-Shift-R).
  • Internet Explorer: apăsați Ctrl-F5.
  • Opera: apăsați F5.
mw.hook('ve.toolbarSaveButton.stateChanged').add(function () {
    replaceAllTextDiacritics();
});

function replaceAllTextDiacritics() {
    replaceLetter("ş", "ș");
    replaceLetter("Ş", "Ș");
    replaceLetter("ţ", "ț");
    replaceLetter("Ţ", "Ț");
}

function replaceLetter(old, replace) {
    var surfaceModel = ve.init.target.getSurface().getModel();
    var documentModel = surfaceModel.getDocument();
    var query = new RegExp(old, "g");
    var fragments = [];
    var ranges = documentModel.findText(query, true, true);
    var i, l;
    for (i = 0, l = ranges.length; i < l; i++) {
        fragment = surfaceModel.getLinearFragment(ranges[i], true, true);
        annotations = fragment.getAnnotations(true);
        if (annotations.getLength() > 0)
        	annotations = annotations.getAnnotationsByName('meta/language');
        if (annotations.getLength() === 0)
        	fragments.push(fragment);
    }
    for (i = 0, l = fragments.length; i < l; i++) {
        replaceOne(fragments[i], query, replace);
    }
}

function replaceOne(fragment, query, replace) {
    if (query instanceof RegExp) {
        fragment.insertContent(
            fragment.getText().replace(query, replace),
            true);
    } else {
        fragment.insertContent(replace, true);
    }
}

//TODO: in order to replace the template elements, I need to find a relevant hook and call the following:
// $('.ve-ui-mwParameterPage-field > .oo-ui-textInputWidget > textarea')[i].val(sanitizeWikitext($('.ve-ui-mwParameterPage-field > .oo-ui-textInputWidget > textarea')[i].val()))

//TODO: skip sensitive templates

//TODO: galleries - the editor is similar to templates, so we can just ignore it for now; wa are at feature-parity with the normal editor