Merge remote-tracking branch 'upstream/4.4' into 4.4-master-2014-04-03-23-46-36
[civicrm-core.git] / CRM / Core / Action.php
index 2cb78ffd6bb458c9b51b28d480ff8a944093ad21..f619f75e032bc2824f87c04b9aab84256ef530d4 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -31,7 +31,7 @@
  * and similar across all objects (thus providing both reuse and standards)
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -231,74 +231,55 @@ class CRM_Core_Action {
 
     $url = array();
 
-    $firstLink = TRUE;
-    foreach ($seqLinks as $link) {
+    foreach ($seqLinks as $i => $link) {
       if (!$mask || !array_key_exists('bit', $link) || ($mask & $link['bit'])) {
         $extra = isset($link['extra']) ? self::replace($link['extra'], $values) : NULL;
 
         $frontend = (isset($link['fe'])) ? TRUE : FALSE;
 
-        $urlPath = NULL;
-        if (CRM_Utils_Array::value('qs', $link) &&
-          !CRM_Utils_System::isNull($link['qs'])
-        ) {
+        if (isset($link['qs']) && !CRM_Utils_System::isNull($link['qs'])) {
           $urlPath = CRM_Utils_System::url(self::replace($link['url'], $values),
             self::replace($link['qs'], $values), TRUE, NULL, TRUE, $frontend
           );
         }
         else {
-          $urlPath = CRM_Utils_Array::value('url', $link);
+          $urlPath = CRM_Utils_Array::value('url', $link, '#');
         }
 
-        $classes = 'action-item';
-        if ($firstLink) {
-          $firstLink = FALSE;
-          $classes .= " action-item-first";
-        }
+        $classes = 'action-item crm-hover-button';
         if (isset($link['ref'])) {
           $classes .= ' ' . strtolower($link['ref']);
         }
 
         //get the user specified classes in.
         if (isset($link['class'])) {
-          $className = $link['class'];
-          if (is_array($className)) {
-            $className = implode(' ', $className);
-          }
+          $className = is_array($link['class']) ? implode(' ', $link['class']) : $link['class'];
           $classes .= ' ' . strtolower($className);
         }
 
-        $linkClasses = 'class = "' . $classes . '"';
-
-        if ($urlPath) {
-          if ($frontend) {
-            $extra .= "target=_blank";
-          }
-          $url[] = sprintf('<a href="%s" %s title="%s"' . $extra . '>%s</a>',
-            $urlPath,
-            $linkClasses,
-            CRM_Utils_Array::value('title', $link),
-            $link['name']
-          );
+        if ($urlPath !== '#' && $frontend) {
+          $extra .= ' target="_blank"';
         }
-        else {
-          $url[] = sprintf('<a title="%s"  %s ' . $extra . '>%s</a>',
-            CRM_Utils_Array::value('title', $link),
-            $linkClasses,
-            $link['name']
-          );
+        // Hack to make delete dialogs smaller
+        if (strpos($urlPath, '/delete') || strpos($urlPath, 'action=delete')) {
+          $classes .= " small-popup";
         }
+        $url[] = sprintf('<a href="%s" class="%s" %s' . $extra . '>%s</a>',
+          $urlPath,
+          $classes,
+          !empty($link['title']) ? "title='{$link['title']}' " : '',
+          $link['name']
+        );
       }
     }
 
 
-    $result = '';
     $mainLinks = $url;
     if ($enclosedAllInSingleUL) {
       $allLinks = '';
       CRM_Utils_String::append($allLinks, '</li><li>', $mainLinks);
       $allLinks = "{$extraULName}<ul class='panel'><li>{$allLinks}</li></ul>";
-      $result = "<span class='btn-slide'>{$allLinks}</span>";
+      $result = "<span class='btn-slide crm-hover-button'>{$allLinks}</span>";
     }
     else {
       $extra = '';
@@ -311,7 +292,7 @@ class CRM_Core_Action {
       $resultLinks = '';
       CRM_Utils_String::append($resultLinks, '', $mainLinks);
       if ($extra) {
-        $result = "<span>{$resultLinks}</span><span class='btn-slide'>{$extra}</span>";
+        $result = "<span>{$resultLinks}</span><span class='btn-slide crm-hover-button'>{$extra}</span>";
       }
       else {
         $result = "<span>{$resultLinks}</span>";