contactedit-actions-button: doing some availability checks for the actions

This commit is contained in:
rabuzarus 2016-02-08 15:00:53 +01:00
parent 991cbd604a
commit cc18fd7ad9
1 changed files with 66 additions and 53 deletions

View File

@ -565,7 +565,7 @@ function contacts_content(&$a) {
($contact['rel'] == CONTACT_IS_FOLLOWER)) ($contact['rel'] == CONTACT_IS_FOLLOWER))
$follow = $a->get_baseurl(true)."/follow?url=".urlencode($contact["url"]); $follow = $a->get_baseurl(true)."/follow?url=".urlencode($contact["url"]);
$contact_actions = contact_action_menu($contact); $contact_actions = contact_actions($contact);
$o .= replace_macros($tpl, array( $o .= replace_macros($tpl, array(
@ -959,65 +959,78 @@ function _contact_detail_for_template($rr){
} }
function contact_action_menu($contact) { /**
* @brief Gives a array with actions which can performed to a given contact
*
* This includes actions like e.g. 'block', 'hide', 'archive', 'delete' and others
*
* @param array $contact Data about the Contact
* @return array with actions related actions
*/
function contact_actions($contact) {
$contact_action_menu = array( $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2));
'suggest' => array( $contact_action_menu = array();
'label' => t('Suggest friends'),
'url' => app::get_baseurl(true) . '/fsuggest/' . $contact['id'],
'title' => '',
'sel' => '',
'id' => 'suggest',
),
'update' => array( if($contact['network'] === NETWORK_DFRN) {
'label' => t('Update now'), $contact_actions['suggest'] = array(
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/update', 'label' => t('Suggest friends'),
'title' => '', 'url' => app::get_baseurl(true) . '/fsuggest/' . $contact['id'],
'sel' => '', 'title' => '',
'id' => 'update', 'sel' => '',
), 'id' => 'suggest',
);
}
'repair' => array( if($poll_enabled) {
'label' => t('Repair'), $contact_actions['update'] = array(
'url' => app::get_baseurl(true) . '/crepair/' . $contact['id'], 'label' => t('Update now'),
'title' => t('Advanced Contact Settings'), 'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/update',
'sel' => '', 'title' => '',
'id' => 'repair', 'sel' => '',
), 'id' => 'update',
);
}
'block' => array( $contact_actions['repair'] = array(
'label' => (intval($contact['blocked']) ? t('Unblock') : t('Block') ), 'label' => t('Repair'),
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/block', 'url' => app::get_baseurl(true) . '/crepair/' . $contact['id'],
'title' => t('Toggle Blocked status'), 'title' => t('Advanced Contact Settings'),
'sel' => (intval($contact['blocked']) ? 'active' : ''), 'sel' => '',
'id' => 'toggle-block', 'id' => 'repair',
), );
'ignore' => array( $contact_actions['block'] = array(
'label' => (intval($contact['readonly']) ? t('Unignore') : t('Ignore') ), 'label' => (intval($contact['blocked']) ? t('Unblock') : t('Block') ),
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/ignore', 'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/block',
'title' => t('Toggle Ignored status'), 'title' => t('Toggle Blocked status'),
'sel' => (intval($contact['readonly']) ? 'active' : ''), 'sel' => (intval($contact['blocked']) ? 'active' : ''),
'id' => 'toggle-ignore', 'id' => 'toggle-block',
), );
'archive' => array( $contact_actions['ignore'] = array(
'label' => (intval($contact['archive']) ? t('Unarchive') : t('Archive') ), 'label' => (intval($contact['readonly']) ? t('Unignore') : t('Ignore') ),
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/archive', 'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/ignore',
'title' => t('Toggle Archive status'), 'title' => t('Toggle Ignored status'),
'sel' => (intval($contact['archive']) ? 'active' : ''), 'sel' => (intval($contact['readonly']) ? 'active' : ''),
'id' => 'toggle-archive', 'id' => 'toggle-ignore',
), );
'delete' => array( $contact_actions['archive'] = array(
'label' => t('Delete'), 'label' => (intval($contact['archive']) ? t('Unarchive') : t('Archive') ),
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/drop', 'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/archive',
'title' => t('Delete contact'), 'title' => t('Toggle Archive status'),
'sel' => '', 'sel' => (intval($contact['archive']) ? 'active' : ''),
'id' => 'delete', 'id' => 'toggle-archive',
) );
);
$contact_actions['delete'] = array(
'label' => t('Delete'),
'url' => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/drop',
'title' => t('Delete contact'),
'sel' => '',
'id' => 'delete',
);
return $contact_action_menu; return $contact_action_menu;
} }