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($holiday);
+               $entities = array(
+                  $holiday->getEntityID() => $holiday->getEntityID()
+               );
+               if ($holiday->isRecursive()) {
+                  $entities = getAncestorsOf("glpi_entities", $holiday->getEntityID());
+               }
+
+               foreach ($ids as $id) {
+                  $entities_id = CommonDBTM::getItemEntity('glpi_holidays', $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