Hello,

Patch fixed (2 bugs inside)

Best regards,
--
David DURIEUX
Tel : +33 (0)4.82.53.30.53
Mail : d.duri...@siprossii.com
Site Web : http://www.siprossii.com/

SIPROSSII
Rue des jardins
69860 Monsols
FRANCE


Le Thu, 9 Jul 2015 09:48:50 +0200
David DURIEUX <d.duri...@siprossii.com> a écrit:

>Hello,
>
>This is a patch propose a new massive action in calendar to add a
>holiday to many calendars in one time
>
>
>Best regards,
>--
>David DURIEUX
>Tel : +33 (0)4.82.53.30.53
>Mail : d.duri...@siprossii.com
>Site Web : http://www.siprossii.com/
>
>SIPROSSII
>Rue des jardins
>69860 Monsols
>FRANCE
Index: inc/calendar.class.php
===================================================================
--- inc/calendar.class.php	(revision 23579)
+++ inc/calendar.class.php	(working copy)
@@ -85,7 +85,8 @@
 
       if ($isadmin) {
          $actions[__CLASS__.MassiveAction::CLASS_ACTION_SEPARATOR.'duplicate'] = _x('button', 'Duplicate');
-      }
+         $actions[__CLASS__.MassiveAction::CLASS_ACTION_SEPARATOR.'addholiday'] = _x('button', 'Add holiday');
+     }
       return $actions;
    }
 
@@ -103,6 +104,12 @@
             echo "<br><br>";
             echo Html::submit(_x('button', 'Duplicate'), array('name' => 'massiveaction'))."</span>";
             return true;
+
+         case 'addholiday' :
+            Holiday::dropdown();
+            echo "<br><br>";
+            echo Html::submit(_x('button', 'Add holiday'), array('name' => 'massiveaction'))."</span>";
+            return true;
       }
 
       return parent::showMassiveActionsSubForm($ma);
@@ -153,6 +160,43 @@
                $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_KO);
             }
             return;
+
+         case 'addholiday' : // For calendar duplicate in another entity
+            $input = $ma->getInput();
+            if ($input['holidays_id'] > 0) {
+               $holiday = new Holiday();
+               $calendar_holiday = new Calendar_Holiday();
+
+               $holiday->getFromDB($input['holidays_id']);
+               $entities = array(
+                  $holiday->getEntityID() => $holiday->getEntityID()
+               );
+               if ($holiday->isRecursive()) {
+                  $entities = getSonsOf("glpi_entities", $holiday->getEntityID());
+               }
+
+               foreach ($ids as $id) {
+                  $entities_id = CommonDBTM::getItemEntity('Calendar', $id);
+                  if (isset($entities[$entities_id])) {
+                     $input = array(
+                        'calendars_id' => $id,
+                        'holidays_id'  => $input['holidays_id']
+                     );
+                     if ($calendar_holiday->add($input)) {
+                        $ma->itemDone($item->getType(), $id, MassiveAction::ACTION_OK);
+                     } else {
+                        $ma->itemDone($item->getType(), $id, MassiveAction::ACTION_KO);
+                        $ma->addMessage($item->getErrorMessage(ERROR_ON_ACTION));
+                     }
+                  } else {
+                     $ma->itemDone($item->getType(), $id, MassiveAction::ACTION_KO);
+                     $ma->addMessage($item->getErrorMessage(ERROR_ON_ACTION));
+                  }
+               }
+            } else {
+               $ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_KO);
+            }
+            return;
       }
       parent::processMassiveActionsForOneItemtype($ma, $item, $ids);
    }
_______________________________________________
Glpi-dev mailing list
Glpi-dev@gna.org
https://mail.gna.org/listinfo/glpi-dev

Reply via email to