/** * Build menu * * @param Menu $menu * @param User $user * @return array */ function incoming_mail_handle_on_build_menu(&$menu, &$user) { if (($user->isAdministrator() || $user->getSystemPermission('can_use_incoming_mail_frontend')) && ($count_pending = IncomingMails::countPending()) > 0) { $menu->addToGroup(array(new MenuItem('incoming_mail', lang('Inbox'), assemble_url('incoming_mail'), get_image_url('icon_menu.gif', INCOMING_MAIL_MODULE), $count_pending)), 'main'); } // if }
/** * Get view url for resulting object * * @return string */ function getResultingObjectUrl() { if ($this->getProjectObjectId()) { $object = ProjectObjects::findById($this->getProjectObjectId()); if (instance_of($object, 'ProjectObject')) { return $object->getViewUrl(); } // if } else { if ($this->getIncomingMailId()) { $object = IncomingMails::findById($this->getIncomingMailId()); if (instance_of($object, 'IncomingMail')) { return $object->getImportUrl(); } // if } } // if return false; }
/** * Tool for mass conflict resolution of selected emails * * @param void * @return null */ function mass_conflict_resolution() { if (!$this->request->isSubmitted()) { $this->httpError(HTTP_ERR_BAD_REQUEST); } // if $action = $this->request->post('with_selected'); if (trim($action) == '') { flash_error('Please select what you want to do with selected conflicts'); $this->redirectToReferer(assemble_url('incoming_mail')); } // if $conflict_ids = $this->request->post('conflicts'); $conflicts = IncomingMails::findByIds($conflict_ids); if (!is_foreachable($conflicts)) { flash_error("You didn't selected any conflicts for resolution"); $this->redirectToReferer(assemble_url('incoming_mail')); } // if $updated = 0; switch ($action) { case 'delete': foreach ($conflicts as $conflict) { $delete = $conflict->delete(); if ($delete && !is_error($delete)) { $updated++; } // if } // foreach $message = ':count conflicts removed'; break; default: break; } // switch flash_success($message, array('count' => $updated)); $this->redirectToReferer(assemble_url('incoming_mail')); }
/** * Find conflicts by ids * * @param array $ids * @return array */ function findByIds($ids) { return IncomingMails::find(array('conditions' => array('id IN (?)', $ids), 'order' => 'created_on DESC')); }