Beispiel #1
0
 /**
  * Return tag names as array for specific object
  *
  * @access public
  * @param ProjectDataObject $object
  * @param string $manager_class
  * @return array
  */
 function getTagNamesByObject(ProjectDataObject $object, $manager_class)
 {
     $rows = DB::executeAll('SELECT `tag` FROM ' . self::instance()->getTableName(true) . ' WHERE `rel_object_id` = ? AND `rel_object_manager` = ? ORDER BY `tag`', $object->getId(), $manager_class);
     if (!is_array($rows)) {
         return null;
     }
     $tags = array();
     foreach ($rows as $row) {
         $tags[] = $row['tag'];
     }
     return $tags;
 }
 /**
  * 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())));
 }
 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 #4
0
 function giveAccessToObject(ProjectDataObject $object)
 {
     $ou = new ObjectUserPermission();
     $ou->setObjectId($object->getId());
     $ou->setObjectManager($object->getObjectManagerName());
     $ou->setUserId($this->getId());
     $ou->setReadPermission(true);
     $ou->setWritePermission(false);
     $ou->save();
 }
Beispiel #5
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;
}