%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/components/bitrix/blog.post.edit/templates/.default/ |
Current File : //home/bitrix/www/bitrix/components/bitrix/blog.post.edit/templates/.default/script.js |
function show_special() { var o = document.getElementById('special_perms'); if (document.getElementById('blog_perms_1').checked===true) o.style.display='block'; else o.style.display='none'; } function changeDate() { document.getElementById('date-publ').style.display = 'block'; document.getElementById('date-publ-text').style.display = 'none'; document.getElementById('DATE_PUBLISH_DEF').value = ''; } BlogPostAutoSaveIcon = function () { var formId = 'POST_BLOG_FORM'; var form = BX(formId); if (!form) return; var auto_lnk = BX('post-form-autosave-icon'); var formHeaders = BX.findChild(form, {'className': /lhe-stat-toolbar-cont/ }, true, true); if (formHeaders.length < 1) return false; var formHeader = formHeaders[formHeaders.length-1]; formHeader.insertBefore(auto_lnk, formHeader.children[0]); } BlogPostAutoSave = function () { var formId = 'POST_BLOG_FORM'; var form = BX(formId); if (!form) return; var controlID = "POST_MESSAGE"; var titleID = 'POST_TITLE'; var title = BX(titleID); var tags = BX(formId).TAGS; var iconClass = "blogPostAutoSave"; var actionClass = "blogPostAutoRestore"; var actionText = BX.message('AUTOSAVE_R'); var recoverMessage = BX.message('BLOG_POST_AUTOSAVE'); var recoverNotify = null; var auto_lnk = BX.create('A', { 'attr': {'href': 'javascript:void(0)'}, 'props': { 'className': iconClass+' bx-core-autosave bx-core-autosave-ready', 'title': BX.message('AUTOSAVE_T'), 'id': 'post-form-autosave-icon' } }); BX('blog-post-autosave-hidden').appendChild(auto_lnk); var bindLHEEvents = function(_ob) { if (window.oBlogLHE) { window.oBlogLHE.fAutosave = _ob; BX.bind(window.oBlogLHE.pEditorDocument, 'keydown', BX.proxy(_ob.Init, _ob)); BX.bind(window.oBlogLHE.pTextarea, 'keydown', BX.proxy(_ob.Init, _ob)); BX.bind(title, 'keydown', BX.proxy(_ob.Init, _ob)); BX.bind(tags, 'keydown', BX.proxy(_ob.Init, _ob)); } } BX.addCustomEvent(form, 'onAutoSavePrepare', function (ob, h) { ob.DISABLE_STANDARD_NOTIFY = true; BX.bind(auto_lnk, 'click', BX.proxy(ob.Save, ob)); var _ob=ob; setTimeout(function() { bindLHEEvents(_ob) },1500); }); BX.addCustomEvent(form, 'onAutoSave', function(ob, form_data) { BX.removeClass(auto_lnk,'bx-core-autosave-edited'); BX.removeClass(auto_lnk,'bx-core-autosave-ready'); BX.addClass(auto_lnk,'bx-core-autosave-saving'); // not oBlogLHE!! if (! window.oBlogLHE) return; form_data[controlID+'_type'] = window.oBlogLHE.sEditorMode; var text = ""; if (window.oBlogLHE.sEditorMode == 'code') text = window.oBlogLHE.GetCodeEditorContent(); else text = window.oBlogLHE.GetEditorContent(); form_data[controlID] = text; form_data[titleID] = BX(titleID).value; form_data[tags] = BX(formId).TAGS.value; }); BX.addCustomEvent(form, 'onAutoSaveFinished', function(ob, t) { t = parseInt(t); if (!isNaN(t)) { setTimeout(function() { BX.removeClass(auto_lnk,'bx-core-autosave-saving'); BX.addClass(auto_lnk,'bx-core-autosave-ready'); }, 1000); auto_lnk.title = BX.message('AUTOSAVE_L').replace('#DATE#', BX.formatDate(new Date(t * 1000))); } }); BX.addCustomEvent(form, 'onAutoSaveInit', function() { BX.removeClass(auto_lnk,'bx-core-autosave-ready'); BX.addClass(auto_lnk,'bx-core-autosave-edited'); }); BX.addCustomEvent(form, 'onAutoSaveRestoreFound', function(ob, data) { var text = (BX.util.trim(data[controlID]) || ''), title = (BX.util.trim(data[titleID]) || ''); if (text.length < 1 && title.length < 1) return; ob.Restore(); // todo: need notify? see in socnetwork }); BX.addCustomEvent(form, 'onAutoSaveRestore', function(ob, data) { if (!window.oBlogLHE || !data[controlID]) return; window.oBlogLHE.SetView(data[controlID+'_type']); if (!!window.oBlogLHE.sourseBut) window.oBlogLHE.sourseBut.Check((data[controlID+'_type'] == 'code')); if (data[controlID+'_type'] == 'code') window.oBlogLHE.SetContent(data[controlID]); else window.oBlogLHE.SetEditorContent(data[controlID]); BX(titleID).value = data[titleID]; BX(formId).TAGS.value = data[tags]; bindLHEEvents(ob); }); BX.addCustomEvent(form, 'onAutoSaveRestoreFinished', function(ob, data) { if (!! recoverNotify) BX.remove(recoverNotify); }); } function blogShowFile() { BX.toggle(BX('blog-upload-file')); BX.onCustomEvent(BX('blog-post-user-fields-UF_BLOG_POST_DOC'), "BFileDLoadFormController"); } var formParams = {}, reinit = function(formID) { if (formParams[formID] && formParams[formID]["editorID"]) { if (formParams[formID]["editor"]) formParams[formID]["editor"](formParams[formID]['text']); else setTimeout(function(){reinit(formID);}, 50); } }; BX.BlogPostInit = function(formID, params) { formParams = {}; formParams[formID] = { editorID : params['editorID'], showTitle : (!!params['showTitle']), submitted : false, text : params['text'], autoSave : params['autoSave'], handler : (window.LHEPostForm && window.LHEPostForm.getHandler(params['editorID'])), editor : (window.LHEPostForm && window.LHEPostForm.getEditor(params['editorID'])), restoreAutosave : !!params['restoreAutosave'] }; var onHandlerInited = function(obj, form) { if (form == formID) { formParams[formID]["handler"] = obj; // BX.addCustomEvent(obj.eventNode, 'OnControlClick', function() {window.SBPETabs.changePostFormTab('message');}); var OnAfterShowLHE = function() { var div = [BX('feed-add-post-form-notice-blockblogPostForm'), BX('feed-add-buttons-blockblogPostForm'), BX('feed-add-post-content-message-add-ins')]; for (var ii = 0; ii < div.length; ii++) { if (!!div[ii]) { BX.adjust(div[ii], { style : { display : "block", height : "auto", opacity : 1 } } ); } } // if(formParams[formID]["showTitle"]) // window['showPanelTitle_' + formID](true, false); }, OnAfterHideLHE = function() { var ii, div = [ BX('feed-add-post-form-notice-blockblogPostForm'), BX('feed-add-buttons-blockblogPostForm'), BX('feed-add-post-content-message-add-ins')]; for (ii = 0; ii < div.length; ii++) { if (!!div[ii]) { BX.adjust(div[ii], {style:{display:"block",height:"0px", opacity:0}}); } } if(formParams[formID]["showTitle"]) window['showPanelTitle_' + formID](false, false); }; BX.addCustomEvent(obj.eventNode, 'OnAfterShowLHE', OnAfterShowLHE); BX.addCustomEvent(obj.eventNode, 'OnAfterHideLHE', OnAfterHideLHE); if (obj.eventNode.style.display == 'none') OnAfterHideLHE(); else OnAfterShowLHE(); } }, onEditorInited = function(editor) { if (editor.id == formParams[formID]["editorID"]) { formParams[formID]["editor"] = editor; if(formParams[formID]["autoSave"] != "N") new BlogPostAutoSave(formParams[formID]["autoSave"], formParams[formID]["restoreAutosave"]); var f = window[editor.id + 'Files'], handler = window.LHEPostForm.getHandler(editor.id), intId, id, node, needToReparse = [], controller = null; for (id in handler['controllers']) { if (handler['controllers'].hasOwnProperty(id)) { if (handler['controllers'][id]["parser"] && handler['controllers'][id]["parser"]["bxTag"] == "postimage") { controller = handler['controllers'][id]; break; } } } var closure = function(a, b) { return function() { a.insertFile(b); } }, closure2 = function(a, b, c) { return function() { if (controller) { controller.deleteFile(b, {}); BX.remove(BX('wd-doc' + b)); BX.ajax({ method: 'GET', url: c}); } else { a.deleteFile(b, c, a, {controlID : 'common'}); } } }; for (intId in f) { if (f.hasOwnProperty(intId)) { if (controller) { controller.addFile(f[intId]); } else { id = handler.checkFile(intId, "common", f[intId]); needToReparse.push(intId); if (!!id && BX('wd-doc'+intId) && !BX('wd-doc'+intId).hasOwnProperty("bx-bound")) { BX('wd-doc'+intId).setAttribute('bx-bound', 'Y'); if ((node = BX.findChild(BX('wd-doc'+intId), {className: 'feed-add-img-wrap'}, true, false)) && node) { BX.bind(node, "click", closure(handler, id)); node.style.cursor = "pointer"; } if ((node = BX.findChild(BX('wd-doc'+intId), {className: 'feed-add-img-title'}, true, false)) && node) { BX.bind(node, "click", closure(handler, id)); node.style.cursor = "pointer"; } if ((node = BX.findChild(BX('wd-doc'+intId), {className: 'feed-add-post-del-but'}, true, false)) && node) { BX.bind(node, "click", closure2(handler, intId, f[intId]['del_url'])); node.style.cursor = "pointer"; } } } if ((node = BX.findChild(BX('wd-doc'+intId), {className: 'feed-add-post-del-but'}, true, false)) && node) { BX.bind(node, "click", closure2(handler, intId, f[intId]['del_url'])); node.style.cursor = "pointer"; } } } if (needToReparse.length > 0) { editor.SaveContent(); var content = editor.GetContent(); content = content.replace(new RegExp('\\&\\#91\\;IMG ID=(' + needToReparse.join("|") + ')([WIDTHHEIGHT=0-9 ]*)\\&\\#93\\;','gim'), '[IMG ID=$1$2]'); editor.SetContent(content); editor.Focus(); } } }, onEditorInitedBefore = function(editor) { // add style for cut-image var cutCss = "\nimg.bxed-cut{background: transparent url('/bitrix/images/blog/editor/cut_image.gif') left top repeat-x; margin: 2px; width: 100%; height: 12px;}\n"; if(editor.iframeCssText != undefined && editor.iframeCssText.length > 0) editor.iframeCssText += cutCss; else editor.iframeCssText = cutCss; editor.AddButton({ id : 'cut', name : BX.message.CutTitle, iconClassName : 'cut', disabledForTextarea : false, src : '/bitrix/images/blog/editor/cut_button.png', toolbarSort : 205, handler : function() { var _this = this, res = false; // Iframe if (!_this.editor.bbCode || !_this.editor.synchro.IsFocusedOnTextarea()) { var cutImg = '<img id="' + editor.SetBxTag(false, {tag: "cut"}) + '" class="bxed-cut" src="' + editor.EMPTY_IMAGE_SRC + '" title="' + BX.message.CutTitle + '">'; res = _this.editor.action.actions.insertHTML.exec("insertHTML", cutImg); } else // bbcode + textarea { res = _this.editor.action.actions.formatBbCode.exec('formatBbCode', {tag: 'CUT', 'singleTag' : true}); } return res; } }); editor.AddParser({ name : 'cut', obj : { Parse: function(parserName, content) { content = content.replace(/\[cut\]/gi, function(str, id, name) { var cutImg = '<img id="' + editor.SetBxTag(false, {tag: "cut"}) + '" class="bxed-cut" src="' + editor.EMPTY_IMAGE_SRC + '" title="' + BX.message.CutTitle + '">'; return cutImg; }); return content; }, /** * @return {string} */ UnParse: function(bxTag, oNode) { if (bxTag.tag == 'cut') return "[CUT]"; else return ""; } } }); }; BX.addCustomEvent(window, 'onInitialized', onHandlerInited); if (formParams[formID]["handler"]) onHandlerInited(formParams[formID]["handler"], formID); BX.addCustomEvent(window, 'OnEditorInitedBefore', onEditorInitedBefore); if (formParams[formID]["editor"]) onEditorInitedBefore(formParams[formID]["editor"]); BX.addCustomEvent(window, 'OnEditorInitedAfter', onEditorInited); if (formParams[formID]["editor"]) onEditorInited(formParams[formID]["editor"]); BX.ready(function() { if (BX.browser.IsIE() && BX('POST_TITLE')) { var showTitlePlaceholderBlur = function(e) { if (!this.value || this.value == this.getAttribute("placeholder")) { this.value = this.getAttribute("placeholder"); BX.removeClass(this, 'feed-add-post-inp-active'); } }; BX.bind(BX('POST_TITLE'), "blur", showTitlePlaceholderBlur); showTitlePlaceholderBlur.apply(BX('POST_TITLE')); BX('POST_TITLE').__onchange = BX.delegate( function(e) { if ( this.value == this.getAttribute("placeholder") ) { this.value = ''; } if ( this.className.indexOf('feed-add-post-inp-active') < 0 ) { BX.addClass(this, 'feed-add-post-inp-active'); } }, BX('POST_TITLE') ); BX.bind(BX('POST_TITLE'), "click", BX('POST_TITLE').__onchange); BX.bind(BX('POST_TITLE'), "keydown", BX('POST_TITLE').__onchange); BX.bind(BX('POST_TITLE').form, "submit", function(){if(BX('POST_TITLE').value == BX('POST_TITLE').getAttribute("placeholder")){BX('POST_TITLE').value='';}}); } }); };