예제 #1
0
 /**
  * Execute the hook
  *
  * @param array The parameters for the hook
  */
 public static function execute($params)
 {
     $returnParams = array('display' => false, 'resourceType' => null);
     if (isset($params['objectType']) && in_array($params['objectType'], TagsRepository::getListResource())) {
         $returnParams['display'] = true;
         $returnParams['resourceType'] = $params['objectType'];
     }
     return array('template' => 'displayAddToTag.tpl', 'variables' => $returnParams);
 }
예제 #2
0
파일: AclTag.php 프로젝트: rk4an/centreon
 public static function execute(aclTagsEvent $event)
 {
     $params = $event->getParams();
     if (!empty($params["business-activity-tags"])) {
         $tagId = array();
         $tags = explode(",", $params["business-activity-tags"]);
         foreach ($tags as $tag) {
             $tagId = array_merge($tagId, TagsRepository::getTagsIdByResource('bas', $tag));
         }
         $params["business-activity-tags"] = implode(',', $tagId);
     }
     $event->setParams($params);
 }
예제 #3
0
 /**
  * Execute the hook
  *
  * @param array The parameters for the hook
  */
 public static function execute($params)
 {
     $rows = array();
     if (isset($params['_ids'])) {
         foreach ($params['_ids'] as $id) {
             $tagList = TagsRepository::getList($params['resourceType'], $id, 2);
             $rows[$id] = '';
             foreach ($tagList as $tagId => $tagName) {
                 $rows[$id] .= static::getTag($params['resourceType'], $id, $tagName['id'], $tagName['text'], $tagName['user_id']);
             }
             $rows[$id] .= static::getAddTag($params['resourceType'], $id);
         }
     }
     return array('columnName' => 'Tags', 'width' => '150px', 'max-width' => '150px', 'searchable' => true, 'values' => $rows);
 }
예제 #4
0
 /**
  * Get host tag list for acl resource
  *
  * @method get
  * @route /host/tag/formlist
  */
 public function hostTagsAction()
 {
     $di = Di::getDefault();
     $router = $di->get('router');
     $list = TagsRepository::getGlobalList('host');
     $router->response()->json($list);
 }
예제 #5
0
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $router = Di::getDefault()->get('router');
     foreach ($resultSet as &$myHostSet) {
         $myHostSet['host_name'] = '<span class="icoListing">' . HostRepository::getIconImage($myHostSet['host_name']) . '</span>' . $myHostSet['host_name'];
         /* Templates */
         $myHostSet['host_template'] = "";
         $templates = HostRepository::getTemplateChain($myHostSet['host_id'], array(), 1);
         foreach ($templates as $template) {
             $myHostSet['host_template'] .= '<a href="' . $router->getPathFor("/centreon-configuration/hosttemplate/[i:id]", array('id' => $template['id'])) . '"><i class="icon-template ico-20"></i></a>';
         }
         /* Display human readable the check/retry interval */
         $myHostSet['host_check_interval'] = HumanReadable::convert($myHostSet['host_check_interval'], 's', $units, null, true);
         $myHostSet['host_retry_check_interval'] = HumanReadable::convert($myHostSet['host_retry_check_interval'], 's', $units, null, true);
         $sideMenuCustom = new SlideMenu($myHostSet['host_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-configuration.slide.menu.host.template', array($sideMenuCustom));
         //$myHostSet['DT_RowData']['right_side_details'] = $router->getPathFor('/centreon-configuration/host/snapshot/').$myHostSet['host_id'];
         $myHostSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myHostSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         /* Get personal tags */
         $myHostSet['tagname'] = '';
         $aTagUsed = array();
         $aTags = TagsRepository::getList('host', $myHostSet['host_id'], 0, 0);
         foreach ($aTags as $oTags) {
             if (!in_array($oTags['id'], $aTagUsed)) {
                 $aTagUsed[] = $oTags['id'];
                 $myHostSet['tagname'] .= TagsRepository::getTag('host', $myHostSet['host_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], 1);
             }
         }
         $myHostSet['tagname'] .= TagsRepository::getAddTag('host', $myHostSet['host_id']);
     }
 }
예제 #6
0
 /**
  * 
  * @param array $resultSet
  * @todo fix getIconImage() (perf issue)
  */
 protected function formatDatas(&$resultSet)
 {
     $router = Di::getDefault()->get('router');
     $previousHost = '';
     HostConfigurationRepository::setObjectClass('\\CentreonConfiguration\\Models\\Host');
     foreach ($resultSet as $key => &$myServiceSet) {
         $aTagUsed = array();
         // Set host_name
         $myHostName = Host::get($myServiceSet['host_id'], array('name'));
         $myServiceSet['name'] = $myHostName['name'];
         $sideMenuCustom = new SlideMenu($myServiceSet['service_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-realtime.slide.menu.service', array($sideMenuCustom));
         $myServiceSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myServiceSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         // @todo remove virtual hosts and virtual services
         if ($myServiceSet['name'] === '_Module_BAM') {
             unset($resultSet[$key]);
             continue;
         }
         if ($myServiceSet['name'] === $previousHost) {
             $myServiceSet['name'] = '';
         } else {
             $previousHost = $myServiceSet['name'];
             $icon = '<span class="icoListing">' . HostConfigurationRepository::getIconImage($myServiceSet['name']) . '</span>';
             $myServiceSet['name'] = $icon . $myServiceSet['name'];
         }
         $icon = '<span class="icoListing">' . ServiceConfigurationRepository::getIconImage($myServiceSet['service_id']) . '</span>';
         /*$myServiceSet['DT_RowData']['right_side_details'] = $router->getPathFor('/centreon-realtime/service/')
               . $myServiceSet['host_id']
               . '/'.$myServiceSet['service_id']
               . '/tooltip';
           */
         $myServiceSet['description'] = '<span>' . $icon . '' . $myServiceSet['description'] . '</span>';
         if ($myServiceSet['state'] != '0' && $myServiceSet['state'] != '4') {
             $acknowledgement = ServiceRealtimeRepository::getAcknowledgementInfos($myServiceSet['service_id']);
             if (count($acknowledgement) > 0) {
                 $myServiceSet['description'] .= ' <i class="fa fa-thumb-tack"></i>';
             }
         }
         if ($myServiceSet['perfdata'] != '') {
             $myServiceSet['ico'] = '<span data-overlay-url="/centreon-realtime/service/' . $myServiceSet['host_id'] . '/' . $myServiceSet['service_id'] . '/graph"><span class="overlay"><i class="fa fa-bar-chart-o"></i></span></span>';
         } else {
             $myServiceSet['ico'] = '';
         }
         $myServiceSet['duration'] = Datetime::humanReadable(time() - $myServiceSet['duration'], Datetime::PRECISION_FORMAT, 2);
         $myServiceSet['last_check'] = Datetime::humanReadable(time() - $myServiceSet['last_check'], Datetime::PRECISION_FORMAT, 2);
         /* Tags */
         $myServiceSet['tagname'] = "";
         $aTags = TagsRepository::getList('service', $myServiceSet['service_id'], 2, 0);
         foreach ($aTags as $oTags) {
             if (!in_array($oTags['id'], $aTagUsed)) {
                 $aTagUsed[] = $oTags['id'];
                 $myServiceSet['tagname'] .= TagsRepository::getTag('service', $myServiceSet['service_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], $oTags['template_id']);
             }
         }
         /*
         $templates = ServiceConfigurationRepository::getListTemplates($myServiceSet['service_id'], array(), -1);
         foreach ($templates as $template) {
             $aTags = TagsRepository::getList('service', $template, 2, 0);
             foreach ($aTags as $oTags) {
                 if (!in_array($oTags['id'], $aTagUsed)) {
                     $aTagUsed[] = $oTags['id'];
                     $myServiceSet['tagname'] .= TagsRepository::getTag('service', $template, $oTags['id'], $oTags['text'], $oTags['user_id'], 1);
                 }
             }
         }
         */
         $myServiceSet['tagname'] .= TagsRepository::getAddTag('service', $myServiceSet['service_id']);
     }
     $resultSet = array_values($resultSet);
 }
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $router = Di::getDefault()->get('router');
     foreach ($resultSet as &$myServiceSet) {
         $myServiceSet['service_description'] = '<span class="icoListing">' . ServiceRepository::getIconImage($myServiceSet['service_id']) . '</span>' . $myServiceSet['service_description'];
         // Set Tpl Chain
         $tplStr = null;
         if (isset($myServiceSet["service_template_model_stm_id"])) {
             $tplArr = ServicetemplateRepository::getMyServiceTemplateModels($myServiceSet["service_template_model_stm_id"]);
             $tplRoute = str_replace("//", "/", Di::getDefault()->get('router')->getPathFor('/centreon-configuration/servicetemplate/[i:id]', array('id' => $tplArr['id'])));
             if (isset($tplArr['description'])) {
                 $tplStr .= '<span><a href="' . $tplRoute . '">' . $tplArr['description'] . '</a></span>';
             }
         }
         $sideMenuCustom = new SlideMenu($myServiceSet['service_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-configuration.slide.menu.service.template', array($sideMenuCustom));
         //$myHostSet['DT_RowData']['right_side_details'] = $router->getPathFor('/centreon-configuration/host/snapshot/').$myHostSet['host_id'];
         $myServiceSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myServiceSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         $myServiceSet['service_template_model_stm_id'] = $tplStr;
         /* Display human readable the check/retry interval */
         $myServiceSet['service_normal_check_interval'] = HumanReadable::convert($myServiceSet['service_normal_check_interval'], 's', $units, null, true);
         $myServiceSet['service_retry_check_interval'] = HumanReadable::convert($myServiceSet['service_retry_check_interval'], 's', $units, null, true);
         /* Get personal tags */
         $myServiceSet['tagname'] = '';
         $aTagUsed = array();
         $aTags = TagsRepository::getList('service', $myServiceSet['service_id'], 0, 0);
         foreach ($aTags as $oTags) {
             if (!in_array($oTags['id'], $aTagUsed)) {
                 $aTagUsed[] = $oTags['id'];
                 $myServiceSet['tagname'] .= TagsRepository::getTag('service', $myServiceSet['service_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], 1);
             }
         }
         $myServiceSet['tagname'] .= TagsRepository::getAddTag('service', $myServiceSet['service_id']);
     }
 }
예제 #8
0
 /**
  * Get the list of inhereted tags
  * @param string $resourceName
  * @param int $resourceId
  * @return array
  */
 public static function getHeritedTags($resourceName, $resourceId)
 {
     $resourceName = self::convertResource($resourceName);
     if (!in_array($resourceName, static::$resourceType)) {
         throw new Exception("This resource type does not support tags.");
     }
     if (empty($resourceId)) {
         return array();
     }
     $aTagUsed = array();
     $aTags = array();
     if ($resourceName == 'host') {
         $templates = HostRepository::getTemplateChain($resourceId, array(), -1);
         foreach ($templates as $template) {
             $aTagsInHost = TagsRepository::getList('host', $template['id'], 1, 0);
             foreach ($aTagsInHost as $oTags) {
                 if (!in_array($oTags['id'], $aTagUsed)) {
                     $aTagUsed[] = $oTags['id'];
                     $aTags[] = $oTags['text'];
                 }
             }
         }
     } elseif ($resourceName == 'service') {
         $templates = ServiceRepository::getListTemplates($resourceId, array(), -1);
         foreach ($templates as $template) {
             $aTagsInSvc = TagsRepository::getList('service', $template, 1, 0);
             foreach ($aTagsInSvc as $oTags) {
                 if (!in_array($oTags['id'], $aTagUsed)) {
                     $aTagUsed[] = $oTags['id'];
                     $aTags[] = $oTags['text'];
                 }
             }
         }
     }
     return array('success' => true, 'values' => $aTags);
 }
예제 #9
0
 /**
  * Add a service template
  *
  *
  * @method post
  * @route /servicetemplate/add
  */
 public function createAction()
 {
     $macroList = array();
     $aTagList = array();
     $aTags = array();
     $givenParameters = $this->getParams('post');
     if (isset($givenParameters['macro_name']) && isset($givenParameters['macro_value'])) {
         $macroName = $givenParameters['macro_name'];
         $macroValue = $givenParameters['macro_value'];
         $macroHidden = $givenParameters['macro_hidden'];
         foreach ($macroName as $key => $name) {
             if (!empty($name)) {
                 if (isset($macroHidden[$key])) {
                     $isPassword = '******';
                 } else {
                     $isPassword = '******';
                 }
                 $macroList[$name] = array('value' => $macroValue[$key], 'ispassword' => $isPassword);
             }
         }
     }
     $id = parent::createAction(false);
     if (count($macroList) > 0) {
         try {
             CustomMacroRepository::saveServiceCustomMacro(self::$objectName, $id, $macroList);
         } catch (\Exception $ex) {
             $errorMessage = $ex->getMessage();
             $this->router->response()->json(array('success' => false, 'error' => $errorMessage));
         }
     }
     if (isset($givenParameters['service_tags'])) {
         $aTagList = explode(",", $givenParameters['service_tags']);
         foreach ($aTagList as $var) {
             $var = trim($var);
             if (!empty($var)) {
                 array_push($aTags, $var);
             }
         }
         if (count($aTags) > 0) {
             TagsRepository::saveTagsForResource('service', $id, $aTags, '', false, 1);
         }
     }
     $this->router->response()->json(array('success' => true));
 }
 /**
  * Show all tags of a business activity
  *
  *
  * @method get
  * @route /business-activity/[i:id]/tags
  */
 public function getBusinessActivityTagsAction()
 {
     $requestParam = $this->getParams('named');
     $globalTags = TagsRepository::getList('ba', $requestParam['id'], 1, 1);
     $globalTagsValues = array();
     foreach ($globalTags as $globalTag) {
         $globalTagsValues[] = $globalTag['text'];
     }
     $tags['tags'] = array('globals' => $globalTagsValues);
     $tags['success'] = true;
     $this->router->response()->json($tags);
 }
예제 #11
0
 /**
  * Update a host
  *
  *
  * @method post
  * @route /hosttemplate/update
  */
 public function updateAction()
 {
     $givenParameters = $this->getParams('post');
     $macroList = array();
     $aTagList = array();
     $aTags = array();
     $aTagsTemplate = array();
     $aTagsInTpl = array();
     $aTagsIdTpl = array();
     if (isset($givenParameters['macro_name']) && isset($givenParameters['macro_value'])) {
         $macroName = $givenParameters['macro_name'];
         $macroValue = $givenParameters['macro_value'];
         $macroHidden = $givenParameters['macro_hidden'];
         foreach ($macroName as $key => $name) {
             if (!empty($name)) {
                 if (isset($macroHidden[$key])) {
                     $isPassword = '******';
                 } else {
                     $isPassword = '******';
                 }
                 $macroList[$name] = array('value' => $macroValue[$key], 'ispassword' => $isPassword);
             }
         }
     }
     if ($givenParameters['host_create_services_from_template']) {
         \CentreonConfiguration\Models\Host::deployServices($givenParameters['object_id']);
     }
     if (count($macroList) > 0) {
         try {
             CustomMacroRepository::saveHostCustomMacro(self::$objectName, $givenParameters['object_id'], $macroList);
         } catch (\Exception $ex) {
             $errorMessage = $ex->getMessage();
             $this->router->response()->json(array('success' => false, 'error' => $errorMessage));
         }
     }
     //Delete tags directilly rattached to the object
     TagsRepository::deleteTagsForResource(self::$objectName, $givenParameters['object_id'], 0);
     //Insert tags affected to the HOST
     if (isset($givenParameters['host_tags'])) {
         $aTagList = explode(",", $givenParameters['host_tags']);
         foreach ($aTagList as $var) {
             $var = trim($var);
             if (!empty($var)) {
                 array_push($aTags, $var);
             }
         }
         if (count($aTags) > 0) {
             TagsRepository::saveTagsForResource(self::$objectName, $givenParameters['object_id'], $aTags, '', false, 1);
         }
     }
     parent::updateAction();
 }
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $previousType = '';
     foreach ($resultSet as &$myBaSet) {
         // Set business activity type
         $baType = \CentreonBam\Models\BusinessActivityType::getParameters($myBaSet['ba_type_id'], array('name'));
         $myBaSet['ba_type_id'] = $baType['name'];
         if ($myBaSet['ba_type_id'] === $previousType) {
             $myBaSet['ba_type_id'] = '';
         } else {
             $previousType = $myBaSet['ba_type_id'];
         }
         // Set business activity availability
         $myBaSet['current_level'] = $myBaSet['current_level'] . '%';
         // Set business activity name with its icon
         $myBaSet['name'] = BusinessActivityRepository::getIconImage($myBaSet['name']) . $myBaSet['name'];
         // Set human readable duration
         $myBaSet['duration'] = Datetime::humanReadable($myBaSet['duration'], Datetime::PRECISION_FORMAT, 2);
         /* Tags */
         $myBaSet['tagname'] = "";
         $aTags = TagsRepository::getList('ba', $myBaSet['ba_id'], 2);
         foreach ($aTags as $oTags) {
             $myBaSet['tagname'] .= TagsRepository::getTag('ba', $myBaSet['ba_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], $oTags['template_id']);
         }
         $myBaSet['tagname'] .= TagsRepository::getAddTag('ba', $myBaSet['ba_id']);
     }
 }
예제 #13
0
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $previousType = '';
     foreach ($resultSet as &$myBaSet) {
         $sideMenuCustom = new SlideMenu($myBaSet['ba_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-bam.slide.menu.business.activity', array($sideMenuCustom));
         $myBaSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myBaSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         // Set business activity type
         $baType = \CentreonBam\Models\BusinessActivityType::getParameters($myBaSet['ba_type_id'], array('name'));
         $myBaSet['ba_type_id'] = $baType['name'];
         if ($myBaSet['ba_type_id'] === $previousType) {
             $myBaSet['ba_type_id'] = '';
         } else {
             $previousType = $myBaSet['ba_type_id'];
         }
         // set business activity name
         $myBaSet['name'] = BusinessActivityRepository::getIconImage($myBaSet['name']) . $myBaSet['name'];
         /* Tags */
         $myBaSet['tagname'] = "";
         $aTags = TagsRepository::getList('ba', $myBaSet['ba_id'], 2);
         foreach ($aTags as $oTags) {
             $myBaSet['tagname'] .= TagsRepository::getTag('ba', $myBaSet['ba_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], $oTags['template_id']);
         }
         $myBaSet['tagname'] .= TagsRepository::getAddTag('ba', $myBaSet['ba_id']);
     }
 }
예제 #14
0
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     foreach ($resultSet as $key => &$myHostSet) {
         $sideMenuCustom = new SlideMenu($myHostSet['host_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-realtime.slide.menu.host', array($sideMenuCustom));
         $myHostSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myHostSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         $aTagUsed = array();
         // @todo remove virtual hosts and virtual services
         if ($myHostSet['name'] === '_Module_BAM') {
             unset($resultSet[$key]);
             continue;
         }
         // Set host_name
         $myHostSet['name'] = '<span class="icoListing">' . HostConfigurationRepository::getIconImage($myHostSet['name']) . '</span>' . $myHostSet['name'];
         if ($myHostSet['state'] != '0' && $myHostSet['state'] != '4') {
             $acknowledgement = HostRealtimeRepository::getAcknowledgementInfos($myHostSet['host_id']);
             if (count($acknowledgement) > 0) {
                 $myHostSet['name'] .= ' <i class="fa fa-thumb-tack"></i>';
             }
         }
         $myHostSet['duration'] = Datetime::humanReadable(time() - $myHostSet['duration'], Datetime::PRECISION_FORMAT, 2);
         $myHostSet['last_check'] = Datetime::humanReadable(time() - $myHostSet['last_check'], Datetime::PRECISION_FORMAT, 2);
         /* Tags */
         $myHostSet['tagname'] = "";
         /*
                     $aTags = TagsRepository::getList('host', $myHostSet['host_id'], 2, 0);
                     foreach ($aTags as $oTags) {
            $myHostSet['tagname'] .= TagsRepository::getTag('host', $myHostSet['host_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], $oTags['template_id']);
                     }
         * 
         */
         $aTags = TagsRepository::getList('host', $myHostSet['host_id'], 2, 0);
         foreach ($aTags as $oTags) {
             if (!in_array($oTags['id'], $aTagUsed)) {
                 $aTagUsed[] = $oTags['id'];
                 $myHostSet['tagname'] .= TagsRepository::getTag('host', $myHostSet['host_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], $oTags['template_id']);
             }
         }
         //Get tags affected by the template
         $templates = HostConfigurationRepository::getTemplateChain($myHostSet['host_id'], array(), -1);
         foreach ($templates as $template) {
             $aTags = TagsRepository::getList('host', $template['id'], 2, 0);
             foreach ($aTags as $oTags) {
                 if (!in_array($oTags['id'], $aTagUsed)) {
                     $aTagUsed[] = $oTags['id'];
                     $myHostSet['tagname'] .= TagsRepository::getTag('host', $template['id'], $oTags['id'], $oTags['text'], $oTags['user_id'], 1);
                 }
             }
         }
         $myHostSet['tagname'] .= TagsRepository::getAddTag('host', $myHostSet['host_id']);
     }
     $resultSet = array_values($resultSet);
 }
예제 #15
0
 /**
  * Update contact
  * @param array $givenParameters
  */
 public static function update($givenParameters, $origin = "", $route = "", $validate = true, $validateMandatory = true)
 {
     if ($validate) {
         self::validateForm($givenParameters, $origin, $route, $validateMandatory);
     }
     $aTagList = array();
     $aTags = array();
     if (isset($givenParameters['contact_tags'])) {
         $aTagList = explode(",", $givenParameters['contact_tags']);
         foreach ($aTagList as $var) {
             $var = trim($var);
             if (!empty($var)) {
                 array_push($aTags, $var);
             }
         }
     }
     if (count($aTags) > 0) {
         TagsRepository::saveTagsForResource(self::$objectName, $givenParameters['object_id'], $aTags, '', false, 1);
     }
     $infoToUpdate['contact_id'] = $givenParameters['object_id'];
     if (isset($givenParameters['timezone_id']) && is_numeric($givenParameters['timezone_id'])) {
         $infoToUpdate['timezone_id'] = $givenParameters['timezone_id'];
     } else {
         $infoToUpdate['timezone_id'] = "";
     }
     if (isset($givenParameters['description'])) {
         $infoToUpdate['description'] = $givenParameters['description'];
     }
     $class = static::$objectClass;
     $sField = $class::getUniqueLabelField();
     if (isset($givenParameters[$sField])) {
         $oSlugify = new CentreonSlugify($class, get_called_class());
         $sSlug = $oSlugify->slug($givenParameters[$sField]);
         $infoToUpdate[$class::getSlugField()] = $sSlug;
     }
     return Contact::update($givenParameters['object_id'], $infoToUpdate);
 }
예제 #16
0
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $previousHost = '';
     $router = Di::getDefault()->get('router');
     foreach ($resultSet as &$myContactSet) {
         /* Tags */
         $myContactSet['tagname'] = "";
         $aTags = TagsRepository::getList('contact', $myContactSet['contact_id'], 2);
         foreach ($aTags as $oTags) {
             $myContactSet['tagname'] .= TagsRepository::getTag('contact', $myContactSet['contact_id'], $oTags['id'], $oTags['text'], $oTags['user_id']);
         }
         $myContactSet['tagname'] .= TagsRepository::getAddTag('contact', $myContactSet['contact_id']);
     }
 }
예제 #17
0
 /**
  * get list herited tag
  * 
  * @method get
  * @route /tag/[i:id]/[a:objectName]/herited
  */
 public function heritedTagAction()
 {
     $data = '';
     $get = $this->getParams('named');
     if (isset($get['objectName']) && isset($get['id'])) {
         $data = TagsRepository::getHeritedTags($get['objectName'], $get['id']);
     }
     $this->router->response()->json($data);
 }
예제 #18
0
 /**
  * Show all tags of a service
  *
  *
  * @method get
  * @route /service/[i:id]/tags
  */
 public function getServiceTagsAction()
 {
     $requestParam = $this->getParams('named');
     $globalTags = TagsRepository::getList('service', $requestParam['id'], 1, 1);
     $globalTagsValues = array();
     foreach ($globalTags as $globalTag) {
         $globalTagsValues[] = $globalTag['text'];
     }
     $heritedTags = TagsRepository::getHeritedTags('service', $requestParam['id']);
     $heritedTagsValues = $heritedTags['values'];
     $tags['tags'] = array('globals' => $globalTagsValues, 'herited' => $heritedTagsValues);
     $tags['success'] = true;
     $this->router->response()->json($tags);
 }
예제 #19
0
 /**
  * Service slider default menu
  *
  * @method get
  * @route /service/tagslide/[i:id]
  */
 public function slideTagsAction()
 {
     $router = Di::getDefault()->get('router');
     $params = $this->getParams();
     $tags = \CentreonAdministration\Repository\TagsRepository::getList('service', $params['id']);
     $inheritedTag = array();
     $directTag = array();
     foreach ($tags as $tag) {
         if (!empty($tags['template_id'])) {
             $inheritedTag[] = $tag;
         } else {
             $directTag[] = $tag;
         }
     }
     $return['directTags'] = $directTag;
     $return['inheritedTags'] = $inheritedTag;
     $return['success'] = true;
     $router->response()->json($return);
 }
예제 #20
0
 /**
  * 
  * @param array $resultSet
  */
 protected function formatDatas(&$resultSet)
 {
     $previousHost = '';
     HostRepository::setObjectClass('\\CentreonConfiguration\\Models\\Host');
     $router = Di::getDefault()->get('router');
     foreach ($resultSet as &$myServiceSet) {
         // Keep up
         $save = $myServiceSet['service_activate'];
         unset($myServiceSet['service_activate']);
         // Set host_name
         if ($myServiceSet['host_name'] === $previousHost) {
             $myServiceSet['host_name'] = '';
         } else {
             $previousHost = $myServiceSet['host_name'];
             $myServiceSet['host_name'] = '<span class="icoListing">' . HostRepository::getIconImage($myServiceSet['host_name']) . '</span>' . $myServiceSet['host_name'];
         }
         // Set Scheduling
         $myServiceSet['service_normal_check_interval'] = ServiceRepository::formatNotificationOptions(ServiceRepository::getMyServiceField($myServiceSet['service_id'], 'service_normal_check_interval'));
         $myServiceSet['service_retry_check_interval'] = ServiceRepository::formatNotificationOptions(ServiceRepository::getMyServiceField($myServiceSet['service_id'], 'service_normal_check_interval'));
         $myServiceSet['service_max_check_attempts'] = ServiceRepository::getMyServiceField($myServiceSet['service_id'], 'service_max_check_attempts');
         // Get Real Service Description
         if (!$myServiceSet["service_description"]) {
             $myServiceSet["service_description"] = ServiceRepository::getMyServiceAlias($myServiceSet['service_template_model_stm_id']);
         }
         $sideMenuCustom = new SlideMenu($myServiceSet['service_id']);
         $events = Di::getDefault()->get('events');
         $events->emit('centreon-configuration.slide.menu.service', array($sideMenuCustom));
         $myServiceSet['DT_RowData']['right_side_menu_list'] = $sideMenuCustom->getMenu();
         $myServiceSet['DT_RowData']['right_side_default_menu'] = $sideMenuCustom->getDefaultMenu();
         // Set Tpl Chain
         $tplStr = null;
         $tplArr = ServiceRepository::getMyServiceTemplateModels($myServiceSet["service_template_model_stm_id"]);
         $idServiceTpl = $myServiceSet["service_template_model_stm_id"];
         if (!is_null($tplArr)) {
             $tplRoute = str_replace("//", "/", $router->getPathFor('/centreon-configuration/servicetemplate/[i:id]', array('id' => $tplArr['id'])));
             $tplStr .= '<span><a href="' . $tplRoute . '">' . $tplArr['description'] . '</a></span>';
             $myServiceSet['service_template_model_stm_id'] = $tplStr;
         }
         $myServiceSet['service_description'] = '<span class="icoListing">' . ServiceRepository::getIconImage($myServiceSet['service_id']) . '</span>' . $myServiceSet['service_description'];
         $myServiceSet['service_description'] .= '</a><a href="#">';
         $myServiceSet['service_description'] .= ServiceRealTimeRepository::getStatusBadge(ServiceRealTimeRepository::getStatus($myServiceSet["host_id"], $myServiceSet["service_id"]));
         $myServiceSet['service_activate'] = $save;
         /* Get personal tags */
         $myServiceSet['tagname'] = '';
         $aTagUsed = array();
         $aTags = TagsRepository::getList('service', $myServiceSet['service_id'], 0, 0);
         foreach ($aTags as $oTags) {
             if (!in_array($oTags['id'], $aTagUsed)) {
                 $aTagUsed[] = $oTags['id'];
                 $myServiceSet['tagname'] .= TagsRepository::getTag('service', $myServiceSet['service_id'], $oTags['id'], $oTags['text'], $oTags['user_id'], 1);
             }
         }
         $myServiceSet['tagname'] .= TagsRepository::getAddTag('service', $myServiceSet['service_id']);
     }
 }
예제 #21
0
 /**
  * 
  * @param string $object
  * @param string $tag
  */
 public function removeTagAction($object, $tag)
 {
     $iNbDeleted = 0;
     $sLibTag = "tag";
     $repository = $this->repository;
     $sName = $this->objectName;
     $repository::transco($object);
     $aId = $repository::getListBySlugName($object[$sName]);
     if (count($aId) > 0) {
         $object = $aId[0]['id'];
     } else {
         throw new \Exception(static::OBJ_NOT_EXIST, 1);
     }
     $aTags = explode(",", $tag);
     foreach ($aTags as $sTag) {
         $iReturn = TagsRepository::isExist($sTag);
         $bLinked = TagsRepository::isLink($this->objectName, $object, $iReturn);
         if (!$bLinked) {
             throw new \Exception("This tag can't be found on the object", 1);
         }
         TagsRepository::delete($sTag, $this->objectName, $object);
         $iNbDeleted++;
     }
     if ($iNbDeleted > 1) {
         $sLibTag .= "s";
     }
     InputOutput::display($sLibTag . " has been successfully removed from the object", true, 'green');
 }
예제 #22
0
 public function testGetTagId()
 {
     $this->assertEquals(1, TagsRepository::getTagId('Tag1'));
 }
예제 #23
0
 /**
  * Get contact tag list 
  *
  * @method get
  * @route /contact/tag/formlist
  */
 public function contactTagsAction()
 {
     $router = Di::getDefault()->get('router');
     $list = TagsRepository::getGlobalList('contact');
     $router->response()->json($list);
 }