class LabelTree extendsModel

A label tree is a group of labels. Projects can choose to used different label trees, which are then offered for labeling things in the project.

Label trees have admins and editors as members. Editors can add and delete labels. Admins can also manage members and modify the tree (name, visibility etc). Label trees can be public or private. Private trees maintain a list of projects that are authorized to use the tree. This list is maintained by label tree admins.

Properties

protectedarray $hidden The attributes hidden from the model's JSON form.
protectedarray $casts The attributes that should be casted to native types.

Methods

bool
memberCanLooseAdminStatus(User$member)

Check if a member can loose their admin status.

Builder
scopePublicTrees(Builder$query)

Scope a query to public label trees.

Builder
scopePrivateTrees(Builder$query)

Scope a query to private label trees.

Builder
scopeAccessibleBy(Builder$query,User$user)

Scope a query to all trees that are accessible by a user.

Builder
scopeWithoutVersions(Builder$query)

Scope a query to all trees that are not a varsion of another tree.

Builder
scopeGlobal(Builder$query)

Scope a query to all "global" trees.

BelongsTo
version()

The version of this label tree (if it is a version of a master label tree).

HasMany
versions()

The versions of this (master) label tree.

BelongsTo
visibility()

The visibility of the label tree.

BelongsToMany
members()

The members of this label tree. Every member has a tree-specific role.

HasMany
labels()

The labels that belong to this tree.

bool
canBeDeleted()

Determines if the label tree can be safely deleted.

addMember(User|id$user,Role|int$role)

Add a new member with a certain role.

updateMember(User|int$user,Role|int$role)

Update a member (role).

bool
memberCanBeRemoved(User$member)

Determines if a member can be removed.

BelongsToMany
projects()

The projects that are using this label tree.

BelongsToMany
authorizedProjects()

The projects that are authorized to use this private label tree.

detachUnauthorizedProjects()

Detaches all projects that are not among the authorized projects.

string
getVersionedNameAttribute()

Get the name with a version suffix of this label tree.

replicateLabelsOf(LabelTree$tree)

Replicate all labels of one label tree to this one.

Details

at line48
bool memberCanLooseAdminStatus(User$member)

Check if a member can loose their admin status.

Parameters

User $member

Return Value

bool

at line62
Builder scopePublicTrees(Builder$query)

Scope a query to public label trees.

Parameters

Builder $query

Return Value

Builder

at line73
Builder scopePrivateTrees(Builder$query)

Scope a query to private label trees.

Parameters

Builder $query

Return Value

Builder

at line85
Builder scopeAccessibleBy(Builder$query,User$user)

Scope a query to all trees that are accessible by a user.

Parameters

Builder $query
User $user

Return Value

Builder

at line123
Builder scopeWithoutVersions(Builder$query)

Scope a query to all trees that are not a varsion of another tree.

Parameters

Builder $query

Return Value

Builder

at line135
Builder scopeGlobal(Builder$query)

Scope a query to all "global" trees.

Parameters

Builder $query

Return Value

Builder

at line147
BelongsTo version()

The version of this label tree (if it is a version of a master label tree).

Return Value

BelongsTo

at line157
HasMany versions()

The versions of this (master) label tree.

Return Value

HasMany

at line167
BelongsTo visibility()

The visibility of the label tree.

Return Value

BelongsTo

at line177
BelongsToMany members()

The members of this label tree. Every member has a tree-specific role.

Return Value

BelongsToMany

at line189
HasMany labels()

The labels that belong to this tree.

Return Value

HasMany

at line201
bool canBeDeleted()

Determines if the label tree can be safely deleted.

A label tree can be safely deleted if none if its labels or the labels of any of its versions are in use.

Return Value

bool

at line226
addMember(User|id$user,Role|int$role)

Add a new member with a certain role.

Parameters

User|id $user
Role|int $role

at line245
updateMember(User|int$user,Role|int$role)

Update a member (role).

Parameters

User|int $user
Role|int $role

at line266
bool memberCanBeRemoved(User$member)

Determines if a member can be removed.

A member can be removed if at least one admin member remains afterwards.

Parameters

User $member

Return Value

bool

at line276
BelongsToMany projects()

The projects that are using this label tree.

Return Value

BelongsToMany

at line286
BelongsToMany authorizedProjects()

The projects that are authorized to use this private label tree.

Return Value

BelongsToMany

at line294
detachUnauthorizedProjects()

Detaches all projects that are not among the authorized projects.

at line320
string getVersionedNameAttribute()

Get the name with a version suffix of this label tree.

Return Value

string

at line334
replicateLabelsOf(LabelTree$tree)

Replicate all labels of one label tree to this one.

Parameters

LabelTree $tree