[Isocial-svn] SF.net SVN: isocial: [283] app
Status: Pre-Alpha
Brought to you by:
aguidrevitch
From: <di...@us...> - 2008-07-09 15:55:02
|
Revision: 283 http://isocial.svn.sourceforge.net/isocial/?rev=283&view=rev Author: dim0s77 Date: 2008-07-09 08:55:12 -0700 (Wed, 09 Jul 2008) Log Message: ----------- added leaving group Modified Paths: -------------- app/controllers/groupapp/group_controller.php app/locales/groupapp/group/ru.php app/views/groupapp/group/_members_list.tpl app/views/groupapp/group/browse.tpl app/views/groupapp/group/index.tpl app/views/groupapp/group/members.tpl app/views/groupapp/group/show_group.tpl Modified: app/controllers/groupapp/group_controller.php =================================================================== --- app/controllers/groupapp/group_controller.php 2008-07-09 15:01:01 UTC (rev 282) +++ app/controllers/groupapp/group_controller.php 2008-07-09 15:55:12 UTC (rev 283) @@ -35,6 +35,7 @@ if ($current_user_id == $member->user_id) { $this->is_member = true; $this->is_guest = false; + $this->group_member_id = $member->id; } } $this->group_members = $members; @@ -324,7 +325,7 @@ function _members () { $this->_calcGroupMembersCount(); - if (!count($this->group_members)) { + if (empty($this->group_members)) { $this->renderAction('members.tpl'); return; } @@ -357,7 +358,11 @@ function join () { if ($this->group && !$this->is_member) { - $member = $this->GroupappMemberRole->find(4); + if ($this->group->members_count > 0) { + $member = $this->GroupappMemberRole->find(4); + } else { + $member = $this->GroupappMemberRole->find(1); + } $group_member = $this->GroupappGroup->group_member->build(); $group_member->group->assign($this->group); $group_member->user->assign($this->current_user); @@ -372,6 +377,23 @@ $this->renderText(''); } + function leave () { + if ($this->group && $this->is_member) { + $this->group->members_count -= 1; + if (!$this->group->save()) { + $this->renderText(''); + return; + } + if (!$this->GroupappMember->destroy($this->group_member_id)) { + $this->group->members_count += 1; + $this->group->save(); + $this->renderText('OK'); + return; + }; + } + $this->renderText(''); + } + function help () { } Modified: app/locales/groupapp/group/ru.php =================================================================== --- app/locales/groupapp/group/ru.php 2008-07-09 15:01:01 UTC (rev 282) +++ app/locales/groupapp/group/ru.php 2008-07-09 15:55:12 UTC (rev 283) @@ -157,6 +157,9 @@ $dictionary['Add group membership'] = 'Присоединиться к группе'; $dictionary['Do you want to join'] = 'Вы хотите присоединиться к'; $dictionary['Join'] = 'Присоединиться'; +$dictionary['Remove group membership'] = 'Прекратить свое участие в группе'; +$dictionary['Are you sure you want to remove your membership from'] = 'Вы уверены, что хотите покинуть группу'; +$dictionary['Remove'] = 'Покинуть'; $dictionary['Search groups'] = 'Поиск групп'; $dictionary['Search by name'] = 'Поиск по имени'; Modified: app/views/groupapp/group/_members_list.tpl =================================================================== --- app/views/groupapp/group/_members_list.tpl 2008-07-09 15:01:01 UTC (rev 282) +++ app/views/groupapp/group/_members_list.tpl 2008-07-09 15:55:12 UTC (rev 283) @@ -1,20 +1,20 @@ <div class="list_header"><?= $text_helper->translate($members_group_name, array()); ?>: {members_count}</div> -<? if (!$members_count) { ?> +<? if (!$members_count): ?> <div class="empty_list"><?= $text_helper->translate($empty_message, array()); ?></div> -<? } else { ?> -<? if ($list_id == 'members_list') { ?><div class="members_list_container"><? } ?> +<? else: ?> + <? if ($list_id == 'members_list'): ?><div class="members_list_container"><? endif ?> <div class="members_list"> <ul> {?members}{loop members} - <? if ($member->groupapp_member_role_id == $role) { ?> + <? if ($member->groupapp_member_role_id == $role): ?> <li> <span class="member_name"><a href="/profile/show/{member.id}">{member.user.name}</a></span> <span class="change_status"><a href="#" onclick="change_member_status(this); return false;" name="{member.id}">_{change status}</a></span> <a href="#" onclick="remove_member(this, {group.id}, '{list_id}', {role}); return false;" name="{member.id}">_{remove}</a> </li> - <? } ?> + <? endif ?> {end}{end} </ul> </div> -<? if ($list_id == 'members_list') { ?></div><? } ?> -<? } ?> + <? if ($list_id == 'members_list'): ?></div><? endif ?> +<? endif ?> Modified: app/views/groupapp/group/browse.tpl =================================================================== --- app/views/groupapp/group/browse.tpl 2008-07-09 15:01:01 UTC (rev 282) +++ app/views/groupapp/group/browse.tpl 2008-07-09 15:55:12 UTC (rev 283) @@ -152,4 +152,5 @@ }); return false; } + </script> Modified: app/views/groupapp/group/index.tpl =================================================================== --- app/views/groupapp/group/index.tpl 2008-07-09 15:01:01 UTC (rev 282) +++ app/views/groupapp/group/index.tpl 2008-07-09 15:55:12 UTC (rev 283) @@ -51,7 +51,7 @@ <? endif ?> {end} <? endif ?> - <li><a href="#">_{Leave Group}</a></li> + <li><a href="#" onclick="leave_this_group(this); return false;" id="{user_group.id?}" name="{user_group.name?}">_{Leave Group}</a></li> </ul> </div> @@ -129,3 +129,23 @@ </div> <div class="clearfix"></div> </div> + +<script type="text/javascript"> +function leave_this_group (element) { + new Dialog.Box(element, { + classname: 'delete_dialog', + title: '_{Remove group membership}?', + body: '_{Are you sure you want to remove your membership from} "' + element.name + '"?', + yes: '_{Remove}', + cancel: '_{Cancel}', + onYes : function () { + new Ajax.Request('/groupapp/group/leave/' + element.id, { + onComplete: function () { + window.location = "/groupapp/group"; + } + }); + } + }); + return false; +} +</script> Modified: app/views/groupapp/group/members.tpl =================================================================== --- app/views/groupapp/group/members.tpl 2008-07-09 15:01:01 UTC (rev 282) +++ app/views/groupapp/group/members.tpl 2008-07-09 15:55:12 UTC (rev 283) @@ -51,7 +51,27 @@ </div> {else} <div class="nogroups"> - _{Group have no members}. <a href="">_{Become the owner of the group}</a>. + _{Group have no members}. <a href="#" onclick="join_this_group(this); return false;">_{Become the owner of the group}</a>. <div class="clearfix"></div> </div> + +<script type="text/javascript"> +function join_this_group (element) { + new Dialog.Box(element, { + classname: 'delete_dialog', + title: '_{Add group membership}?', + body: '_{Do you want to join} "{group.name?}"?', + yes: '_{Join}', + cancel: '_{Cancel}', + onYes : function () { + new Ajax.Request('/groupapp/group/join/{group.id?}', { + onComplete: function () { + window.location = "/groupapp/group/show_members/{group.id?}"; + } + }); + } + }); + return false; +} +</script> {end} Modified: app/views/groupapp/group/show_group.tpl =================================================================== --- app/views/groupapp/group/show_group.tpl 2008-07-09 15:01:01 UTC (rev 282) +++ app/views/groupapp/group/show_group.tpl 2008-07-09 15:55:12 UTC (rev 283) @@ -23,11 +23,11 @@ {end} {?is_member} <li><a href="/groupapp/group/edit_members/{group.id?}">_{Invite People to Join}</a></li> - <li><a href="#">_{Leave Group}</a></li> + <li><a href="#" onclick="leave_this_group(this); return false;">_{Leave Group}</a></li> {end} {?is_guest} <li><a href="#">_{View Discussion Board}</a></li> - <li><a href="#" onclick="join_this_group(this); return false;" name="{group.id?}">_{Join this Group}</a></li> + <li><a href="#" onclick="join_this_group(this); return false;">_{Join this Group}</a></li> {end} </ul> @@ -149,6 +149,7 @@ <div class="info">_{Members count}: {members_count?}</div> </div> <div class="clearfix"></div> + {?members_count} <div class="body"> {?group_members} {loop group_members} @@ -161,6 +162,11 @@ {end} {end} </div> + {else} + <div class="emptyblock"> + _{Group have no members}.<br><a href="#" onclick="join_this_group(this); return false;">_{Become the owner of the group}</a> + </div> + {end} </div> <!-- <div class="box"> --> @@ -196,4 +202,23 @@ }); return false; } + +function leave_this_group (element) { + new Dialog.Box(element, { + classname: 'delete_dialog', + title: '_{Remove group membership}?', + body: '_{Are you sure you want to remove your membership from} "{group.name?}"?', + yes: '_{Remove}', + cancel: '_{Cancel}', + onYes : function () { + new Ajax.Request('/groupapp/group/leave/{group.id?}', { + onComplete: function () { + window.location = "/groupapp/group"; + } + }); + } + }); + return false; +} + </script> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |