/**
  * 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());
     }
 }
Beispiel #2
0
	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();
	}
Beispiel #3
0
 /**
  * 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}");
 }
Beispiel #9
0
 /**
  * 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()));
 }
Beispiel #14
0
/**
 * 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;
}