use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model;
+use Friendica\Model\User;
use Friendica\Module\Security\Login;
use Friendica\Network\HTTPException\BadRequestException;
use Friendica\Network\HTTPException\NotFoundException;
$rel = Strings::escapeTags(trim($_GET['rel'] ?? ''));
$group = Strings::escapeTags(trim($_GET['group'] ?? ''));
+ $accounttype = $_GET['accounttype'] ?? '';
+ $accounttypeid = User::getAccountTypeByString($accounttype);
+
$page = DI::page();
$page->registerFooterScript(Theme::getPathForFile('asset/typeahead.js/dist/typeahead.bundle.js'));
$unfollow_link = '';
if (in_array($contact['network'], Protocol::NATIVE_SUPPORT)) {
if ($contact['uid'] && in_array($contact['rel'], [Model\Contact::SHARING, Model\Contact::FRIEND])) {
- $unfollow_link = 'unfollow?url=' . urlencode($contact['url']);
+ $unfollow_link = 'unfollow?url=' . urlencode($contact['url']) . '&auto=1';
} elseif(!$contact['pending']) {
- $follow_link = 'follow?url=' . urlencode($contact['url']);
+ $follow_link = 'follow?url=' . urlencode($contact['url']) . '&auto=1';
}
}
$findpeople_widget = '';
$follow_widget = '';
+ $account_widget = '';
$networks_widget = '';
$rel_widget = '';
$follow_widget = Widget::follow();
}
+ $account_widget = Widget::accounttypes($_SERVER['REQUEST_URI'], $accounttype);
$networks_widget = Widget::networks($_SERVER['REQUEST_URI'], $nets);
$rel_widget = Widget::contactRels($_SERVER['REQUEST_URI'], $rel);
$groups_widget = Widget::groups($_SERVER['REQUEST_URI'], $group);
}
- DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $groups_widget . $networks_widget . $rel_widget;
+ DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $account_widget . $groups_widget . $networks_widget . $rel_widget;
$tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
if ($cmd === 'drop' && ($orig_record['uid'] != 0)) {
// Check if we should do HTML-based delete confirmation
if (!empty($_REQUEST['confirm'])) {
- // <form> can't take arguments in its 'action' parameter
- // so add any arguments as hidden inputs
- $query = explode_querystring(DI::args()->getQueryString());
- $inputs = [];
- foreach ($query['args'] as $arg) {
- if (strpos($arg, 'confirm=') === false) {
- $arg_parts = explode('=', $arg);
- $inputs[] = ['name' => $arg_parts[0], 'value' => $arg_parts[1]];
- }
- }
-
DI::page()['aside'] = '';
return Renderer::replaceMacros(Renderer::getMarkupTemplate('contact_drop_confirm.tpl'), [
'$contact' => self::getContactTemplateVars($orig_record),
'$method' => 'get',
'$message' => DI::l10n()->t('Do you really want to delete this contact?'),
- '$extra_inputs' => $inputs,
'$confirm' => DI::l10n()->t('Yes'),
- '$confirm_url' => $query['base'],
+ '$confirm_url' => DI::args()->getCommand(),
'$confirm_name' => 'confirmed',
'$cancel' => DI::l10n()->t('Cancel'),
]);
array_unshift($sql_values, 0);
break;
case 'archived':
- $sql_extra = " AND `archive` AND NOT `blocked` AND NOT `pending`";
+ $sql_extra = " AND (`archive` OR `failed`) AND NOT `blocked` AND NOT `pending`";
break;
case 'pending':
- $sql_extra = " AND `pending` AND NOT `archive` AND ((`rel` = ?)
+ $sql_extra = " AND `pending` AND NOT `archive` AND NOT `failed` AND ((`rel` = ?)
OR EXISTS (SELECT `id` FROM `intro` WHERE `contact-id` = `contact`.`id` AND NOT `ignore`))";
$sql_values[] = Model\Contact::SHARING;
break;
default:
- $sql_extra = " AND NOT `archive` AND NOT `blocked` AND NOT `pending`";
+ $sql_extra = " AND NOT `archive` AND NOT `blocked` AND NOT `pending` AND NOT `failed`";
break;
}
+ if (isset($accounttypeid)) {
+ $sql_extra .= " AND `contact-type` = ?";
+ $sql_values[] = $accounttypeid;
+ }
+
$searching = false;
$search_hdr = null;
if ($search) {
return $tab_str;
}
- private static function getConversationsHMTL($a, $contact_id, $update)
+ public static function getConversationsHMTL($a, $contact_id, $update, $parent = 0)
{
$o = '';
if (DBA::isResult($contact)) {
DI::page()['aside'] = '';
- $profiledata = Model\Contact::getByURL($contact['url'], false);
-
- Model\Profile::load($a, '', $profiledata, true);
+ if (!$update) {
+ $profiledata = Model\Contact::getByURLForUser($contact['url'], local_user());
+ Model\Profile::load($a, '', $profiledata, true);
+ }
if ($contact['uid'] == 0) {
- $o .= Model\Contact::getPostsFromId($contact['id'], true, $update);
+ $o .= Model\Contact::getPostsFromId($contact['id'], true, $update, $parent);
} else {
- $o .= Model\Contact::getPostsFromUrl($contact['url'], true, $update);
+ $o .= Model\Contact::getPostsFromUrl($contact['url'], true, $update, $parent);
}
}
if (DBA::isResult($contact)) {
DI::page()['aside'] = '';
- $profiledata = Model\Contact::getByURL($contact['url'], false);
+ $profiledata = Model\Contact::getByURLForUser($contact['url'], local_user());
if (local_user() && in_array($profiledata['network'], Protocol::FEDERATED)) {
$profiledata['remoteconnect'] = DI::baseUrl() . '/follow?url=' . urlencode($profiledata['url']);