]> git.mxchange.org Git - friendica.git/commitdiff
contactedit-actions-button: doing some availability checks for the actions
authorrabuzarus <>
Mon, 8 Feb 2016 14:00:53 +0000 (15:00 +0100)
committerrabuzarus <>
Mon, 8 Feb 2016 14:00:53 +0000 (15:00 +0100)
mod/contacts.php

index 248ed47ab3f89eff3c2d19691dcba6dbcc2b2c65..53fb96c5b1df6befcdea17e36fcba6cc8f127220 100644 (file)
@@ -565,7 +565,7 @@ function contacts_content(&$a) {
                        ($contact['rel'] == CONTACT_IS_FOLLOWER))
                        $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(
@@ -959,65 +959,78 @@ function _contact_detail_for_template($rr){
 
 }
 
-function contact_action_menu($contact) {
-
-       $contact_action_menu = array(
-                               'suggest' => array(
-                                       'label' => t('Suggest friends'),
-                                       'url'   => app::get_baseurl(true) . '/fsuggest/' . $contact['id'],
-                                       'title' => '',
-                                       'sel'   => '',
-                                       'id'    =>  'suggest',
-                               ),
-
-                               'update' => array(
-                                       'label' => t('Update now'),
-                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/update',
-                                       'title' => '',
-                                       'sel'   => '',
-                                       'id'    => 'update',
-                               ),
-
-                               'repair' => array(
-                                       'label' => t('Repair'),
-                                       'url'   => app::get_baseurl(true) . '/crepair/' . $contact['id'],
-                                       'title' => t('Advanced Contact Settings'),
-                                       'sel'   => '',
-                                       'id'    => 'repair',
-                               ),
-
-                               'block' => array(
-                                       'label' => (intval($contact['blocked']) ? t('Unblock') : t('Block') ),
-                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/block',
-                                       'title' => t('Toggle Blocked status'),
-                                       'sel'   => (intval($contact['blocked']) ? 'active' : ''),
-                                       'id'    => 'toggle-block',
-                               ),
-
-                               'ignore' => array(
-                                       'label' => (intval($contact['readonly']) ? t('Unignore') : t('Ignore') ),
-                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/ignore',
-                                       'title' => t('Toggle Ignored status'),
-                                       'sel'   => (intval($contact['readonly']) ? 'active' : ''),
-                                       'id'    => 'toggle-ignore',
-                               ),
-
-                               'archive' => array(
-                                       'label' => (intval($contact['archive']) ? t('Unarchive') : t('Archive') ),
-                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/archive',
-                                       'title' => t('Toggle Archive status'),
-                                       'sel'   => (intval($contact['archive']) ? 'active' : ''),
-                                       'id'    => 'toggle-archive',
-                               ),
-
-                               'delete' => array(
-                                       'label' => t('Delete'),
-                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/drop', 
-                                       'title' => t('Delete contact'),
-                                       'sel'   => '',
-                                       'id'    => 'delete',
-                               )
-       );
+/**
+ * @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) {
+
+       $poll_enabled = in_array($contact['network'], array(NETWORK_DFRN, NETWORK_OSTATUS, NETWORK_FEED, NETWORK_MAIL, NETWORK_MAIL2));
+       $contact_action_menu = array();
+
+       if($contact['network'] === NETWORK_DFRN) {
+               $contact_actions['suggest'] = array(
+                                                       'label' => t('Suggest friends'),
+                                                       'url'   => app::get_baseurl(true) . '/fsuggest/' . $contact['id'],
+                                                       'title' => '',
+                                                       'sel'   => '',
+                                                       'id'    =>  'suggest',
+                                       );
+       }
+
+       if($poll_enabled) {
+               $contact_actions['update'] = array(
+                                                       'label' => t('Update now'),
+                                                       'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/update',
+                                                       'title' => '',
+                                                       'sel'   => '',
+                                                       'id'    => 'update',
+                                       );
+       }
+
+       $contact_actions['repair'] = array(
+                                               'label' => t('Repair'),
+                                               'url'   => app::get_baseurl(true) . '/crepair/' . $contact['id'],
+                                               'title' => t('Advanced Contact Settings'),
+                                               'sel'   => '',
+                                               'id'    => 'repair',
+                               );
+
+       $contact_actions['block'] = array(
+                                               'label' => (intval($contact['blocked']) ? t('Unblock') : t('Block') ),
+                                               'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/block',
+                                               'title' => t('Toggle Blocked status'),
+                                               'sel'   => (intval($contact['blocked']) ? 'active' : ''),
+                                               'id'    => 'toggle-block',
+                               );
+
+       $contact_actions['ignore'] = array(
+                                               'label' => (intval($contact['readonly']) ? t('Unignore') : t('Ignore') ),
+                                               'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/ignore',
+                                               'title' => t('Toggle Ignored status'),
+                                               'sel'   => (intval($contact['readonly']) ? 'active' : ''),
+                                               'id'    => 'toggle-ignore',
+                               );
+
+       $contact_actions['archive'] = array(
+                                               'label' => (intval($contact['archive']) ? t('Unarchive') : t('Archive') ),
+                                               'url'   => app::get_baseurl(true) . '/contacts/' . $contact['id'] . '/archive',
+                                               'title' => t('Toggle Archive status'),
+                                               'sel'   => (intval($contact['archive']) ? 'active' : ''),
+                                               '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;
 }