Documentation

Nag_Api extends Horde_Registry_Api
in package

Nag external API interface.

This file defines Nag's external API interface. Other applications can interact with Nag through this API.

Table of Contents

$_links  : array<string|int, mixed>
Links.
addTask()  : mixed
Adds a task.
addTasklist()  : string
Adds a new task list.
ajaxDefaults()  : array<string|int, mixed>
Returns a number of defaults necessary for the ajax view.
browse()  : array<string|int, mixed>
Browse through Nag's object tree.
delete()  : bool
Deletes a task identified by UID.
deleteTask()  : mixed
Deletes a task identified by tasklist and ID.
deleteTasklist()  : mixed
Deletes a task list.
export()  : string
Exports a task, identified by UID, in the requested content type.
exportTasklist()  : string
Exports a tasklist in the requested content type.
getActionTimestamp()  : int
Returns the timestamp of an operation for a given uid an action.
getChanges()  : array<string|int, mixed>
Method for obtaining all server changes between two timestamps. Basically a wrapper around listBy(), but returns an array containing all adds, edits and deletions.
getChangesByModSeq()  : array<string|int, mixed>
Return all changes occuring between the specified modification sequences.
getDefaultShare()  : string
Retrieve the UID for the current user's default tasklist.
getDisplayedTasklists()  : array<string|int, mixed>
Returns the displayed task lists.
getHighestModSeq()  : int
Return the largest modification sequence from the history backend.
getTask()  : Nag_Task
Returns a task object.
getTasklist()  : Horde_Share_Object
Returns a task list.
import()  : string
Imports one or more tasks represented in the specified content type.
listBy()  : array<string|int, mixed>
Returns an array of UIDs for tasks that have had $action happen since $timestamp.
listCostObjects()  : mixed
CostObject API: Lists active tasks as cost objects.
listTagInfo()  : array<string|int, mixed>
Retrieve the list of used tag_names, tag_ids and the total number of resources that are linked to that tag.
listTasklists()  : array<string|int, mixed>
Returns a list of task lists.
listTasks()  : array<string|int, mixed>
Retrieves the current user's task list from storage.
listTimeObjectCategories()  : mixed
listTimeObjects()  : mixed
Lists active tasks as time objects.
listUids()  : array<string|int, mixed>
Returns an array of UIDs for all tasks that the current user is authorized to see.
modified()  : int
Returns the last modification timestamp of a given uid.
path_delete()  : string
Deletes a file from the Nag tree.
put()  : array<string|int, mixed>
Saves a file into the Nag tree.
quickAdd()  : array<string|int, mixed>
Imports one or more tasks parsed from a string.
replace()  : bool
Replaces the task identified by UID with the content represented in the specified content type.
saveTimeObject()  : mixed
Saves properties of a time object back to the task that it represents.
searchTags()  : array<string|int, mixed>
SearchTags API: Returns an application-agnostic array (useful for when doing a tag search across multiple applications)
setDisplayedTasklists()  : mixed
Sets the displayed task lists.
sources()  : array<string|int, mixed>
Returns a list of available sources.
toggleCompletion()  : bool|string
Toggles the task completion flag.
updateAttendee()  : mixed
Updates an attendee's response status for a specified task assignment.
updateCostObject()  : mixed
CostObject API: Update a single costobject.
updateTask()  : mixed
Changes a task identified by tasklist and ID.
updateTasklist()  : mixed
Updates an existing task list.

Properties

Links.

protected array<string|int, mixed> $_links = array('show' => '%application%/view.php?tasklist=|tasklist|&task=|task|&uid=|uid|')

Methods

addTask()

Adds a task.

public addTask(array<string|int, mixed> $task) : mixed
Parameters
$task : array<string|int, mixed>

A hash with task information.

Tags
throws
Horde_Exception_PermissionDenied
Return values
mixed —

addTasklist()

Adds a new task list.

public addTasklist(string $name[, string $description = '' ][, string $color = '' ][, array<string|int, mixed> $params = array() ]) : string
Parameters
$name : string

Task list name.

$description : string = ''

Task list description.

$color : string = ''

Task list color.

$params : array<string|int, mixed> = array()

Any addtional parameters needed. @since 4.2.1

  • synchronize: (boolean) If true, add task list to the list of task lists to syncronize. DEFAULT: false (do not add to the list).
Return values
string —

The new tasklist's id.

ajaxDefaults()

Returns a number of defaults necessary for the ajax view.

public ajaxDefaults() : array<string|int, mixed>
Return values
array<string|int, mixed> —

A hash with default values.

browse()

Browse through Nag's object tree.

public browse([string $path = '' ][, array<string|int, mixed> $properties = array() ]) : array<string|int, mixed>
Parameters
$path : string = ''

The level of the tree to browse.

$properties : array<string|int, mixed> = array()

The item properties to return. Defaults to 'name', 'icon', and 'browseable'.

Return values
array<string|int, mixed> —

The contents of $path

delete()

Deletes a task identified by UID.

public delete(string|array<string|int, mixed> $uid) : bool
Parameters
$uid : string|array<string|int, mixed>

Identify the task to delete, either a single UID or an array.

Return values
bool —

Success or failure.

deleteTask()

Deletes a task identified by tasklist and ID.

public deleteTask(string $tasklist, string $id) : mixed
Parameters
$tasklist : string

A tasklist id.

$id : string

A task id.

Return values
mixed —

deleteTasklist()

Deletes a task list.

public deleteTasklist(string $id) : mixed
Parameters
$id : string

A task list id.

Return values
mixed —

export()

Exports a task, identified by UID, in the requested content type.

public export(string $uid, string $contentType[, array<string|int, mixed> $options = array() ]) : string
Parameters
$uid : string

Identify the task to export.

$contentType : string

What format should the data be in? A string with one of:

  • text/calendar: iCalendar 2.0. Recommended as this is specified in RFC 2445.
  • text/x-vcalendar: vCalendar 1.0 format. Still in wide use.
  • activesync: Horde_ActiveSync_Message_Task.
  • raw: Nag_Task.
$options : array<string|int, mixed> = array()

Any additional options for the exporter.

Return values
string —

The requested data.

exportTasklist()

Exports a tasklist in the requested content type.

public exportTasklist(string $tasklist, string $contentType) : string
Parameters
$tasklist : string

The tasklist to export.

$contentType : string

What format should the data be in? A string with one of:

text/calendar (VCALENDAR 2.0. Recommended as
               this is specified in rfc2445)
text/x-vcalendar (old VCALENDAR 1.0 format.
                 Still in wide use)
Return values
string —

The iCalendar representation of the tasklist.

getActionTimestamp()

Returns the timestamp of an operation for a given uid an action.

public getActionTimestamp(string $uid, string $action[, string $tasklist = null ][, bool $modSeq = false ]) : int
Parameters
$uid : string

The uid to look for.

$action : string

The action to check for - add, modify, or delete.

$tasklist : string = null

The tasklist to be used. If 'null', the user's default tasklist will be used.

$modSeq : bool = false

Request a modification sequence instead of a timestamp. @since 4.1.1

Tags
throws
InvalidArgumentException
throws
Horde_Exception_PermissionDenied
thorws

Horde_History_Exception

Return values
int —

The timestamp for this action.

getChanges()

Method for obtaining all server changes between two timestamps. Basically a wrapper around listBy(), but returns an array containing all adds, edits and deletions.

public getChanges(int $start, int $end[, bool $isModSeq = false ][, string $tasklist = null ]) : array<string|int, mixed>
Parameters
$start : int

The starting timestamp

$end : int

The ending timestamp.

$isModSeq : bool = false

If true, $timestamp and $end are modification sequences and not timestamps. @since 4.1.1

$tasklist : string = null

The sources to check. @since 4.2.0

Return values
array<string|int, mixed> —

An hash with 'add', 'modify' and 'delete' arrays.

getChangesByModSeq()

Return all changes occuring between the specified modification sequences.

public getChangesByModSeq(int $start, int $end[, string $tasklist = null ]) : array<string|int, mixed>
Parameters
$start : int

The starting modseq.

$end : int

The ending modseq.

$tasklist : string = null

The sources to check. @since 4.2.0

Tags
since
4.1.1
Return values
array<string|int, mixed> —

The changes @see getChanges()

getDefaultShare()

Retrieve the UID for the current user's default tasklist.

public getDefaultShare() : string
Tags
since
4.2.0
Return values
string —

UID.

getDisplayedTasklists()

Returns the displayed task lists.

public getDisplayedTasklists() : array<string|int, mixed>
Return values
array<string|int, mixed> —

Displayed tasklists.

getHighestModSeq()

Return the largest modification sequence from the history backend.

public getHighestModSeq([string $id = null ]) : int
Parameters
$id : string = null

Limit the check to this tasklist. @since 4.2.0

Tags
since
4.1.1
Return values
int —

The modseq.

getTask()

Returns a task object.

public getTask(string $tasklist, string $id) : Nag_Task
Parameters
$tasklist : string

A tasklist id.

$id : string

A task id.

Return values
Nag_Task —

The matching task object.

getTasklist()

Returns a task list.

public getTasklist(string $name) : Horde_Share_Object
Parameters
$name : string

A task list name.

Return values
Horde_Share_Object —

The task list.

import()

Imports one or more tasks represented in the specified content type.

public import(string $content, string $contentType[, string $tasklist = null ]) : string

If a UID is present in the content and the task is already in the database, a replace is performed rather than an add.

Parameters
$content : string

The content of the task.

$contentType : string

What format is the data in? Currently supports: text/calendar text/x-vcalendar

$tasklist : string = null

The tasklist into which the task will be imported. If 'null', the user's default tasklist will be used.

Return values
string —

The new UID on one import, an array of UIDs on multiple imports,

listBy()

Returns an array of UIDs for tasks that have had $action happen since $timestamp.

public listBy(string $action, int $timestamp[, string $tasklist = null ][, int $end = null ][, bool $isModSeq = false ]) : array<string|int, mixed>
Parameters
$action : string

The action to check for - add, modify, or delete.

$timestamp : int

The time to start the search.

$tasklist : string = null

The tasklist to be used. If 'null', the user's default tasklist will be used.

$end : int = null

The optional ending timestamp.

$isModSeq : bool = false

If true, $timestamp and $end are modification sequences and not timestamps. @since 4.1.1

Tags
throws
Horde_History_Exception
throws
InvalidArgumentException
Return values
array<string|int, mixed> —

An array of UIDs matching the action and time criteria.

listCostObjects()

CostObject API: Lists active tasks as cost objects.

public listCostObjects(array<string|int, mixed> $criteria) : mixed
Parameters
$criteria : array<string|int, mixed>

Filter attributes

Tags
todo

Implement $criteria parameter.

Return values
mixed —

listTagInfo()

Retrieve the list of used tag_names, tag_ids and the total number of resources that are linked to that tag.

public listTagInfo([array<string|int, mixed> $tags = null ][, mixed $user = null ]) : array<string|int, mixed>
Parameters
$tags : array<string|int, mixed> = null

An optional array of tag_ids. If omitted, all tags will be included.

$user : mixed = null
Return values
array<string|int, mixed> —

An array containing tag_name, and total

listTasklists()

Returns a list of task lists.

public listTasklists([bool $owneronly = false ][, int $permission = Horde_Perms::SHOW ][, bool $smart = true ]) : array<string|int, mixed>
Parameters
$owneronly : bool = false

Only return tasklists that this user owns? Defaults to false.

$permission : int = Horde_Perms::SHOW

The permission to filter tasklists by.

$smart : bool = true

Include smart tasklists in results.

Return values
array<string|int, mixed> —

The task lists.

listTasks()

Retrieves the current user's task list from storage.

public listTasks([arary $options = array() ]) : array<string|int, mixed>

This function will also sort the resulting list, if requested.

Parameters
$options : arary = array()

Options array:

  • altsortby: (string) The secondary sort field. Same values as sortdir. DEFAULT: altsortby pref is used.
  • completed: (integer) Which task to retrieve. DEFAULT: show_completed pref is used.
  • sortby: (string) A Nag::SORT_* constant for the field to sort by. DEFAULT: sortby pref is used.
  • sortdir: (string) Direction of sort. NAG::SORT_ASCEND or NAG::SORT_DESCEND. DEFAULT: sortdir pref is used.
  • include_tags: (boolean) Autoload all tags. DEFAULT: false (Tags are lazy loaded as needed.)
  • json: (boolean) Return data as JSON. DEFAULT: false (Data is returned as Nag_Task)
  • tasklists: (array) An array of tasklists to include. DEFAULT: Use $GLOBALS['display_tasklists'];
Return values
array<string|int, mixed> —

An array of the requested tasks.

listTimeObjectCategories()

public listTimeObjectCategories() : mixed
Return values
mixed —

listTimeObjects()

Lists active tasks as time objects.

public listTimeObjects(array<string|int, mixed> $categories, mixed $start, mixed $end) : mixed
Parameters
$categories : array<string|int, mixed>

The time categories (from listTimeObjectCategories) to list.

$start : mixed

The start date of the period.

$end : mixed

The end date of the period.

Return values
mixed —

listUids()

Returns an array of UIDs for all tasks that the current user is authorized to see.

public listUids([mixed $tasklists = null ]) : array<string|int, mixed>
Parameters
$tasklists : mixed = null

The tasklist or an array of taskslists to list.

Tags
throws
Horde_Exception_PermissionDenied
throws
Nag_Exception
Return values
array<string|int, mixed> —

An array of UIDs for all tasks the user can access.

modified()

Returns the last modification timestamp of a given uid.

public modified(string $uid[, string $tasklist = null ]) : int
Parameters
$uid : string

The uid to look for.

$tasklist : string = null

The tasklist to look in.

Return values
int —

The timestamp for the last modification of $uid.

path_delete()

Deletes a file from the Nag tree.

public path_delete(string $path) : string
Parameters
$path : string

The path to the file.

Tags
throws
Nag_Exception
Return values
string —

The event's UID

put()

Saves a file into the Nag tree.

public put(string $path, string $content, string $content_type) : array<string|int, mixed>
Parameters
$path : string

The path where to PUT the file.

$content : string

The file content.

$content_type : string

The file's content type.

Return values
array<string|int, mixed> —

The event UIDs

quickAdd()

Imports one or more tasks parsed from a string.

public quickAdd(string $text[, string $tasklist = null ]) : array<string|int, mixed>
Parameters
$text : string

The text to parse into

$tasklist : string = null

The tasklist into which the task will be imported. If 'null', the user's default tasklist will be used.

Tags
throws
Horde_Exception_PermissionDenied
Return values
array<string|int, mixed> —

The UIDs of all tasks that were added.

replace()

Replaces the task identified by UID with the content represented in the specified content type.

public replace(string $uid, string $content, string $contentType) : bool

If you want to replace multiple tasks with the UID specified in the VCALENDAR data, you may use $this->import instead. This automatically does a replace if existings UIDs are found.

Parameters
$uid : string

Identify the task to replace.

$content : string

The content of the task.

$contentType : string

What format is the data in? Currently supports:

  • text/x-vcalendar
  • text/calendar
Return values
bool —

Success or failure.

saveTimeObject()

Saves properties of a time object back to the task that it represents.

public saveTimeObject(array<string|int, mixed> $timeobject) : mixed

At the moment only the title, description and due date are saved.

Parameters
$timeobject : array<string|int, mixed>

A time object hash.

Tags
throws
Nag_Exception
Return values
mixed —

searchTags()

SearchTags API: Returns an application-agnostic array (useful for when doing a tag search across multiple applications)

public searchTags(array<string|int, mixed> $names[, int $max = 10 ], int $from[, string $resource_type = '' ][, string $user = null ][, bool $raw = false ]) : array<string|int, mixed>

The 'raw' results array can be returned instead by setting $raw = true.

Parameters
$names : array<string|int, mixed>

An array of tag_names to search for.

$max : int = 10

The maximum number of resources to return.

$from : int

The number of the resource to start with.

$resource_type : string = ''

The resource type [bookmark, '']

$user : string = null

Restrict results to resources owned by $user.

$raw : bool = false

Return the raw data?

Return values
array<string|int, mixed> —

An array of results:

 'title'    - The title for this resource.
 'desc'     - A terse description of this resource.
 'view_url' - The URL to view this resource.
 'app'      - The Horde application this resource belongs to.
 'icon'     - URL to an image.

setDisplayedTasklists()

Sets the displayed task lists.

public setDisplayedTasklists(array<string|int, mixed> $list) : mixed
Parameters
$list : array<string|int, mixed>

Displayed tasklists.

Return values
mixed —

sources()

Returns a list of available sources.

public sources([bool $writeable = false ][, bool $sync_only = false ]) : array<string|int, mixed>
Parameters
$writeable : bool = false

If true, limits to writeable sources.

$sync_only : bool = false

Only include synchable address books.

Tags
since
4.2.0
Return values
array<string|int, mixed> —

An array of the available sources. Keys are source IDs, values are source titles.

toggleCompletion()

Toggles the task completion flag.

public toggleCompletion(string $task_id, string $tasklist_id) : bool|string
Parameters
$task_id : string

The task ID.

$tasklist_id : string

The tasklist that contains the task.

Return values
bool|string —

True if the task has been toggled, a due date if there are still incomplete recurrences, otherwise false.

updateAttendee()

Updates an attendee's response status for a specified task assignment.

public updateAttendee(Horde_Icalendar_Vtodo $response[, string $sender = null ]) : mixed
Parameters
$response : Horde_Icalendar_Vtodo

A Horde_Icalendar_Vtodo object, with a valid UID attribute that points to an existing task. This is typically the vTodo portion of an iTip task-request response, with the attendee's response in an ATTENDEE parameter.

$sender : string = null

The email address of the person initiating the update. Attendees are only updated if this address matches.

Tags
throws

Nag_Exception, Horde_Exception_PermissionDenied

Return values
mixed —

updateCostObject()

CostObject API: Update a single costobject.

public updateCostObject(string $id, array<string|int, mixed> $data) : mixed
Parameters
$id : string

The task id.

$data : array<string|int, mixed>

The data to update. Currently support: -: hours The amount of hours to add to the existing actual hours.

Return values
mixed —

updateTask()

Changes a task identified by tasklist and ID.

public updateTask(string $tasklist, string $id, array<string|int, mixed> $task) : mixed
Parameters
$tasklist : string

A tasklist id.

$id : string

A task id.

$task : array<string|int, mixed>

A hash with overwriting task information.

Return values
mixed —

updateTasklist()

Updates an existing task list.

public static updateTasklist(string $name, array<string|int, mixed> $info) : mixed
Parameters
$name : string

A task list name.

$info : array<string|int, mixed>

Hash with task list information.

Return values
mixed —

Search results