discourse-legacysite-perl/site/forum/editor_gforum.js
2024-06-17 22:27:49 +10:00

87 lines
3.4 KiB
JavaScript

<%smilies%>
canAttach = <%if can_attach%>true<%else%>false<%endif%>;
advancedEditor.prototype.canAttach = function () {
return canAttach;
}
advancedEditor.prototype.addTag = function (smilie) {
var smilies = {
<%~loop smilies_loop%>
'<%escape_js tag%>' : '<%escape_js url%>'<%unless last%>,<%endunless%>
<%~endloop%>
};
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var img = this.objects.editableFrameDoc.createElement('img');
img.src = smilies[smilie];
selection.replaceSelection(img);
}
advancedEditor.prototype.insertQuote = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[quote]' + (sel ? sel : '') + '[/quote]';
selection.replaceSelection(node);
}
advancedEditor.prototype.insertReply = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[reply]' + (sel ? sel : '') + '[/reply]';
selection.replaceSelection(node);
}
advancedEditor.prototype.insertCode = function () {
var selection = new advancedEditorSelection(isIE ? this.objects.editableFrameDoc : this.objects.editableFrame.contentWindow);
var sel = selection.getSelectionHTML();
var node = this.objects.editableFrameDoc.createElement('div');
node.innerHTML = '[code]' + (sel ? sel : '') + '[/code]';
selection.replaceSelection(node);
}
function getInlineAttachments () {
return inlineAttachments;
}
function updateInline (filename, type, id, add) {
for (var i = 0; i < inlineAttachments.length; i++) {
if (inlineAttachments[i][0] == filename && inlineAttachments[i][1] == type && inlineAttachments[i][2] == id) {
if (!add) inlineAttachments.splice(i--, 1);
return;
}
}
if (add) inlineAttachments.push([filename, type, id]);
}
function refreshAttachmentList() {
/* Mozilla gives XMLHttpRequest errors if the XMLHttpRequest object is
* created in a parent window function called from a child window; this
* (instant) setTimeout works around the problem. */
setTimeout(_refreshAttachmentList, 0);
}
function _refreshAttachmentList() {
var url = '<%cgi_root_url%>/<%config.gforum_cgi%>?do=<%if this_do starts "post_"%>post<%else%>message<%endif%>_attachment_list;to_redo=<%this_do%>;temp_id=<%temp_id%>';
<%~if this_do starts 'post_'%>
url = url + ';forum=<%forum_id%>';
<%~if this_do eq 'post_reply_write'%>
url = url + ';parent_post_id=<%parent_post_id%>';
<%~elsif this_do eq 'post_edit'%>
url = url + ';post=<%post_id%>';
<%~endif%>
<%~endif%>
var inputs = document.getElementsByTagName('input');
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (!(input.type == 'checkbox' && input.name.match(/^att_inline-(\d+)-(\w+)$/))) continue;
url = url + ';' + RegExp.$2 + '_' + (input.checked ? '' : 'de') + 'inline=' + RegExp.$1;
}
url = url + '<%hidden_url%>';
xmlReqSend(url, 'GET', '', _updateAttachList);
}
function _updateAttachList(req) {
document.getElementById('attachment_list').innerHTML = req.responseText;
}