allow group selection from contact edit page
This commit is contained in:
parent
6bf800c6c8
commit
e22e823e93
|
@ -136,7 +136,7 @@ function group_public_members($gid) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function group_side($every="contacts",$each="group",$edit = false, $group_id = 0) {
|
function group_side($every="contacts",$each="group",$edit = false, $group_id = 0, $cid = 0) {
|
||||||
|
|
||||||
$o = '';
|
$o = '';
|
||||||
|
|
||||||
|
@ -160,10 +160,19 @@ EOT;
|
||||||
$r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
|
$r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
|
||||||
intval($_SESSION['uid'])
|
intval($_SESSION['uid'])
|
||||||
);
|
);
|
||||||
|
if($cid) {
|
||||||
|
$member_of = groups_containing(local_user(),$cid);
|
||||||
|
}
|
||||||
|
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
foreach($r as $rr) {
|
foreach($r as $rr) {
|
||||||
$selected = (($group_id == $rr['id']) ? ' class="group-selected" ' : '');
|
$selected = (($group_id == $rr['id']) ? ' class="group-selected" ' : '');
|
||||||
$o .= ' <li class="sidebar-group-li">' . (($edit) ? "<a href=\"group/{$rr['id']}\" title=\"" . t('Edit') . "\" ><img src=\"images/spencil.gif\" alt=\"" . t('Edit') . "\"></a> " : "") . "<a href=\"$each/{$rr['id']}\" $selected >{$rr['name']}</a></li>\r\n";
|
$o .= ' <li class="sidebar-group-li">'
|
||||||
|
. (($edit) ? "<a href=\"group/{$rr['id']}\" title=\"" . t('Edit')
|
||||||
|
. "\" ><img src=\"images/spencil.gif\" alt=\"" . t('Edit') . "\"></a> " : "")
|
||||||
|
. (($cid) ? '<input type="checkbox" onclick="contactgroupChangeMember(' . $rr['id'] . ',' . $cid . ');return true;" '
|
||||||
|
. ((in_array($rr['id'],$member_of)) ? ' checked="checked" ' : '') . '/>' : '')
|
||||||
|
. "<a href=\"$each/{$rr['id']}\" $selected >{$rr['name']}</a></li>\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$o .= " </ul>\r\n </div>";
|
$o .= " </ul>\r\n </div>";
|
||||||
|
@ -204,3 +213,18 @@ function member_of($c) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function groups_containing($uid,$c) {
|
||||||
|
|
||||||
|
$r = q("SELECT `gid` FROM `group_member` WHERE `uid` = %d AND `group_member`.`contact-id` = %d ",
|
||||||
|
intval($uid),
|
||||||
|
intval($c)
|
||||||
|
);
|
||||||
|
|
||||||
|
$ret = array();
|
||||||
|
if(count($r)) {
|
||||||
|
foreach($r as $rr)
|
||||||
|
$ret[] = $rr['gid'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $ret;
|
||||||
|
}
|
|
@ -341,6 +341,14 @@
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function contactgroupChangeMember(gid,cid) {
|
||||||
|
$('body').css('cursor', 'wait');
|
||||||
|
$.get('contactgroup/' + gid + '/' + cid, function(data) {
|
||||||
|
$('body').css('cursor', 'auto');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
function checkboxhighlight(box) {
|
function checkboxhighlight(box) {
|
||||||
if($(box).is(':checked')) {
|
if($(box).is(':checked')) {
|
||||||
$(box).addClass('checkeditem');
|
$(box).addClass('checkeditem');
|
||||||
|
|
50
mod/contactgroup.php
Normal file
50
mod/contactgroup.php
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
require_once('include/group.php');
|
||||||
|
|
||||||
|
function contactgroup_content(&$a) {
|
||||||
|
|
||||||
|
|
||||||
|
if(! local_user()) {
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($a->argc > 2) && intval($a->argv[1]) && intval($a->argv[2])) {
|
||||||
|
$r = q("SELECT `id` FROM `contact` WHERE `id` = %d AND `uid` = %d and `self` = 0 and `blocked` = 0 AND `pending` = 0 LIMIT 1",
|
||||||
|
intval($a->argv[2]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if(count($r))
|
||||||
|
$change = intval($a->argv[2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($a->argc > 1) && (intval($a->argv[1]))) {
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1",
|
||||||
|
intval($a->argv[1]),
|
||||||
|
intval(local_user())
|
||||||
|
);
|
||||||
|
if(! count($r)) {
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
||||||
|
$group = $r[0];
|
||||||
|
$members = group_get_members($group['id']);
|
||||||
|
$preselected = array();
|
||||||
|
if(count($members)) {
|
||||||
|
foreach($members as $member)
|
||||||
|
$preselected[] = $member['id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
if($change) {
|
||||||
|
if(in_array($change,$preselected)) {
|
||||||
|
group_rmv_member(local_user(),$group['name'],$change);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
group_add_member(local_user(),$group['name'],$change);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
killme();
|
||||||
|
}
|
|
@ -6,10 +6,22 @@ function contacts_init(&$a) {
|
||||||
if(! local_user())
|
if(! local_user())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
$contact_id = 0;
|
||||||
|
if(($a->argc == 2) && intval($a->argv[1])) {
|
||||||
|
$contact_id = intval($a->argv[1]);
|
||||||
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d and `id` = %d LIMIT 1",
|
||||||
|
intval(local_user()),
|
||||||
|
intval($contact_id)
|
||||||
|
);
|
||||||
|
if(! count($r)) {
|
||||||
|
$contact_id = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
require_once('include/group.php');
|
require_once('include/group.php');
|
||||||
if(! x($a->page,'aside'))
|
if(! x($a->page,'aside'))
|
||||||
$a->page['aside'] = '';
|
$a->page['aside'] = '';
|
||||||
$a->page['aside'] .= group_side();
|
$a->page['aside'] .= group_side('contacts','group',false,0,$contact_id);
|
||||||
|
|
||||||
$inv = '<div class="side-link" id="side-invite-link" ><a href="invite" >' . t("Invite Friends") . '</a></div>';
|
$inv = '<div class="side-link" id="side-invite-link" ><a href="invite" >' . t("Invite Friends") . '</a></div>';
|
||||||
|
|
||||||
|
@ -264,13 +276,6 @@ function contacts_content(&$a) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$grps = '';
|
$grps = '';
|
||||||
$member_of = member_of($r[0]['id']);
|
|
||||||
if(is_array($member_of) && count($member_of)) {
|
|
||||||
$grps = t('Member of: ') . EOL . '<ul>';
|
|
||||||
foreach($member_of as $member)
|
|
||||||
$grps .= '<li><a href="group/' . $member['id'] . '" title="' . t('Edit') . '" ><img src="images/spencil.gif" alt="' . t('Edit') . '" /></a> <a href="network/' . $member['id'] . '">' . $member['name'] . '</a></li>';
|
|
||||||
$grps .= '</ul>';
|
|
||||||
}
|
|
||||||
|
|
||||||
$insecure = '<div id="profile-edit-insecure"><p><img src="images/unlock_icon.gif" alt="' . t('Privacy Unavailable') . '" /> '
|
$insecure = '<div id="profile-edit-insecure"><p><img src="images/unlock_icon.gif" alt="' . t('Privacy Unavailable') . '" /> '
|
||||||
. t('Private communications are not available for this contact.') . '</p></div>';
|
. t('Private communications are not available for this contact.') . '</p></div>';
|
||||||
|
|
Loading…
Reference in a new issue