Skip to content

Commit

Permalink
Add a close time with massive action; fix #5416
Browse files Browse the repository at this point in the history
  • Loading branch information
orthagh committed Jul 10, 2015
1 parent 4790065 commit 59d957d
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions inc/calendar.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ function getSpecificMassiveActions($checkitem=NULL) {

if ($isadmin) {
$actions[__CLASS__.MassiveAction::CLASS_ACTION_SEPARATOR.'duplicate'] = _x('button', 'Duplicate');
$actions[__CLASS__.MassiveAction::CLASS_ACTION_SEPARATOR.'addholiday'] = __('Add a close time');
}
return $actions;
}
Expand All @@ -107,6 +108,12 @@ static function showMassiveActionsSubForm(MassiveAction $ma) {
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'), array('name' => 'massiveaction'))."</span>";
return true;
}

return parent::showMassiveActionsSubForm($ma);
Expand Down Expand Up @@ -157,6 +164,43 @@ static function processMassiveActionsForOneItemtype(MassiveAction $ma, CommonDBT
$ma->itemDone($item->getType(), $ids, MassiveAction::ACTION_KO);
}
return;

case 'addholiday' : // add an holiday with massive action
$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);
}
Expand Down

0 comments on commit 59d957d

Please sign in to comment.