Файл: templates/default/js/wall.js
Строк: 206
<?php
var icms = icms || {};
icms.wall = (function ($) {
//=====================================================================//
this.add = function (parent_id) {
var form = $('#wall_add_form');
if (typeof(parent_id) == 'undefined'){parent_id = 0;}
$('#wall_widget #wall_add_link').show();
$('#wall_widget #entries_list .links .reply').show();
$('#wall_widget #entries_list .links .edit').show();
if (parent_id == 0){
$('#wall_widget #wall_add_link').hide();
form.detach().prependTo('#wall_widget #entries_list');
} else {
$('#wall_widget #entries_list #entry_'+parent_id+' .links .reply').hide();
form.detach().appendTo('#wall_widget #entries_list #entry_'+parent_id);
}
form.show();
$('input[name=parent_id]', form).val(parent_id);
$('input[name=id]', form).val('');
$('input[name=action]', form).val('add');
$('input[name=submit]', form).val( LANG_SEND );
$('textarea', form).val('').focus();
return false;
}
//=====================================================================//
this.submit = function (action) {
var form = $('#wall_add_form form');
var content = $('textarea', form).val();
if (!content) {return;}
var form_data = icms.forms.toJSON( form );
var url = form.attr('action');
$('.loading', form).show();
$('.buttons', form).hide();
$('textarea', form).attr('disabled', 'disabled');
if (action) {form_data.action = action;}
$.post(url, form_data, function(result){
if (form_data.action=='add') { icms.wall.result(result);}
if (form_data.action=='preview') { icms.wall.previewResult(result);}
if (form_data.action=='update') { icms.wall.updateResult(result);}
}, "json");
}
//=====================================================================//
this.preview = function () {
var form = $('#wall_add_form');
$('.preview_box', form).hide();
var content = $('textarea', form).val();
if (!content) {return;}
this.submit('preview');
}
//=====================================================================//
this.previewResult = function (result) {
if (result == null || typeof(result) == 'undefined' || result.error){
this.error(result.message);
return;
}
var form = $('#wall_add_form');
$('.preview_box', form).html( result.html ).slideDown();
this.restoreForm(false);
}
//=====================================================================//
this.more = function(){
var widget = $('#wall_widget');
$('.show_more', widget).hide();
$('.entry', widget).fadeIn();
$('.wall_pages', widget).fadeIn();
return false;
}
//=====================================================================//
this.replies = function(id, callback){
var e = $('#wall_widget #entry_'+id);
if (!e.data('replies')) { return false; }
var url = $('#wall_urls').data('replies-url');
$('.replies_loading', e).show();
$('.links .get_replies', e).hide();
$('.links', e).removeClass('has_replies');
$.post(url, {id: id}, function(result){
$('.replies_loading', e).hide();
if (result == null || typeof(result) == 'undefined' || result.error){
icms.wall.error(result.message);
return false;
}
$('.replies', e).html( result.html );
if (typeof(callback)=='function'){
callback();
}
}, "json");
return false;
}
//=====================================================================//
this.append = function(entry){
$('#wall_widget #entries_list .no_entries').remove();
if (entry.parent_id == 0){
$('#wall_widget #entries_list').prepend( entry.html );
return;
}
if (entry.parent_id > 0){
$('#wall_widget #entry_'+entry.parent_id+' .replies').append( entry.html );
return;
}
}
//=====================================================================//
this.result = function(result){
if (result == null || typeof(result) == 'undefined' || result.error){
this.error(result.message);
return;
}
this.append(result);
this.restoreForm();
}
//=====================================================================//
this.updateResult = function(result){
if (result == null || typeof(result) == 'undefined' || result.error){
this.error(result.message);
return;
}
$('#entries_list #entry_'+result.id+' .text').html( result.html );
this.restoreForm();
}
//=====================================================================//
this.edit = function (id){
var form = $('#wall_add_form');
$('#wall_widget #wall_add_link').show();
$('#wall_widget #entries_list .links .reply').show();
$('#wall_widget #entries_list .links .edit').show();
$('#wall_widget #entries_list #entry_'+id+' .links .edit').hide();
form.detach().appendTo('#wall_widget #entries_list #entry_'+id).show();
$('input[name=id]', form).val(id);
$('input[name=action]', form).val('update');
$('input[name=submit]', form).val( LANG_SAVE );
$('.loading', form).show();
$('.buttons', form).hide();
$('textarea', form).attr('disabled', 'disabled');
var url = $('#wall_urls').data('get-url');
$.post(url, {id: id}, function(result){
if (result == null || typeof(result) == 'undefined' || result.error){
icms.wall.error(result.message);
return;
}
icms.wall.restoreForm(false);
$('textarea', form).val(result.html).focus();
}, "json");
return false;
}
//=====================================================================//
this.remove = function (id){
var c = $('#entries_list #entry_'+id);
var username = $('.name .user', c).html();
if (!confirm(LANG_WALL_ENTRY_DELETE_CONFIRM.replace('%s', username))){return false;}
var url = $('#wall_urls').data('delete-url');
$.post(url, {id: id}, function(result){
if (result == null || typeof(result) == 'undefined' || result.error){
icms.wall.error(result.message);
return;
}
c.remove();
icms.wall.restoreForm();
}, "json");
}
//=====================================================================//
this.show = function(id, reply_id, go_reply){
var e = $('#entry_'+id);
if (e.length){
$.scrollTo( e, 500, {
offset: {
left:0,
top:-10
},
onAfter: function(){
icms.wall.replies(id, function(){
if (reply_id>0){
icms.wall.show(reply_id);
}
});
if (go_reply){
icms.wall.add(id);
}
}
});
} else {
if (go_reply){
$.scrollTo( $('#wall_widget'), 500, {
offset: {
left:0,
top:-10
},
onAfter: function(){
icms.wall.add();
}
});
}
}
return false;
}
//=====================================================================//
this.error = function(message){
alert(message);
this.restoreForm(false);
}
this.restoreForm = function(clear_text){
if (typeof(clear_text)=='undefined'){clear_text = true;}
var form = $('#wall_add_form');
$('.loading', form).hide();
$('.buttons', form).show();
$('textarea', form).removeAttr('disabled');
if (clear_text) {
form.hide();
$('textarea', form).val('');
$('#wall_widget #wall_add_link').show();
$('#wall_widget #entries_list .links .edit').show();
$('#wall_widget #entries_list .links .reply').show();
$('.preview_box', form).html('').hide();
}
}
//=====================================================================//
return this;
}).call(icms.wall || {},jQuery);
?>