group drop

pull/1/head
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` ( CREATE TABLE IF NOT EXISTS `group` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL, `uid` int(10) unsigned NOT NULL,
`deleted` tinyint(1) NOT NULL DEFAULT '0',
`name` char(255) NOT NULL, `name` char(255) NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View File

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

View File

@ -15,7 +15,7 @@ function group_init(&$a) {
function group_post(&$a) { function group_post(&$a) {
if(! local_user()) { if(! local_user()) {
notice("Access denied." . EOL); notice( t('Permission denied.') . EOL);
return; return;
} }
@ -23,13 +23,13 @@ function group_post(&$a) {
$name = notags(trim($_POST['groupname'])); $name = notags(trim($_POST['groupname']));
$r = group_add($_SESSION['uid'],$name); $r = group_add($_SESSION['uid'],$name);
if($r) { if($r) {
notice("Group created." . EOL ); notice( t('Group created.') . EOL );
$r = group_byname($_SESSION['uid'],$name); $r = group_byname($_SESSION['uid'],$name);
if($r) if($r)
goaway($a->get_baseurl() . '/group/' . $r); goaway($a->get_baseurl() . '/group/' . $r);
} }
else else
notice("Could not create group." . EOL ); notice( t('Could not create group.') . EOL );
goaway($a->get_baseurl() . '/group'); goaway($a->get_baseurl() . '/group');
return; // NOTREACHED return; // NOTREACHED
} }
@ -39,7 +39,7 @@ function group_post(&$a) {
intval($_SESSION['uid']) intval($_SESSION['uid'])
); );
if(! count($r)) { if(! count($r)) {
notice("Group not found." . EOL ); notice( t('Group not found.') . EOL );
goaway($a->get_baseurl() . '/contacts'); goaway($a->get_baseurl() . '/contacts');
} }
$group = $r[0]; $group = $r[0];
@ -51,7 +51,7 @@ function group_post(&$a) {
intval($group['id']) intval($group['id'])
); );
if($r) if($r)
notice("Group name changed." . EOL ); notice( t('Group name changed.') . EOL );
} }
$members = $_POST['group_members_select']; $members = $_POST['group_members_select'];
array_walk($members,'validate_members'); array_walk($members,'validate_members');
@ -73,7 +73,7 @@ function group_post(&$a) {
} }
} }
if($result) if($result)
notice("Membership list updated." . EOL); notice( t('Membership list updated.') . EOL);
$a->page['aside'] = group_side(); $a->page['aside'] = group_side();
} }
@ -82,7 +82,7 @@ function group_post(&$a) {
function group_content(&$a) { function group_content(&$a) {
if(! local_user()) { if(! local_user()) {
notice("Access denied." . EOL); notice( t('Permission denied') . EOL);
return; 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]))) { if(($a->argc == 2) && (intval($a->argv[1]))) {
@ -104,7 +119,7 @@ function group_content(&$a) {
intval($_SESSION['uid']) intval($_SESSION['uid'])
); );
if(! count($r)) { if(! count($r)) {
notice("Group not found." . EOL ); notice( t("Group not found.") . EOL );
goaway($a->get_baseurl() . '/contacts'); goaway($a->get_baseurl() . '/contacts');
} }
$group = $r[0]; $group = $r[0];
@ -115,10 +130,17 @@ function group_content(&$a) {
$preselected[] = $p['id']; $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'); $tpl = file_get_contents('view/group_edit.tpl');
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
'$gid' => $group['id'], '$gid' => $group['id'],
'$name' => $group['name'], '$name' => $group['name'],
'$drop' => $drop_txt,
'$selector' => contact_select('group_members_select','group_members_select',$preselected,25) '$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 = ''; $sql_extra = '';
if($group) { 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($group),
intval($_SESSION['uid']) intval($_SESSION['uid'])
); );
@ -87,6 +87,7 @@ function network_content(&$a, $update = false) {
$contacts[] = $_SESSION['cid']; $contacts[] = $_SESSION['cid'];
$contact_str = implode(',',$contacts); $contact_str = implode(',',$contacts);
$sql_extra = dbesc(" AND `contact`.`id` IN ( $contact_str ) "); $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"; $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'] $_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 $selector
</div> </div>
$drop
<div id="group_members_select_end"></div> <div id="group_members_select_end"></div>
<div id="group-edit-submit-wrapper" > <div id="group-edit-submit-wrapper" >
<input type="submit" name="submit" value="Submit" > <input type="submit" name="submit" value="Submit" >

View File

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