mirror of
https://github.com/Oreolek/ifhub.club.git
synced 2024-07-08 01:14:24 +03:00
239 lines
6.8 KiB
JavaScript
239 lines
6.8 KiB
JavaScript
var ls = ls || {};
|
|
|
|
/**
|
|
* Стена пользователя
|
|
*/
|
|
ls.wall = (function ($) {
|
|
|
|
this.options = {
|
|
login: ''
|
|
};
|
|
|
|
this.iIdForReply=null;
|
|
/**
|
|
* Добавление записи
|
|
*/
|
|
this.add = function(sText, iPid) {
|
|
$('.js-button-wall-submit').attr('disabled',true);
|
|
var url = aRouter['profile']+this.options.login+'/wall/add/';
|
|
var params = {sText: sText, iPid: iPid};
|
|
|
|
ls.hook.marker('addBefore');
|
|
$('#wall-text').addClass('loader');
|
|
ls.ajax(url, params, function(result) {
|
|
$('.js-button-wall-submit').attr('disabled',false);
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
$('.js-wall-reply-parent-text').val('');
|
|
$('#wall-note-list-empty').hide();
|
|
this.loadNew();
|
|
ls.hook.run('ls_wall_add_after',[sText, iPid, result]);
|
|
}
|
|
$('#wall-text').removeClass('loader');
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.addReply = function(sText, iPid) {
|
|
$('.js-button-wall-submit').attr('disabled',true);
|
|
var url = aRouter['profile']+this.options.login+'/wall/add/';
|
|
var params = {sText: sText, iPid: iPid};
|
|
|
|
ls.hook.marker('addReplyBefore');
|
|
$('#wall-reply-text-' + iPid).addClass('loader');
|
|
ls.ajax(url, params, function(result) {
|
|
$('.js-button-wall-submit').attr('disabled',false);
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
$('.js-wall-reply-text').val('');
|
|
this.loadReplyNew(iPid);
|
|
ls.hook.run('ls_wall_addreply_after',[sText, iPid, result]);
|
|
}
|
|
$('#wall-reply-text-' + iPid).removeClass('loader');
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.load = function(iIdLess,iIdMore,callback) {
|
|
var url = aRouter['profile']+this.options.login+'/wall/load/';
|
|
var params = {iIdLess: iIdLess ? iIdLess : '', iIdMore: iIdMore ? iIdMore : ''};
|
|
ls.hook.marker('loadBefore');
|
|
ls.ajax(url, params, callback);
|
|
return false;
|
|
};
|
|
|
|
this.loadReply = function(iIdLess,iIdMore,iPid,callback) {
|
|
var url = aRouter['profile']+this.options.login+'/wall/load-reply/';
|
|
var params = {iIdLess: iIdLess ? iIdLess : '', iIdMore: iIdMore ? iIdMore : '', iPid: iPid};
|
|
ls.hook.marker('loadReplyBefore');
|
|
ls.ajax(url, params, callback);
|
|
return false;
|
|
};
|
|
|
|
this.loadNext = function() {
|
|
var divLast=$('#wall-container').find('.js-wall-item:last-child');
|
|
if (divLast.length) {
|
|
var idLess=divLast.attr('id').replace('wall-item-','');
|
|
} else {
|
|
return false;
|
|
}
|
|
$('#wall-button-next').addClass('loading');
|
|
this.load(idLess,'',function(result) {
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
if (result.iCountWall) {
|
|
$('#wall-container').append(result.sText);
|
|
}
|
|
var iCount=result.iCountWall-result.iCountWallReturn;
|
|
if (iCount) {
|
|
$('#wall-count-next').text(iCount);
|
|
} else {
|
|
$('#wall-button-next').detach();
|
|
}
|
|
ls.hook.run('ls_wall_loadnext_after',[idLess, result]);
|
|
}
|
|
$('#wall-button-next').removeClass('loading');
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.loadNew = function() {
|
|
var divFirst=$('#wall-container').find('.js-wall-item:first-child');
|
|
if (divFirst.length) {
|
|
var idMore=divFirst.attr('id').replace('wall-item-','');
|
|
} else {
|
|
var idMore=-1;
|
|
}
|
|
this.load('',idMore,function(result) {
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
if (result.iCountWall) {
|
|
$('#wall-container').prepend(result.sText);
|
|
}
|
|
ls.hook.run('ls_wall_loadnew_after',[idMore, result]);
|
|
}
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.loadReplyNew = function(iPid) {
|
|
var divFirst=$('#wall-reply-container-'+iPid).find('.js-wall-reply-item:last-child');
|
|
if (divFirst.length) {
|
|
var idMore=divFirst.attr('id').replace('wall-reply-item-','');
|
|
} else {
|
|
var idMore=-1;
|
|
}
|
|
this.loadReply('',idMore,iPid,function(result) {
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
if (result.iCountWall) {
|
|
$('#wall-reply-container-'+iPid).append(result.sText);
|
|
}
|
|
ls.hook.run('ls_wall_loadreplynew_after',[iPid, idMore, result]);
|
|
}
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.loadReplyNext = function(iPid) {
|
|
var divLast=$('#wall-reply-container-'+iPid).find('.js-wall-reply-item:first-child');
|
|
if (divLast.length) {
|
|
var idLess=divLast.attr('id').replace('wall-reply-item-','');
|
|
} else {
|
|
return false;
|
|
}
|
|
$('#wall-reply-button-next-' + iPid).addClass('loading');
|
|
this.loadReply(idLess,'',iPid,function(result) {
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
if (result.iCountWall) {
|
|
$('#wall-reply-container-'+iPid).prepend(result.sText);
|
|
}
|
|
var iCount=result.iCountWall-result.iCountWallReturn;
|
|
if (iCount) {
|
|
$('#wall-reply-count-next-'+iPid).text(iCount);
|
|
} else {
|
|
$('#wall-reply-button-next-'+iPid).detach();
|
|
}
|
|
ls.hook.run('ls_wall_loadreplynext_after',[iPid, idLess, result]);
|
|
}
|
|
$('#wall-reply-button-next-' + iPid).removeClass('loading');
|
|
}.bind(this));
|
|
return false;
|
|
};
|
|
|
|
this.toggleReply = function(iId) {
|
|
$('#wall-item-' + iId + ' .wall-submit-reply').addClass('active').toggle().children('textarea').focus();
|
|
return false;
|
|
};
|
|
|
|
this.expandReply = function(iId) {
|
|
$('#wall-item-' + iId + ' .wall-submit-reply').addClass('active');
|
|
return false;
|
|
};
|
|
|
|
this.init = function(opt) {
|
|
if (opt) {
|
|
$.extend(true,this.options,opt);
|
|
}
|
|
jQuery(function($){
|
|
$(document).click(function(e) {
|
|
if (e.which==1) {
|
|
$('.wall-submit-reply.active').each(function(k,v){
|
|
if (!$(v).find('.js-wall-reply-text').val()) {
|
|
$(v).removeClass('active');
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
$('body').on("click", ".wall-submit-reply, .link-dotted", function(e) {
|
|
e.stopPropagation();
|
|
});
|
|
|
|
$('.js-wall-reply-text').bind('keyup', function(e) {
|
|
key = e.keyCode || e.which;
|
|
if(e.ctrlKey && (key == 13)) {
|
|
var id=$(e.target).attr('id').replace('wall-reply-text-','');
|
|
this.addReply($(e.target).val(), id);
|
|
return false;
|
|
}
|
|
}.bind(this));
|
|
$('.js-wall-reply-parent-text').bind('keyup', function(e) {
|
|
key = e.keyCode || e.which;
|
|
if(e.ctrlKey && (key == 13)) {
|
|
this.add($(e.target).val(), 0);
|
|
return false;
|
|
}
|
|
}.bind(this));
|
|
}.bind(this));
|
|
};
|
|
|
|
this.remove = function(iId) {
|
|
var url = aRouter['profile']+this.options.login+'/wall/remove/';
|
|
var params = {iId: iId};
|
|
ls.hook.marker('removeBefore');
|
|
ls.ajax(url, params, function(result){
|
|
if (result.bStateError) {
|
|
ls.msg.error(null, result.sMsg);
|
|
} else {
|
|
$('#wall-item-'+iId).fadeOut('slow', function() {
|
|
ls.hook.run('ls_wall_remove_item_fade',[iId, result],this);
|
|
});
|
|
$('#wall-reply-item-'+iId).fadeOut('slow', function() {
|
|
ls.hook.run('ls_wall_remove_reply_item_fade',[iId, result],this);
|
|
});
|
|
ls.hook.run('ls_wall_remove_after',[iId, result]);
|
|
}
|
|
});
|
|
return false;
|
|
};
|
|
|
|
return this;
|
|
}).call(ls.wall || {},jQuery); |