TinyMCE: counter support (may not be 100% exact match to server-side count, but there's already discrepencies due to URL shortening)
Fix for bad char conversions also, caused short text to not be saved in some cases.
This commit is contained in:
parent
f14f252a16
commit
34995df879
|
@ -110,7 +110,7 @@ var SN = { // StatusNet
|
|||
return;
|
||||
}
|
||||
|
||||
var remaining = MaxLength - form.find('#'+SN.C.S.NoticeDataText).val().length;
|
||||
var remaining = MaxLength - SN.U.CharacterCount(form);
|
||||
var counter = form.find('#'+SN.C.S.NoticeTextCount);
|
||||
|
||||
if (remaining.toString() != counter.text()) {
|
||||
|
@ -134,6 +134,10 @@ var SN = { // StatusNet
|
|||
}
|
||||
},
|
||||
|
||||
CharacterCount: function(form) {
|
||||
return form.find('#'+SN.C.S.NoticeDataText).val().length;
|
||||
},
|
||||
|
||||
ClearCounterBlackout: function(form) {
|
||||
// Allow keyup events to poke the counter again
|
||||
SN.C.I.CounterBlackout = false;
|
||||
|
|
|
@ -102,7 +102,7 @@ class TinyMCEPlugin extends Plugin
|
|||
*/
|
||||
private function stripHtml($html)
|
||||
{
|
||||
return str_replace("\n", " ", html_entity_decode(strip_tags($html)));
|
||||
return str_replace("\n", " ", html_entity_decode(strip_tags($html), ENT_QUOTES, 'UTF-8'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -281,6 +281,7 @@ class TinyMCEPlugin extends Plugin
|
|||
// on our send button click.
|
||||
$scr = <<<END_OF_SCRIPT
|
||||
$().ready(function() {
|
||||
var noticeForm = $('#form_notice');
|
||||
$('textarea#notice_data-text').tinymce({
|
||||
script_url : '{$path}',
|
||||
// General options
|
||||
|
@ -291,26 +292,29 @@ class TinyMCEPlugin extends Plugin
|
|||
theme_advanced_buttons3 : "",
|
||||
add_form_submit_trigger : false,
|
||||
theme_advanced_resizing : true,
|
||||
tabfocus_elements: ":prev,:next"
|
||||
});
|
||||
$('#form_notice').append('<input type="hidden" name="richedit" value="1">');
|
||||
tabfocus_elements: ":prev,:next",
|
||||
setup: function(ed) {
|
||||
noticeForm.append('<input type="hidden" name="richedit" value="1">');
|
||||
|
||||
$('#notice_action-submit').click(function() {
|
||||
if (typeof tinymce != "undefined") {
|
||||
tinymce.triggerSave();
|
||||
}
|
||||
});
|
||||
|
||||
var origCounter = SN.U.CharacterCount;
|
||||
SN.U.CharacterCount = function(form) {
|
||||
var text = $(ed.getDoc()).text();
|
||||
return text.length;
|
||||
};
|
||||
ed.onKeyUp.add(function (ed, e) {
|
||||
SN.U.Counter(noticeForm);
|
||||
});
|
||||
|
||||
$('#'+SN.C.S.NoticeDataAttach).change(function() {
|
||||
/*
|
||||
S = '<div id="'+SN.C.S.NoticeDataAttachSelected+'" class="'+SN.C.S.Success+'"><code>'+$(this).val()+'</code> <button class="close">×</button></div>';
|
||||
NDAS = $('#'+SN.C.S.NoticeDataAttachSelected);
|
||||
if (NDAS.length > 0) {
|
||||
NDAS.replaceWith(S);
|
||||
}
|
||||
*/
|
||||
//alert('yay');
|
||||
var img = '<img src="{$placeholder}" class="placeholder" width="320" height="240">';
|
||||
var html = tinyMCE.activeEditor.getContent();
|
||||
tinyMCE.activeEditor.setContent(html + img);
|
||||
ed.setContent(html + img);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
END_OF_SCRIPT;
|
||||
|
@ -319,4 +323,3 @@ END_OF_SCRIPT;
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user