2012-04-12 19:13:05 +03:00
|
|
|
|
/**
|
2013-07-09 08:09:06 +03:00
|
|
|
|
* Топик
|
2013-08-29 12:30:04 +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>
|
2012-04-12 19:13:05 +03:00
|
|
|
|
*/
|
2013-07-09 08:09:06 +03:00
|
|
|
|
|
|
|
|
|
var ls = ls || {};
|
|
|
|
|
|
2012-04-12 19:13:05 +03:00
|
|
|
|
ls.topic = (function ($) {
|
2013-07-09 08:09:06 +03:00
|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Дефолтные опции
|
|
|
|
|
*/
|
|
|
|
|
var defaults = {
|
|
|
|
|
// Роутеры
|
|
|
|
|
oRouters: {
|
2014-01-11 18:27:27 +02:00
|
|
|
|
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);
|
2013-08-19 13:36:09 +03:00
|
|
|
|
var oButton = oForm.find(this.options.selectors.previewTopicTextButton);
|
2012-04-12 19:13:05 +03:00
|
|
|
|
|
2012-04-28 09:09:47 +03:00
|
|
|
|
ls.hook.marker('previewBefore');
|
2013-07-09 08:09:06 +03:00
|
|
|
|
|
2013-10-02 17:05:44 +03:00
|
|
|
|
ls.ajax.submit(this.options.oRouters.preview, oForm, function(result) {
|
2012-04-12 19:13:05 +03:00
|
|
|
|
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]);
|
2012-04-12 19:13:05 +03:00
|
|
|
|
}
|
2013-08-19 13:36:09 +03:00
|
|
|
|
}, {
|
|
|
|
|
submitButton: oButton
|
2012-04-12 19:13:05 +03:00
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
2013-07-09 08:09:06 +03:00
|
|
|
|
/**
|
|
|
|
|
* Закрытие превью
|
|
|
|
|
*/
|
|
|
|
|
this.hidePreviewText = function() {
|
|
|
|
|
$('#topic-text-preview').hide();
|
2012-04-16 15:26:35 +03:00
|
|
|
|
};
|
|
|
|
|
|
2012-04-12 19:13:05 +03:00
|
|
|
|
return this;
|
2013-07-09 08:09:06 +03:00
|
|
|
|
}).call(ls.topic || {}, jQuery);
|