2014-03-04 10:26:29 +02:00
|
|
|
/**
|
|
|
|
* Активность
|
|
|
|
*
|
|
|
|
* @module ls/activity
|
|
|
|
*
|
|
|
|
* @license GNU General Public License, version 2
|
|
|
|
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
|
|
|
|
* @author Denis Shakhov <denis.shakhov@gmail.com>
|
|
|
|
*/
|
|
|
|
|
2014-07-18 18:45:16 +03:00
|
|
|
(function($) {
|
2014-03-04 10:26:29 +02:00
|
|
|
"use strict";
|
|
|
|
|
2015-01-27 15:48:47 +02:00
|
|
|
$.widget( "livestreet.lsActivity", $.livestreet.lsComponent, {
|
2014-07-18 18:45:16 +03:00
|
|
|
/**
|
|
|
|
* Дефолтные опции
|
|
|
|
*/
|
|
|
|
options: {
|
|
|
|
// Ссылки
|
|
|
|
urls: {
|
|
|
|
// Подгрузка событий
|
|
|
|
more: null
|
|
|
|
},
|
|
|
|
|
|
|
|
// Селекторы
|
|
|
|
selectors: {
|
|
|
|
// Список событий
|
2015-01-27 15:48:47 +02:00
|
|
|
list: '.js-activity-event-list',
|
2014-07-18 18:45:16 +03:00
|
|
|
// Событие
|
|
|
|
event: '.js-activity-event',
|
|
|
|
// Кнопка подгрузки событий
|
2015-01-27 15:48:47 +02:00
|
|
|
more: '.js-activity-more'
|
2014-07-18 18:45:16 +03:00
|
|
|
}
|
|
|
|
},
|
2014-03-04 10:26:29 +02:00
|
|
|
|
2014-07-18 18:45:16 +03:00
|
|
|
/**
|
|
|
|
* Конструктор
|
|
|
|
*
|
|
|
|
* @constructor
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
_create: function () {
|
2015-01-27 15:48:47 +02:00
|
|
|
this._super();
|
2014-03-04 10:26:29 +02:00
|
|
|
|
2014-07-18 18:45:16 +03:00
|
|
|
// Подгрузка событий
|
2014-12-06 15:30:08 +02:00
|
|
|
this.elements.more.lsMore({
|
2015-01-27 15:48:47 +02:00
|
|
|
urls: {
|
|
|
|
load: this.option( 'urls.more' ),
|
|
|
|
},
|
2014-07-18 18:45:16 +03:00
|
|
|
target: this.elements.list,
|
2014-03-07 18:14:34 +02:00
|
|
|
beforeload: function (e, context) {
|
2015-01-27 15:48:47 +02:00
|
|
|
context._setParam( 'date_last', this.getDateLast() );
|
|
|
|
}.bind( this )
|
2014-03-04 10:26:29 +02:00
|
|
|
});
|
2014-07-18 18:45:16 +03:00
|
|
|
},
|
2014-03-04 10:26:29 +02:00
|
|
|
|
2014-07-18 18:45:16 +03:00
|
|
|
/**
|
|
|
|
* Получает дату последнего подгруженного события
|
|
|
|
*/
|
|
|
|
getDateLast: function() {
|
|
|
|
return this.elements.list.find( this.option( 'selectors.event' ) ).last().find( 'time' ).attr( 'datetime' );
|
|
|
|
}
|
|
|
|
});
|
|
|
|
})(jQuery);
|