/** * Return object connected with this action, that is not equal to the one received * * @access public * @param ProjectDataObject $object * @return ProjectDataObject */ function getOtherObject($object) { if (get_class($object->manager()) != $this->getObjectManager() || $object->getObjectId() != $this->getObjectId()) { return get_object_by_manager_and_id($this->getObjectId(), $this->getObjectManager()); } else { return get_object_by_manager_and_id($this->getRelObjectId(), $this->getRelObjectManager()); } }
static function DeleteFromIndex(ProjectDataObject $object, $commitOnEnd = true){ $term = new Zend_Search_Lucene_Index_Term(get_class($object->manager()) . $object->getObjectId(), 'id'); foreach (self::GetIndex()->termDocs($term) as $id) self::GetIndex()->delete($id); if ($commitOnEnd) self::GetIndex()->commit(); }
/** * Return add comment URL for specific object * * @param ProjectDataObject $object * @return string */ static function getAddUrl(ProjectDataObject $object) { return get_url('comment', 'add', array('object_id' => $object->getObjectId(), 'object_manager' => get_class($object->manager()), 'active_project' => $object->getProject()->getId())); // get_url }
/** * Update is_private flag value for all previous related log entries related with specific object * * This method is called whenever we need to add new log entry. It will keep old log entries related to that specific * object with current is_private flag value by updating all of the log entries to new value. * * @param ProjectDataObject $object * @return boolean */ static function setIsPrivateForObject(ProjectDataObject $object) { return DB::execute('UPDATE ' . ApplicationLogs::instance()->getTableName(true) . ' SET `is_private` = ? WHERE `rel_object_id` = ? AND `rel_object_manager` = ?', $object->isPrivate(), $object->getObjectId(), get_class($object->manager())); // execute }
/** * Drop comments by object * * @param ProjectDataObject * @return boolean */ static function dropCommentsByObject(ProjectDataObject $object) { return Comments::delete(array('`rel_object_manager` = ? AND `rel_object_id` = ?', get_class($object->manager()), $object->getObjectId())); }
/** * Clear subscriptions by object * * @param ProjectDataObject $message * @return boolean */ static function clearByObject(ProjectDataObject $object) { return ObjectSubscriptions::delete('`object_id` = ' . DB::escape($object->getId()) . ' AND `object_manager` = ' . DB::escape(get_class($object->manager()))); }
/** * Clear all relations by object * * @param ProjectDataObject * @return boolean */ static function clearRelationsByObject(ProjectDataObject $object) { return self::delete(array('`rel_object_manager` = ? AND `rel_object_id` = ?', get_class($object->manager()), $object->getObjectId())); }
static function clearByObjectAndUser(ProjectDataObject $object, User $user, $include_subscribers = false) { if ($include_subscribers) { $usercond = '(`user_id` = ' . DB::escape($user->getId()) . ' OR `user_id` = 0)'; } else { $usercond = '`user_id` = ' . DB::escape($user->getId()); } return ObjectReminders::delete('`object_id` = ' . DB::escape($object->getId()) . ' AND `object_manager` = ' . DB::escape(get_class($object->manager())) . " AND {$usercond}"); }
/** * Return tags for specific object * * @access public * @param ProjectDataObject $object * @param string $manager_class * @return array */ function getTagsByObject(ProjectDataObject $object, $manager_class) { return self::findAll(array('conditions' => array('`rel_object_id` = ? AND `rel_object_manager` = ?', $object->getObjectId(), get_class($object->manager())), 'order' => '`tag`')); // findAll }
/** * Return add BillingCategory URL for specific object * * @param ProjectDataObject $object * @return string */ static function getAddUrl(ProjectDataObject $object) { return get_url('billing', 'add', array( 'object_id' => $object->getObjectId(), 'object_manager' => get_class($object->manager()) )); // get_url } // getAddUrl
/** * Reaturn pending handins that an object has * * @param ProjectDataObject $object * @return array */ static function getPendingHandinsByObject(ProjectDataObject $object) { return self::getAllHandinsByIdAndManager($object->getObjectId(), get_class($object->manager()), true); }
static function getAddTimespanUrl(ProjectDataObject $object) { return get_url('timeslot', 'add_timespan', array('object_id' => $object->getObjectId(), 'object_manager' => get_class($object->manager()))); // get_url }
/** * Drop timeslots by object * * @param ProjectDataObject * @return boolean */ static function dropTimeslotsByObject(ProjectDataObject $object) { return self::delete(array('`object_manager` = ? AND `object_id` = ?', get_class($object->manager()), $object->getObjectId())); }
/** * Creates a button that shows an object picker to link the object given by $object with the one selected in * the it. * * @param ProjectDataObject $object */ function render_link_to_object($object, $text = null, $reload = false) { require_javascript("og/ObjectPicker.js"); $id = $object->getId(); $manager = get_class($object->manager()); if ($text == null) { $text = lang('link object'); } $reload_param = $reload ? '&reload=1' : ''; $result = ''; $result .= '<a href="#" class="link-ico ico-add" onclick="og.ObjectPicker.show(function (data) {' . 'if (data) {' . 'var objects = \'\';' . 'for (var i=0; i < data.length; i++) {' . 'if (objects != \'\') objects += \',\';' . 'objects += data[i].data.manager + \':\' + data[i].data.object_id;' . '}' . ' og.openLink(\'' . get_url("object", "link_object") . '&object_id=' . $id . '&manager=' . $manager . $reload_param . '&objects=\' + objects' . ($reload ? ',{callback: function(){og.redrawLinkedObjects(' . $object->getId() . ', \'' . get_class($object->manager()) . '\')}}' : '') . ');' . '}' . '})" id="object_linker">'; $result .= $text; $result .= '</a>'; return $result; }