group drop

This commit is contained in:
Mike Macgirvin 2010-08-11 01:48:43 -07:00
parent eb6b2677cb
commit f4e634ad52
8 changed files with 43 additions and 14 deletions

View File

@ -82,6 +82,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
CREATE TABLE IF NOT EXISTS `group` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`deleted` tinyint(1) NOT NULL DEFAULT '0',
`name` char(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View File

@ -38,7 +38,7 @@ function group_rmv($uid,$name) {
);
// remove group
$r = q("DELETE FROM `group` WHERE `uid` = %d AND `id` = %d LIMIT 1",
$r = q("UPDATE GROUP SET `deleted` = 1 WHERE `uid` = %d AND `id` = %d LIMIT 1",
intval($uid),
dbesc($name)
);
@ -46,7 +46,6 @@ function group_rmv($uid,$name) {
$ret = $r;
}
// TODO!! remove this group from all content ACL's !!
return $ret;
}
@ -144,7 +143,7 @@ $o .= <<< EOT
EOT;
$r = q("SELECT * FROM `group` WHERE `uid` = %d",
$r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d",
intval($_SESSION['uid'])
);
if(count($r)) {

View File

@ -15,7 +15,7 @@ function group_init(&$a) {
function group_post(&$a) {
if(! local_user()) {
notice("Access denied." . EOL);
notice( t('Permission denied.') . EOL);
return;
}
@ -23,13 +23,13 @@ function group_post(&$a) {
$name = notags(trim($_POST['groupname']));
$r = group_add($_SESSION['uid'],$name);
if($r) {
notice("Group created." . EOL );
notice( t('Group created.') . EOL );
$r = group_byname($_SESSION['uid'],$name);
if($r)
goaway($a->get_baseurl() . '/group/' . $r);
}
else
notice("Could not create group." . EOL );
notice( t('Could not create group.') . EOL );
goaway($a->get_baseurl() . '/group');
return; // NOTREACHED
}
@ -39,7 +39,7 @@ function group_post(&$a) {
intval($_SESSION['uid'])
);
if(! count($r)) {
notice("Group not found." . EOL );
notice( t('Group not found.') . EOL );
goaway($a->get_baseurl() . '/contacts');
}
$group = $r[0];
@ -51,7 +51,7 @@ function group_post(&$a) {
intval($group['id'])
);
if($r)
notice("Group name changed." . EOL );
notice( t('Group name changed.') . EOL );
}
$members = $_POST['group_members_select'];
array_walk($members,'validate_members');
@ -73,7 +73,7 @@ function group_post(&$a) {
}
}
if($result)
notice("Membership list updated." . EOL);
notice( t('Membership list updated.') . EOL);
$a->page['aside'] = group_side();
}
@ -82,7 +82,7 @@ function group_post(&$a) {
function group_content(&$a) {
if(! local_user()) {
notice("Access denied." . EOL);
notice( t('Permission denied') . EOL);
return;
}
@ -94,7 +94,22 @@ function group_content(&$a) {
}
if(($a->argc == 3) && ($a->argv[1] == 'drop')) {
if(intval($argv[2])) {
$r = q("SELECT `name` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($argv[2]),
intval($_SESSION['uid'])
);
if(count($r))
$result = group_rmv($_SESSION['uid'],$r[0]['name']);
if($result)
notice( t('Group removed.') . EOL);
else
notice( t('Unable to remove group.') . EOL);
}
goaway($a->get_baseurl() . '/group');
return; // NOTREACHED
}
if(($a->argc == 2) && (intval($a->argv[1]))) {
@ -104,7 +119,7 @@ function group_content(&$a) {
intval($_SESSION['uid'])
);
if(! count($r)) {
notice("Group not found." . EOL );
notice( t("Group not found.") . EOL );
goaway($a->get_baseurl() . '/contacts');
}
$group = $r[0];
@ -115,10 +130,17 @@ function group_content(&$a) {
$preselected[] = $p['id'];
}
$drop_tpl = file_get_contents('view/group_drop.tpl');
$drop_txt = replace_macros($drop_tpl, array(
'$id' => $group['id'],
'$delete' => t('Delete')
));
$tpl = file_get_contents('view/group_edit.tpl');
$o .= replace_macros($tpl, array(
'$gid' => $group['id'],
'$name' => $group['name'],
'$drop' => $drop_txt,
'$selector' => contact_select('group_members_select','group_members_select',$preselected,25)
));

View File

@ -73,7 +73,7 @@ function network_content(&$a, $update = false) {
$sql_extra = '';
if($group) {
$r = q("SELECT `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
$r = q("SELECT `name`, `id` FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($group),
intval($_SESSION['uid'])
);
@ -87,6 +87,7 @@ function network_content(&$a, $update = false) {
$contacts[] = $_SESSION['cid'];
$contact_str = implode(',',$contacts);
$sql_extra = dbesc(" AND `contact`.`id` IN ( $contact_str ) ");
$o = '<h4>' . t('Group: ') . $r[0]['name'] . '</h4>' . $o;
}

View File

@ -7,7 +7,7 @@ function group_select($selname,$selclass,$preselected = false,$size = 4) {
$o .= "<select name=\"{$selname}[]\" class=\"$selclass\" multiple=\"multiple\" size=\"$size\" />\r\n";
$r = q("SELECT * FROM `group` WHERE `uid` = %d ORDER BY `name` ASC",
$r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
$_SESSION['uid']
);

1
view/group_drop.tpl Normal file
View File

@ -0,0 +1 @@
<div class="group-delete-wrapper" id="group-delete-wrapper-$id" ><a href="group/drop/$id" onclick="return confirmDelete();" ><img src="images/b_drophide.gif" alt="$delete" title="$delete" id="group-delete-icon-$id" class="group-delete-icon" onmouseover="imgbright(this);" onmouseout="imgdull(this);" ></a></div><div class="group-delete-end"></div>

View File

@ -13,6 +13,7 @@
$selector
</div>
$drop
<div id="group_members_select_end"></div>
<div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="Submit" >

View File

@ -1404,3 +1404,7 @@ input#dfrn-url {
margin-left: 200px;
}
.group-delete-wrapper {
float: right;
margin-right: 50px;
}