use Friendica\Core\L10n;
use Friendica\Core\PConfig;
use Friendica\Core\System;
-use Friendica\Database\DBM;
-use Friendica\Model\Contact;
-use Friendica\Model\Group;
+use Friendica\Database\DBA;
+use Friendica\Model;
+use Friendica\Module\Contact;
function group_init(App $a) {
if (local_user()) {
- $a->page['aside'] = Group::sidebarWidget('contacts', 'group', 'extended', (($a->argc > 1) ? intval($a->argv[1]) : 0));
+ $a->page['aside'] = Group::sidebarWidget('contacts', 'group', 'extended', (($a->argc > 1) ? $a->argv[1] : 'everyone'));
}
}
function group_post(App $a) {
- if (! local_user()) {
+ if (!local_user()) {
notice(L10n::t('Permission denied.') . EOL);
return;
}
$name = notags(trim($_POST['groupname']));
$r = Group::create(local_user(), $name);
if ($r) {
- info(t('Group created.') . EOL);
+ info(L10n::t('Group created.') . EOL);
$r = Group::getIdByName(local_user(), $name);
if ($r) {
goaway(System::baseUrl() . '/group/' . $r);
return; // NOTREACHED
}
- if (($a->argc == 2) && (intval($a->argv[1]))) {
+ if (($a->argc == 2) && intval($a->argv[1])) {
check_form_security_token_redirectOnErr('/group', 'group_edit');
$r = q("SELECT * FROM `group` WHERE `id` = %d AND `uid` = %d LIMIT 1",
intval($a->argv[1]),
intval(local_user())
);
- if (! DBM::is_result($r)) {
+ if (!DBA::isResult($r)) {
notice(L10n::t('Group not found.') . EOL);
- goaway(System::baseUrl() . '/contacts');
+ goaway(System::baseUrl() . '/contact');
return; // NOTREACHED
}
$group = $r[0];
$groupname = notags(trim($_POST['groupname']));
- if ((strlen($groupname)) && ($groupname != $group['name'])) {
+ if (strlen($groupname) && ($groupname != $group['name'])) {
$r = q("UPDATE `group` SET `name` = '%s' WHERE `uid` = %d AND `id` = %d",
- dbesc($groupname),
+ DBA::escape($groupname),
intval(local_user()),
intval($group['id'])
);
if ($r) {
- info(t('Group name changed.') . EOL);
+ info(L10n::t('Group name changed.') . EOL);
}
}
function group_content(App $a) {
$change = false;
- if (! local_user()) {
+ if (!local_user()) {
notice(L10n::t('Permission denied') . EOL);
return;
}
- // Switch to text mode interface if we have more than 'n' contacts or group members
+ // With no group number provided we jump to the unassigned contacts as a starting point
+ if ($a->argc == 1) {
+ goaway('group/none');
+ }
+ // Switch to text mode interface if we have more than 'n' contacts or group members
$switchtotext = PConfig::get(local_user(), 'system', 'groupedit_image_limit');
if (is_null($switchtotext)) {
$switchtotext = Config::get('system', 'groupedit_image_limit', 400);
$tpl = get_markup_template('group_edit.tpl');
$context = [
- '$submit' => L10n::t('Save Group'),
+ '$submit' => L10n::t('Save Group'),
+ '$submit_filter' => L10n::t('Filter'),
];
if (($a->argc == 2) && ($a->argv[1] === 'new')) {
}
+ $nogroup = false;
+
+ if (($a->argc == 2) && ($a->argv[1] === 'none')) {
+ $id = -1;
+ $nogroup = true;
+ $group = [
+ 'id' => $id,
+ 'name' => L10n::t('Contacts not in any group'),
+ ];
+
+ $members = [];
+ $preselected = [];
+ $entry = [];
+
+ $context = $context + [
+ '$title' => $group['name'],
+ '$gname' => ['groupname', L10n::t('Group Name: '), $group['name'], ''],
+ '$gid' => $id,
+ '$editable' => 0,
+ ];
+ }
+
+
if (($a->argc == 3) && ($a->argv[1] === 'drop')) {
check_form_security_token_redirectOnErr('/group', 'group_drop', 't');
$result = null;
- if (DBM::is_result($r)) {
+ if (DBA::isResult($r)) {
$result = Group::removeByName(local_user(), $r[0]['name']);
}
if ($result) {
- info(t('Group removed.') . EOL);
+ info(L10n::t('Group removed.') . EOL);
} else {
notice(L10n::t('Unable to remove group.') . EOL);
}
intval($a->argv[2]),
intval(local_user())
);
- if (DBM::is_result($r)) {
+ if (DBA::isResult($r)) {
$change = intval($a->argv[2]);
}
}
- if (($a->argc > 1) && (intval($a->argv[1]))) {
- require_once 'include/acl_selectors.php';
- require_once 'mod/contacts.php';
-
+ 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 (! DBM::is_result($r)) {
+ if (!DBA::isResult($r)) {
notice(L10n::t('Group not found.') . EOL);
- goaway(System::baseUrl() . '/contacts');
+ goaway(System::baseUrl() . '/contact');
}
$group = $r[0];
- $members = Contact::getByGroupId($group['id']);
+ $members = Model\Contact::getByGroupId($group['id']);
$preselected = [];
$entry = [];
$id = 0;
Group::addMember($group['id'], $change);
}
- $members = Contact::getByGroupId($group['id']);
+ $members = Model\Contact::getByGroupId($group['id']);
$preselected = [];
if (count($members)) {
foreach ($members as $member) {
$context = $context + [
- '$title' => L10n::t('Group Editor'),
+ '$title' => $group['name'],
'$gname' => ['groupname', L10n::t('Group Name: '), $group['name'], ''],
'$gid' => $group['id'],
'$drop' => $drop_txt,
'$form_security_token' => get_form_security_token('group_edit'),
- '$edit_name' => L10n::t('Edit Group Name')
+ '$edit_name' => L10n::t('Edit Group Name'),
+ '$editable' => 1,
];
}
- if (! isset($group)) {
+ if (!isset($group)) {
return;
}
// Format the data of the group members
foreach ($members as $member) {
if ($member['url']) {
- $entry = _contact_detail_for_template($member);
+ $entry = Contact::getContactTemplateVars($member);
$entry['label'] = 'members';
$entry['photo_menu'] = '';
$entry['change_member'] = [
- 'title' => L10n::t("Remove Contact"),
+ 'title' => L10n::t("Remove contact from group"),
'gid' => $group['id'],
'cid' => $member['id'],
'sec_token' => $sec_token
}
}
- $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `self` ORDER BY `name` ASC",
- intval(local_user())
- );
+ if ($nogroup) {
+ $r = Model\Contact::getUngroupedList(local_user());
+ } else {
+ $r = q("SELECT * FROM `contact` WHERE `uid` = %d AND NOT `blocked` AND NOT `pending` AND NOT `self` ORDER BY `name` ASC",
+ intval(local_user())
+ );
+ $context['$desc'] = L10n::t('Click on a contact to add or remove.');
+ }
- if (DBM::is_result($r)) {
+ if (DBA::isResult($r)) {
// Format the data of the contacts who aren't in the contact group
foreach ($r as $member) {
- if (! in_array($member['id'], $preselected)) {
- $entry = _contact_detail_for_template($member);
+ if (!in_array($member['id'], $preselected)) {
+ $entry = Contact::getContactTemplateVars($member);
$entry['label'] = 'contacts';
- $entry['photo_menu'] = '';
- $entry['change_member'] = [
- 'title' => L10n::t("Add Contact"),
- 'gid' => $group['id'],
- 'cid' => $member['id'],
- 'sec_token' => $sec_token
- ];
+ if (!$nogroup)
+ $entry['photo_menu'] = [];
+
+ if (!$nogroup) {
+ $entry['change_member'] = [
+ 'title' => L10n::t("Add contact to group"),
+ 'gid' => $group['id'],
+ 'cid' => $member['id'],
+ 'sec_token' => $sec_token
+ ];
+ }
$groupeditor['contacts'][] = $entry;
}
}
$context['$groupeditor'] = $groupeditor;
- $context['$desc'] = L10n::t('Click on a contact to add or remove.');
// If there are to many contacts we could provide an alternative view mode
$total = count($groupeditor['members']) + count($groupeditor['contacts']);