2013-08-29 12:30:04 +03:00
|
|
|
/**
|
|
|
|
* Инициализации модулей
|
2014-04-03 10:40:55 +03:00
|
|
|
*
|
2013-08-29 12:30:04 +03:00
|
|
|
* @license GNU General Public License, version 2
|
|
|
|
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
|
|
|
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
|
|
|
*/
|
|
|
|
|
2013-04-09 01:30:54 +03:00
|
|
|
jQuery(document).ready(function($){
|
|
|
|
// Хук начала инициализации javascript-составляющих шаблона
|
|
|
|
ls.hook.run('ls_template_init_start',[],window);
|
|
|
|
|
|
|
|
/**
|
2014-04-03 10:40:55 +03:00
|
|
|
* Иниц-ия модулей ядра
|
2013-04-09 01:30:54 +03:00
|
|
|
*/
|
2014-04-03 10:40:55 +03:00
|
|
|
ls.init({
|
|
|
|
production: false
|
|
|
|
});
|
|
|
|
|
|
|
|
ls.dev.init();
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Modals
|
|
|
|
*/
|
|
|
|
$('.js-modal-default').modal();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Datepicker
|
|
|
|
*/
|
2014-06-12 06:30:16 +03:00
|
|
|
$('.js-date-picker').datepicker();
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Dropdowns
|
|
|
|
*/
|
2014-04-03 10:40:55 +03:00
|
|
|
$('.js-dropdown-default').livequery(function () {
|
|
|
|
$(this).dropdown();
|
|
|
|
});
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
2013-10-02 17:09:30 +03:00
|
|
|
/**
|
|
|
|
* Tabs
|
|
|
|
*/
|
|
|
|
$('[data-type=tab]').tab();
|
|
|
|
|
2014-01-25 15:20:02 +02:00
|
|
|
/**
|
|
|
|
* Captcha
|
|
|
|
*/
|
|
|
|
$('[data-type=captcha]').captcha();
|
|
|
|
|
2013-10-02 17:09:30 +03:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Alerts
|
|
|
|
*/
|
|
|
|
$('.js-alert').alert();
|
|
|
|
|
|
|
|
|
2013-04-09 01:30:54 +03:00
|
|
|
/**
|
|
|
|
* Tooltips
|
|
|
|
*/
|
2013-10-02 17:09:30 +03:00
|
|
|
$('.js-tooltip').tooltip();
|
2013-04-09 01:30:54 +03:00
|
|
|
|
2013-10-02 17:09:30 +03:00
|
|
|
$('.js-popover-default').tooltip({
|
|
|
|
useAttrTitle: false,
|
|
|
|
trigger: 'click',
|
|
|
|
classes: 'tooltip-light'
|
2013-04-09 01:30:54 +03:00
|
|
|
});
|
|
|
|
|
|
|
|
if (ls.registry.get('block_stream_show_tip')) {
|
2013-10-02 17:09:30 +03:00
|
|
|
$('.js-title-comment, .js-title-topic').livequery(function () {
|
|
|
|
$(this).tooltip({
|
|
|
|
position: {
|
|
|
|
my: "right center",
|
|
|
|
at: "left left"
|
|
|
|
},
|
|
|
|
show: {
|
|
|
|
delay: 1500
|
|
|
|
}
|
|
|
|
});
|
2013-04-09 01:30:54 +03:00
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Autocomplete
|
|
|
|
*/
|
|
|
|
ls.autocomplete.add($(".autocomplete-tags-sep"), aRouter['ajax']+'autocompleter/tag/', true);
|
|
|
|
ls.autocomplete.add($(".autocomplete-tags"), aRouter['ajax']+'autocompleter/tag/', false);
|
|
|
|
ls.autocomplete.add($(".autocomplete-users-sep"), aRouter['ajax']+'autocompleter/user/', true);
|
|
|
|
ls.autocomplete.add($(".autocomplete-users"), aRouter['ajax']+'autocompleter/user/', false);
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Scroll
|
|
|
|
*/
|
|
|
|
$(window)._scrollable();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Code highlight
|
|
|
|
*/
|
|
|
|
prettyPrint();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Blocks
|
|
|
|
*/
|
2013-05-04 17:10:22 +03:00
|
|
|
ls.blocks.init();
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
2014-07-19 19:50:52 +03:00
|
|
|
* Активность
|
2013-04-09 01:30:54 +03:00
|
|
|
*/
|
2014-07-18 18:45:16 +03:00
|
|
|
$('.js-activity--all').lsActivity({ urls: { more: aRouter.stream + 'get_more_all' } });
|
|
|
|
$('.js-activity--user').lsActivity({ urls: { more: aRouter.stream + 'get_more_user' } });
|
|
|
|
$('.js-activity--personal').lsActivity({
|
|
|
|
urls: {
|
|
|
|
more: aRouter.stream + 'get_more_personal'
|
|
|
|
},
|
|
|
|
create: function() {
|
|
|
|
// Настройки активности
|
|
|
|
$('.js-activity-settings').lsActivitySettings({
|
|
|
|
urls: {
|
|
|
|
toggle_type: aRouter.stream + 'switchEventType'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Добавление пользователей в персональную активность
|
|
|
|
$('.js-activity-users').user_list_add({
|
|
|
|
urls: {
|
|
|
|
add: aRouter.stream + 'ajaxadduser',
|
|
|
|
remove: aRouter.stream + 'ajaxremoveuser'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2013-04-09 01:30:54 +03:00
|
|
|
|
2013-05-04 17:10:22 +03:00
|
|
|
|
|
|
|
/**
|
2014-07-19 19:50:52 +03:00
|
|
|
* Лента
|
2013-05-04 17:10:22 +03:00
|
|
|
*/
|
2014-07-19 19:50:52 +03:00
|
|
|
$('.js-feed').lsFeed({
|
|
|
|
urls: {
|
|
|
|
more: aRouter.feed + 'get_more'
|
|
|
|
},
|
|
|
|
create: function() {
|
|
|
|
// Блоги
|
|
|
|
$('.js-feed-blogs').lsFeedBlogs({
|
|
|
|
urls: {
|
|
|
|
subscribe: aRouter.feed + 'subscribe',
|
|
|
|
unsubscribe: aRouter.feed + 'unsubscribe'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Добавление пользователей в свою ленту
|
|
|
|
$('.js-feed-users').user_list_add({
|
|
|
|
urls: {
|
|
|
|
add: aRouter.feed + 'ajaxadduser',
|
|
|
|
remove: aRouter.feed + 'unsubscribe'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
2013-05-04 17:10:22 +03:00
|
|
|
/**
|
|
|
|
* Comments
|
|
|
|
*/
|
2014-06-11 11:58:32 +03:00
|
|
|
$('.js-comments-topic').lsComments({
|
|
|
|
urls: {
|
|
|
|
add: aRouter['blog'] + 'ajaxaddcomment/',
|
|
|
|
load: aRouter['blog'] + 'ajaxresponsecomment/'
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
$('.js-comments-talk').lsComments({
|
|
|
|
urls: {
|
|
|
|
add: aRouter['talk'] + 'ajaxaddcomment/',
|
|
|
|
load: aRouter['talk'] + 'ajaxresponsecomment/'
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Toolbar
|
|
|
|
*/
|
|
|
|
$('.js-toolbar').toolbar({
|
|
|
|
target: '.grid-role-wrapper',
|
|
|
|
offsetX: 20
|
|
|
|
});
|
2014-06-17 12:54:39 +03:00
|
|
|
$('.js-toolbar-scrollup').lsToolbarScrollUp();
|
2014-06-11 11:58:32 +03:00
|
|
|
$('.js-toolbar-comments').lsToolbarComments();
|
2014-06-17 12:54:39 +03:00
|
|
|
$('.js-toolbar-topics').lsToolbarTopics();
|
2013-04-09 01:30:54 +03:00
|
|
|
|
|
|
|
|
2013-05-30 16:34:30 +03:00
|
|
|
/**
|
|
|
|
* User
|
|
|
|
*/
|
|
|
|
ls.user.init();
|
|
|
|
|
|
|
|
|
2013-05-04 17:10:22 +03:00
|
|
|
/**
|
|
|
|
* Talk
|
2013-04-09 01:30:54 +03:00
|
|
|
*/
|
2013-07-02 05:58:58 +03:00
|
|
|
ls.talk.init();
|
2013-07-08 07:42:49 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Poll
|
|
|
|
*/
|
2014-06-23 15:51:40 +03:00
|
|
|
$('.js-poll').lsPoll();
|
|
|
|
$('.js-poll-manage').lsPollManage();
|
2013-07-08 07:42:49 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* User Note
|
|
|
|
*/
|
2014-04-03 10:40:55 +03:00
|
|
|
$('.js-user-note').livequery(function () {
|
2014-04-28 13:12:44 +03:00
|
|
|
$(this).usernote({
|
|
|
|
urls: {
|
|
|
|
save: aRouter['profile'] + 'ajax-note-save/',
|
|
|
|
remove: aRouter['profile'] + 'ajax-note-remove/'
|
|
|
|
}
|
|
|
|
});
|
2014-04-03 10:40:55 +03:00
|
|
|
});
|
2013-07-09 08:09:06 +03:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Editor
|
|
|
|
*/
|
2014-05-19 09:35:34 +03:00
|
|
|
ls.editor.init('.js-editor');
|
2013-07-09 08:09:06 +03:00
|
|
|
|
|
|
|
|
2014-01-25 14:39:19 +02:00
|
|
|
/**
|
|
|
|
* Blog
|
|
|
|
*/
|
|
|
|
ls.blog.init();
|
|
|
|
|
|
|
|
|
2013-07-09 08:09:06 +03:00
|
|
|
/**
|
|
|
|
* Topic
|
|
|
|
*/
|
|
|
|
ls.topic.init();
|
2014-01-11 18:27:27 +02:00
|
|
|
ls.content.init();
|
2013-07-09 08:09:06 +03:00
|
|
|
|
|
|
|
|
2013-07-09 11:40:06 +03:00
|
|
|
/**
|
|
|
|
* Vote
|
|
|
|
*/
|
2014-04-08 14:42:07 +03:00
|
|
|
|
|
|
|
// Голосование за топик
|
|
|
|
$('.js-vote-topic').vote({
|
|
|
|
urls: {
|
|
|
|
vote: aRouter['ajax'] + 'vote/topic/',
|
|
|
|
info: aRouter['ajax'] + 'vote/get/info/topic'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Голосование за пользователя
|
|
|
|
$('.js-vote-user').vote({
|
|
|
|
urls: {
|
|
|
|
vote: aRouter['ajax'] + 'vote/user/'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Голосование за блог
|
|
|
|
$('.js-vote-blog').vote({
|
|
|
|
urls: {
|
|
|
|
vote: aRouter['ajax'] + 'vote/blog/'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Голосование за комментарий
|
2014-06-11 11:58:32 +03:00
|
|
|
$('.js-vote-comment').livequery(function () {
|
|
|
|
$(this).vote({
|
|
|
|
urls: {
|
|
|
|
vote: aRouter['ajax'] + 'vote/comment/'
|
|
|
|
}
|
|
|
|
});
|
2014-04-08 14:42:07 +03:00
|
|
|
});
|
2013-07-09 11:40:06 +03:00
|
|
|
|
|
|
|
|
2013-07-15 12:40:44 +03:00
|
|
|
/**
|
2014-05-04 06:52:24 +03:00
|
|
|
* Пагинация
|
2013-07-15 12:40:44 +03:00
|
|
|
*/
|
2014-05-04 06:52:24 +03:00
|
|
|
$('.js-pagination-topics').lsPagination({
|
|
|
|
hash: {
|
2014-06-17 12:54:39 +03:00
|
|
|
next: 'goTopic=first',
|
2014-05-04 06:52:24 +03:00
|
|
|
prev: 'goTopic=last'
|
|
|
|
}
|
|
|
|
});
|
2013-07-15 12:40:44 +03:00
|
|
|
|
|
|
|
|
2013-08-19 13:36:09 +03:00
|
|
|
/**
|
2014-04-28 13:12:44 +03:00
|
|
|
* Избранное
|
2013-08-19 13:36:09 +03:00
|
|
|
*/
|
2014-04-28 13:12:44 +03:00
|
|
|
|
|
|
|
// Топик
|
|
|
|
$('.js-favourite-topic').lsFavouriteTopic();
|
|
|
|
|
|
|
|
// Комментарий
|
|
|
|
$('.js-favourite-comment').lsFavourite({
|
|
|
|
urls: {
|
|
|
|
toggle: aRouter['ajax'] + 'favourite/comment/'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
// Личное сообщение
|
|
|
|
$('.js-favourite-talk').lsFavourite({
|
|
|
|
urls: {
|
|
|
|
toggle: aRouter['ajax'] + 'favourite/talk/'
|
|
|
|
}
|
|
|
|
});
|
2013-08-19 13:36:09 +03:00
|
|
|
|
|
|
|
|
2014-01-02 07:58:44 +02:00
|
|
|
/**
|
|
|
|
* Теги
|
|
|
|
*/
|
|
|
|
ls.tags.init();
|
|
|
|
|
|
|
|
|
2013-08-03 09:34:13 +03:00
|
|
|
/**
|
|
|
|
* Form validate
|
|
|
|
*/
|
|
|
|
$('.js-form-validate').parsley({
|
|
|
|
validators: {
|
|
|
|
rangetags: function (val, arrayRange) {
|
2013-08-05 08:24:15 +03:00
|
|
|
var tag_count = val.replace(/ /g, "").match(/[^\s,]+(,|)/gi);
|
2013-08-03 09:34:13 +03:00
|
|
|
return tag_count && tag_count.length >= arrayRange[0] && tag_count.length <= arrayRange[1];
|
|
|
|
}
|
|
|
|
},
|
|
|
|
// TODO: Вынести в лок-ию
|
|
|
|
messages: {
|
|
|
|
rangetags: "Кол-во тегов должно быть от %s до %s"
|
|
|
|
}
|
2013-08-29 12:30:04 +03:00
|
|
|
});
|
2013-08-03 09:34:13 +03:00
|
|
|
|
|
|
|
|
2014-01-02 07:58:44 +02:00
|
|
|
/**
|
|
|
|
* Медиа файлы
|
|
|
|
*/
|
|
|
|
//ls.media.init();
|
|
|
|
|
|
|
|
|
2014-01-13 08:33:20 +02:00
|
|
|
/**
|
|
|
|
* Стена
|
|
|
|
*/
|
2014-07-07 13:50:14 +03:00
|
|
|
$('.js-wall-default').lsWall({
|
|
|
|
urls: {
|
2014-07-07 14:43:12 +03:00
|
|
|
add: aRouter.ajax + 'wall/add/',
|
|
|
|
remove: aRouter.ajax + 'wall/remove/',
|
|
|
|
load: aRouter.ajax + 'wall/load/',
|
|
|
|
load_comments: aRouter.ajax + 'wall/load-comments/'
|
2014-07-07 13:50:14 +03:00
|
|
|
}
|
|
|
|
});
|
2014-02-06 11:43:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
2014-04-03 10:40:55 +03:00
|
|
|
* Блоки добавления пользователей
|
2014-02-06 11:43:12 +02:00
|
|
|
*/
|
2014-04-03 10:40:55 +03:00
|
|
|
|
|
|
|
// Приглашение пользователей в блог
|
|
|
|
$('.js-user-list-add-blog-invite').blog_invite_users();
|
|
|
|
|
|
|
|
// Добавление участников личного сообщения
|
|
|
|
$('.js-message-users').message_users();
|
|
|
|
|
|
|
|
// Черный список
|
|
|
|
$('.js-user-list-add-blacklist').user_list_add({
|
|
|
|
urls: {
|
|
|
|
add: aRouter['talk'] + 'ajaxaddtoblacklist/',
|
|
|
|
remove: aRouter['talk'] + 'ajaxdeletefromblacklist/'
|
|
|
|
}
|
|
|
|
});
|
|
|
|
|
2014-02-10 13:12:21 +02:00
|
|
|
/**
|
|
|
|
* Лайтбокс
|
|
|
|
*/
|
|
|
|
$('a.js-lbx').colorbox({ width:"100%", height:"100%" });
|
|
|
|
|
2014-01-13 08:33:20 +02:00
|
|
|
|
2014-03-04 10:32:38 +02:00
|
|
|
/**
|
|
|
|
* Поиск
|
|
|
|
*/
|
|
|
|
ls.search.init();
|
|
|
|
|
|
|
|
|
2014-01-02 07:58:44 +02:00
|
|
|
// Временный костыль для сабмита форм
|
|
|
|
// TODO: Перенести в плагин button
|
2014-02-10 13:09:17 +02:00
|
|
|
$(document).on('click', 'button[data-button-submit-form]', function () {
|
2014-05-10 18:35:49 +03:00
|
|
|
$( $(this).data('button-submit-form') ).submit();
|
2014-01-02 07:58:44 +02:00
|
|
|
});
|
|
|
|
|
2014-04-03 10:40:55 +03:00
|
|
|
// Временный код экшнбара (кнопка выделения объектов)
|
|
|
|
// TODO: Перенести в виджет
|
2014-04-28 13:12:44 +03:00
|
|
|
$(document).on('click', 'li[data-select-item]', function (e) {
|
2014-04-03 12:17:55 +03:00
|
|
|
var oElement = $(this),
|
|
|
|
sItemSelector = $(this).data('select-item'),
|
|
|
|
sItemFilter = $(this).data('select-filter') || '*',
|
|
|
|
aItems = $( sItemSelector ),
|
|
|
|
aItemsFiltered = aItems.filter( sItemFilter ),
|
|
|
|
aCheckboxes = aItems.find('input[type=checkbox]');
|
2014-04-03 10:40:55 +03:00
|
|
|
|
|
|
|
aItems.removeClass('selected');
|
|
|
|
aCheckboxes.prop('checked', false);
|
2014-04-03 12:17:55 +03:00
|
|
|
aItemsFiltered.addClass('selected').find('input[type=checkbox]').prop('checked', true);
|
2014-04-03 10:40:55 +03:00
|
|
|
e.preventDefault();
|
|
|
|
});
|
2014-01-02 07:58:44 +02:00
|
|
|
|
2014-04-03 12:17:55 +03:00
|
|
|
$(document).on('click', '.js-message-list-item input[type=checkbox]', function (e) {
|
|
|
|
$(this).closest('.js-message-list-item').toggleClass('selected');
|
|
|
|
});
|
|
|
|
|
|
|
|
$(document).on('click', '.js-user-list-small-item input[type=checkbox]', function (e) {
|
|
|
|
$(this).closest('.js-user-list-small-item').toggleClass('selected');
|
|
|
|
});
|
|
|
|
|
2013-04-09 01:30:54 +03:00
|
|
|
// Хук конца инициализации javascript-составляющих шаблона
|
|
|
|
ls.hook.run('ls_template_init_end',[],window);
|
2012-04-22 21:14:29 +03:00
|
|
|
});
|