1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-08 09:24:25 +03:00
ifhub.club/application/frontend/common/js/topic.js

95 lines
2.3 KiB
JavaScript
Raw Normal View History

/**
2013-07-09 08:09:06 +03:00
* Топик
*
* @module ls/topic
*
* @license GNU General Public License, version 2
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
* @author Denis Shakhov <denis.shakhov@gmail.com>
*/
2013-07-09 08:09:06 +03:00
var ls = ls || {};
ls.topic = (function ($) {
2013-07-09 08:09:06 +03:00
"use strict";
/**
* Дефолтные опции
*/
var defaults = {
// Роутеры
oRouters: {
preview: aRouter['content'] + 'ajax/preview/'
2013-07-09 08:09:06 +03:00
},
// Селекторы
2013-07-09 11:40:06 +03:00
selectors: {
previewTopicTextButton: '.js-topic-preview-text-button',
2013-07-31 09:35:19 +03:00
previewTopicTextHideButton: '.js-topic-preview-text-hide-button',
addTopicTitle: '.js-topic-add-title'
2013-07-09 11:40:06 +03:00
}
2013-07-09 08:09:06 +03:00
};
/**
* Инициализация
*
* @param {Object} options Опции
*/
this.init = function(options) {
var self = this;
this.options = $.extend({}, defaults, options);
// Превью текста
2013-07-09 11:40:06 +03:00
$(this.options.selectors.previewTopicTextButton).on('click', function (e) {
2013-07-09 08:09:06 +03:00
self.showPreviewText('form-topic-add', 'topic-text-preview');
});
2013-07-31 09:35:19 +03:00
// Закрытие превью текста
2013-07-09 11:40:06 +03:00
$(document).on('click', this.options.selectors.previewTopicTextHideButton, function (e) {
2013-07-09 08:09:06 +03:00
self.hidePreviewText();
});
2013-07-31 09:35:19 +03:00
// Подгрузка информации о выбранном блоге при создании топика
$(this.options.selectors.addTopicTitle).on('change', function (e) {
ls.blog.loadInfo($(this).val());
});
2014-01-25 14:39:19 +02:00
ls.blog.loadInfo($(this.options.selectors.addTopicTitle).val());
2013-07-09 08:09:06 +03:00
};
/**
* Превью текста
*
* @param {String} sFormId ID формы
* @param {String} sPreviewId ID блока превью
*/
this.showPreviewText = function(sFormId, sPreviewId) {
var oForm = $('#' + sFormId);
var oPreview = $('#' + sPreviewId);
var oButton = oForm.find(this.options.selectors.previewTopicTextButton);
2012-04-28 09:09:47 +03:00
ls.hook.marker('previewBefore');
2013-07-09 08:09:06 +03:00
ls.ajax.submit(this.options.oRouters.preview, oForm, function(result) {
if (result.bStateError) {
ls.msg.error(null, result.sMsg);
} else {
2013-07-09 08:09:06 +03:00
oPreview.show().html(result.sText);
ls.hook.run('ls_topic_preview_after', [oForm, oPreview, result]);
}
}, {
submitButton: oButton
});
};
2013-07-09 08:09:06 +03:00
/**
* Закрытие превью
*/
this.hidePreviewText = function() {
$('#topic-text-preview').hide();
};
return this;
2013-07-09 08:09:06 +03:00
}).call(ls.topic || {}, jQuery);