You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

281 lines
12 KiB

window.load_process_interval = null;
window.comments_stack = [];
$(function(){
load_lesson_comments();
CKEDITOR.replace( 'comment_sent_text' );
});
function send_comment(form, root){
// Проверить комментарий
// Отправить
if (CKEDITOR.instances.comment_sent_text.getData()){
$('[name=sent_comment_progress]').show();
$('[name=comment_sent_text]').val(CKEDITOR.instances.comment_sent_text.getData());
$.ajax({
type: 'POST',
url: '/courses/sent_lesson_comment',
data: $('[name='+form+']').serialize(),
success: function(data){
if(data['code'] == '1'){
$('[name=sent_comment_progress]').hide();
document.forms[form].reset();
CKEDITOR.instances.comment_sent_text.setData('');
reload_lesson_comments(data['data']);
$('[name='+$('#'+root).attr('sketch_place')+']').html('')
}
}
});
} else {
show_system_message('Введите текст сообщения')
}
}
function get_comment_text(id) {
var r = '';
$.ajax({
type: 'GET',
url: '/courses/get_comment_text/',
async: false,
data: {'comment': id},
success: function (data) {
if (data['code'] == '1') {
r = data['data']
}
}
});
return r;
}
function load_process(){
if (!window.load_process_interval){
start_load();
}
function start_load(){
window.load_process_interval = setInterval( function(){load(window.comments_stack.pop())}, 1000);
}
function stop_load_process(){
clearInterval(window.load_process_interval);
delete window.load_process_interval;
}
function load(data){
if (window.comments_stack.length > 0){
$('[readable_comment='+data+']').html('<iframe f_name="{{ comment.id }}" style="width: 100%; border: 0;" srcdoc="<div class=\'m-b-xs\' style=\'font-family: exo_2regular, Helvetica Neue, Helvetica, Arial, sans-serif;font-size: 14px;-webkit-font-smoothing: antialiased;line-height: 1.42857143;color: #58666e;background-color: transparent;\'>'+get_comment_text(data)+'</div>"></iframe>');
} else {
stop_load_process();
}
}
}
function read_lesson(id){
$.ajax({
type: 'POST',
url: '/courses/read_lesson/',
data: {'lesson': id},
success: function(data){
if (data['code'] == '1'){
$('[name=current_button]').fadeOut('slow', function(){
$('[name=next_button]').fadeIn('slow');
});
}
}
});
}
function write_comment(block, data){
var message;
var user_status;
var reply;
if (NotEmpty(data)) {
if (!NotEmpty(data['replies'])) {
reply = ''
} else {
reply = '<img src="/static/img/1442036154_reply-circle-blue.png" style="margin-left: 30px;">' +
'<Br>' +
'<div class="m-b b-l m-l-md streamline" parent_id="' + data['id'] + '" style="margin-left: 75px;margin-top: -25px;"></div>';
}
if (NotEmpty(data['files']) && !data['closed']) {
message = '<div name="message_files" message_id="' + data['id'] + '"></div>'
} else {
message = '';
}
user_status = '<label class="label ' + data['owner_type']['background'] + ' m-l-xs">' + data['owner_type']['title'] + '</label>';
var background;
if (data['owner_type']['flag'] == 'A') {
background = "#f5fce5;"
} else {
background = ''
}
var avatar;
if (data['closed']) {
avatar = '<span class="pull-left thumb-sm avatar m-l-n-md"><img src="/static/img/1442473207_delete.png"></span>'
} else {
avatar = '<span class="pull-left thumb-sm avatar m-l-n-md">' +
'<img src="' + data['owner_avatar'] + '" class="img-circle">' +
'</span>'
}
var head;
if (data['closed']) {
head = '<div class="panel-heading pos-rlt b-b b-light" style="background: #f1f1f1; color: #ccc;">' +
'<span class="arrow left" style="display: none;"></span>' +
'КОММЕНТАРИЙ УДАЛЕН' +
'<span class="text-muted m-l-sm pull-right">' +
'</span></div>'
} else {
head = '<div class="panel-heading pos-rlt b-b b-light">' +
'<span class="arrow left" style="display: none;"></span>' +
'<b style="margin-right: 5px;">' + data['owner'] + '</b>' +
'<span class="arrow left" style="border-right-color: ' + background + '"></span>' + user_status +
'<span class="text-muted m-l-sm pull-right">' +
//'<button class="btn like_button" title="Мне нравится"><i class="glyphicon glyphicon-heart"></i><span name="like_count" class="like_count">1</span> <span class="visible-lg-inline">Мне нравится</span></button>' +
//'<button class="btn complain_button" title="Пожаловаться"><i class="glyphicon glyphicon-fire"></i> <span class="visible-lg-inline">Пожаловаться</span></button>' +
'<i class="fa fa-clock-o" title="Дата записи: ' + data['date'] + '"></i><span class="hidden-xs" style="margin-left: 5px;">' + data['date'] + '</span></span></div>'
}
var reply_button;
var text;
if (data['closed']) {
reply_button = '';
text = '<div class="panel-body" style="display: none;">'
} else {
if (data['owner_id'] == $('[name=REQUEST_USER_ID]').val()) {
reply_button = '<a type="button" class="btn btn-danger btn-xs" onclick="delete_comment(' + data['id'] + ')">' +
'<i class="glyphicon glyphicon-remove"></i>&nbsp;Удалить</a>'
} else {
reply_button = '<a type="button" class="btn btn-default btn-xs" onclick="reply_comment(' + data['id'] + ')"><i class="fa fa-mail-reply text-muted"></i>&nbsp;Ответить</a>';
if ($('[name=REQUEST_USER_ROLE]').val() == 'A') {
reply_button += '<a type="button" class="btn btn-danger btn-xs" style="margin-left: 10px;" ' +
'onclick="delete_comment(' + data['id'] + ')"><i class="glyphicon glyphicon-remove"></i>&nbsp;Удалить</a>'
}
}
text = '<div class="panel-body" readable_comment="'+data['id']+'">' +
'<div class="m-b-xs">' + data['text'] + '</div>'
}
$(block).append('<a name="comment_' + data['id'] + '"></a><div name="comment_' + data['id'] + '">' +
avatar +
'<div class="m-l-lg panel b-a" style="background: ' + background + '">' +
head +
text +
message +
'<div class="m-t-sm">'
+ reply_button +
'</div>' +
'</div>' +
'</div>' +
'</div>' + reply);
for (var r = 0; r < data['replies'].length; r++) {
write_comment($('[parent_id=' + data['id'] + ']'), data['replies'][r])
}
var file_block = $('[name=message_files][message_id=' + data['id'] + ']');
for (var n = 0; n < data['files'].length; n++) {
var file_id = '';
var target = '';
var context = '';
if (data['files'][n]['format'] == 'I') {
file_id = 'single_image';
target = '__blank';
context = '<img src="' + data['files'][n]['url'] + '" style="display: none;">';
}
var m = '<div class="panel m-b-none"' +
' style="box-shadow: none; border: 1px solid rgba(0, 0, 0, 0.05); padding: 4px; margin-bottom: 3px !important;">' +
'<a href="' + data['files'][n]['url'] + '" target="' + target + '" id="' + file_id + '">' + context +
'<i class="' + data['files'][n]['icon'] + ' text-primary"></i> &nbsp;' +
data['files'][n]['title'] +
'<span class="text-u-l" style="margin-left: 5px;">' + data['files'][n]['name'] + '</span></a></div>';
file_block.append(m);
}
$("a#single_image").fancybox();
}
}
function load_lesson_comments(type, reload_data){
$('[name=lesson_comments_empty]').hide();
$('[name=lesson_comments_block]').show();
var comment_block = $('[name=lesson_comments_block]');
$.ajax({
type: 'POST',
url: '/courses/load_lesson_comments',
data: {'lesson': comment_block.attr('lesson_id')},
success: function(data) {
$('[name=lesson_comments_load]').hide();
comment_block.show();
if (data['code'] == 0){
$('[name=lesson_comments_empty]').show();
$('[name=lesson_comments_block]').hide();
$('[name=comments_length]').html('0');
} else {
if (NotEmpty(data['data'])) {
for (var i = 0; i < data['data'].length; i++) {
write_comment(comment_block, data['data'][i]);
}
if (type == 'reload' && reload_data) {
location.hash = '';
location.hash = 'comment_' + reload_data
}
$('[name=comments_length]').html(window.lesson_comments_length);
} else {
$('[name=lesson_comments_empty]').show();
$('[name=lesson_comments_block]').hide();
$('[name=comments_length]').html('0');
}
}
}
});
}
function reload_lesson_comments(data){
$('[name=lesson_comments_load]').show();
$('[name=lesson_comments_block]').html('');
if (NotEmpty(data)){
load_lesson_comments('reload', data)
} else {
load_lesson_comments('reload')
}
}
function delete_comment(id){
$.ajax({
type: 'POST',
url: '/courses/delete_comment',
data: {'comment': id},
success: function(data){
if (data['code'] == '1'){
reload_lesson_comments(false);
location.hash='comment_list_place';
} else {
show_system_message(data['response'])
}
}
});
}
function reply_comment(id){
$('html,body').stop().animate({ scrollTop: $('[name=comment_send_form]').offset().top }, 1000);
$('[name=reply_for_comment_id]').val(id);
CKEDITOR.instances.comment_sent_text.focus();
}
function get_lesson_comments_length(){
$.ajax({
type: 'GET',
url: '/courses/get_lesson_comments_length',
async: true,
data: {'id': $('[name=LESSON_ID]').val()},
success: function(data){
if (data['code'] == '1'){
var comments_length = data['data'];
if (window.lesson_comments_length != comments_length){
reload_lesson_comments();
window.lesson_comments_length = comments_length
}
} else {
show_system_message(data['response'])
}
}
});
}
$(function() {
$("a#single_image").fancybox();
setInterval(function(){
get_lesson_comments_length();
}
, 200000);
load_process()
});