1
0
Fork 0
mirror of https://github.com/Oreolek/ifhub.club.git synced 2024-06-26 03:30:48 +03:00

Возможность удалить неиспользованное приглашение в закрытый блог

This commit is contained in:
Mzhelskiy Maxim 2012-06-17 09:24:48 +04:00
parent 87c6358c88
commit edb92a3726
6 changed files with 85 additions and 4 deletions

View file

@ -134,6 +134,7 @@ class ActionBlog extends Action {
$this->AddEvent('ajaxresponsecomment','AjaxResponseComment');
$this->AddEvent('ajaxaddbloginvite', 'AjaxAddBlogInvite');
$this->AddEvent('ajaxrebloginvite', 'AjaxReBlogInvite');
$this->AddEvent('ajaxremovebloginvite', 'AjaxRemoveBlogInvite');
$this->AddEvent('ajaxbloginfo', 'AjaxBlogInfo');
$this->AddEvent('ajaxblogjoin', 'AjaxBlogJoin');
@ -1375,6 +1376,59 @@ class ActionBlog extends Action {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
}
}
/**
* Обработка ajax запроса на удаление вступить в закрытый блог
*/
protected function AjaxRemoveBlogInvite() {
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('json');
$sUserId=getRequest('idUser',null,'post');
$sBlogId=getRequest('idBlog',null,'post');
/**
* Если пользователь не авторизирован, возвращаем ошибку
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddErrorSingle($this->Lang_Get('need_authorization'),$this->Lang_Get('error'));
return;
}
$this->oUserCurrent=$this->User_GetUserCurrent();
/**
* Проверяем существование блога
*/
if(!$oBlog=$this->Blog_GetBlogById($sBlogId)) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return;
}
/**
* Пользователь существует и активен?
*/
if (!$oUser=$this->User_GetUserById($sUserId) or $oUser->getActivate()!=1) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return;
}
/**
* Проверяем, имеет ли право текущий пользователь добавлять invite в blog
*/
$oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$this->oUserCurrent->getId());
$bIsAdministratorBlog=$oBlogUser ? $oBlogUser->getIsAdministrator() : false;
if ($oBlog->getOwnerId()!=$this->oUserCurrent->getId() and !$this->oUserCurrent->isAdministrator() and !$bIsAdministratorBlog) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
return;
}
$oBlogUser=$this->Blog_GetBlogUserByBlogIdAndUserId($oBlog->getId(),$oUser->getId());
if ($oBlogUser->getUserRole()==ModuleBlog::BLOG_USER_ROLE_INVITE) {
/**
* Удаляем связь/приглашение
*/
$this->Blog_DeleteRelationBlogUser($oBlogUser);
$this->Message_AddNoticeSingle($this->Lang_Get('blog_user_invite_remove_ok',array('login'=>$oUser->getLogin())),$this->Lang_Get('attention'));
} else {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'),$this->Lang_Get('error'));
}
}
/**
* Выполняет отправку приглашения в блог
* (по внутренней почте и на email)

View file

@ -88,6 +88,27 @@ ls.blog = (function ($) {
return false;
};
/**
* Удаляет приглашение в блог
*/
this.removeInvite = function(idUser,idBlog) {
var url = aRouter['blog']+'ajaxremovebloginvite/';
var params = {idUser: idUser, idBlog: idBlog};
ls.hook.marker('removeInviteBefore');
ls.ajax(url, params, function(result){
if (result.bStateError) {
ls.msg.error(null, result.sMsg);
} else {
$('#blog-invite-remove-item-'+idBlog+'-'+idUser).remove();
ls.msg.notice(null, result.sMsg);
ls.hook.run('ls_blog_remove_invite_after',[idUser,idBlog,result]);
}
});
return false;
};
/**
* Отображение информации о блоге

View file

@ -172,6 +172,7 @@ return array(
'blog_close_show' => "It's a 'close blog', you don't have enought rights to see it's content",
'blog_user_invite_add_self' => "Can't send invitation to yourself",
'blog_user_invite_add_ok' => 'Invitation sent to user %%login%%',
'blog_user_invite_remove_ok' => 'Invite for user %%login%% removed',
'blog_user_already_invited' => 'Invitation has been sent already to user %%login%%',
'blog_user_already_exists' => 'User %%login%% already member of this blog',
'blog_user_already_reject' => 'User %%login%% rejected invitation',
@ -180,7 +181,8 @@ return array(
'blog_user_invite_already_done' => 'You already a member of this blog',
'blog_user_invite_accept' => 'Invitation accepted',
'blog_user_invite_reject' => 'Invitation rejected',
'blog_user_invite_readd' => 'Re-add',
'blog_user_invite_readd' => 'retry',
'blog_user_invite_remove' => 'remove',
/**
* Topics
*/

View file

@ -172,6 +172,7 @@ return array(
'blog_close_show' => 'Это закрытый блог, у вас нет прав на просмотр контента',
'blog_user_invite_add_self' => 'Нельзя отправить инвайт самому себе',
'blog_user_invite_add_ok' => 'Пользователю %%login%% отправлено приглашение',
'blog_user_invite_remove_ok' => 'Приглашение для пользователя %%login%% удалено',
'blog_user_already_invited' => 'Пользователю %%login%% уже отправлен инвайт',
'blog_user_already_exists' => 'Пользователь %%login%% уже состоит в блоге',
'blog_user_already_reject' => 'Пользователь %%login%% отклонил инвайт',
@ -181,6 +182,7 @@ return array(
'blog_user_invite_accept' => 'Приглашение принято',
'blog_user_invite_reject' => 'Приглашение отклонено',
'blog_user_invite_readd' => 'повторить',
'blog_user_invite_remove' => 'удалить',
/**
* Топики
*/

View file

@ -20,9 +20,10 @@
{foreach from=$aBlogUsersInvited item=oBlogUser}
{assign var='oUser' value=$oBlogUser->getUser()}
<li>
<li id="blog-invite-remove-item-{$oBlogEdit->getId()}-{$oUser->getId()}">
<a href="{$oUser->getUserWebPath()}" class="user">{$oUser->getLogin()}</a> -
<a href="#" onclick="return ls.blog.repeatInvite({$oUser->getId()}, {$oBlogEdit->getId()});">{$aLang.blog_user_invite_readd}</a>
<a href="#" onclick="return ls.blog.removeInvite({$oUser->getId()}, {$oBlogEdit->getId()});">{$aLang.blog_user_invite_remove}</a>
</li>
{/foreach}
</ul>

View file

@ -20,10 +20,11 @@
{foreach from=$aBlogUsersInvited item=oBlogUser}
{assign var='oUser' value=$oBlogUser->getUser()}
<li>
<li id="blog-invite-remove-item-{$oBlogEdit->getId()}-{$oUser->getId()}">
<a href="{$oUser->getUserWebPath()}" class="user">{$oUser->getLogin()}</a> -
<a href="#" onclick="return ls.blog.repeatInvite({$oUser->getId()}, {$oBlogEdit->getId()});">{$aLang.blog_user_invite_readd}</a>
</li>
<a href="#" onclick="return ls.blog.removeInvite({$oUser->getId()}, {$oBlogEdit->getId()});">{$aLang.blog_user_invite_remove}</a>
</li>
{/foreach}
</ul>
{else}