1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-07-05 16:04:24 +03:00
ifhub.club/application/frontend/common/js/user-follow.js
2014-08-14 23:53:04 +07:00

75 lines
1.7 KiB
JavaScript

/**
* Follow user
*
* @module ls/user/follow
*
* @license GNU General Public License, version 2
* @copyright 2013 OOO "ЛС-СОФТ" {@link http://livestreetcms.com}
* @author Denis Shakhov <denis.shakhov@gmail.com>
*/
(function($) {
"use strict";
$.widget( "livestreet.lsUserFollow", {
/**
* Дефолтные опции
*/
options: {
// Ссылки
urls: {
// Подписаться
follow: null,
// Отписаться
unfollow: null
}
},
/**
* Конструктор
*
* @constructor
* @private
*/
_create: function () {
this._on({ click: this.onClick });
},
/**
* Коллбэк вызываемый при клике на кнопку подписки
*/
onClick: function( event ) {
this[ this.element.hasClass( ls.options.classes.states.active ) ? 'unfollow' : 'follow' ]();
event.preventDefault();
},
/**
* Подписаться
*/
follow: function() {
ls.ajax.load( this.option( 'urls.follow' ), { aUserList: [ this.element.data('login') ] }, this.onFollow.bind(this) );
},
/**
* Коллбэк вызываемый при подписке
*/
onFollow: function( response ) {
this.element.addClass( ls.options.classes.states.active ).text( ls.lang.get('user.actions.unfollow') );
},
/**
* Отписаться
*/
unfollow: function() {
ls.ajax.load( this.option( 'urls.follow' ), { iUserId: [ this.element.data('id') ] }, this.onUnfollow.bind(this) );
},
/**
* Коллбэк вызываемый при отписке
*/
onUnfollow: function( response ) {
this.element.removeClass( ls.options.classes.states.active ).text( ls.lang.get('user.actions.follow') );
}
});
})(jQuery);