HubSite

Class

Hub Site Class NOTE: This is a minimal implementation. Create operations are not supported at this time

Implements

Extends

Constructors

Constructor Parameters

Parameter Type Default Notes
entity Required IHubSite
context Required IArcGISContext

Properties

Property Type Notes
context Protected Inherited IArcGISContext
entity Protected Inherited IHubSite
isDestroyed Protected Inherited false
thumbnailCache Protected Inherited null

Accessors

Accessor Type Notes
catalog Catalog

Catalog instance for this site. Note: Do not hold direct references to this object; always access it from the site.

canDelete Inherited boolean

Can the current user delete the Entity? In order to delete an item, the user must be the owner of the item or a full org_admin in the owner's organization.

canEdit Inherited boolean

Can the current user edit the Entity? In order to edit an item, the user must be the owner of the item or be a member of a shared editing group, to which the item is shared.

id Inherited string

Return the entity id

orgId Inherited string

The orgId of the Entity, if available

owner Inherited string

Return the entity owner

Methods

Method Returns Notes
Promise<HubSite>

NOT IMPLEMENTED YET: Create a new HubSite, returning a HubSite instance. By default, this does not save the site to the backing store.

Promise<HubSite>

Fetch a Site from the backing store and return a HubSite instance.

HubSite

Create an instance from an IHubSite object

Promise<IContainsResponse>

Check if a particular entity is contained is this HubSite.

By default, this checks the Site catalog for the entity, by executing a search.

Transitive containment is supported by passing in an array of IDeepCatalogInfo objects, in the order of the containment hierarchy.

Scenario:

  • Site 00a's Catalog contains Initiative 00b.
  • Initiative 00b's Catalog contains Site 00c.
  • Site 00c's catalog contains Dataset 00d.

Check if Dataset 00d can be displayed in Site 00a, pass in the following

[
 {id: '00c', entityType:"item"}, // site
 {id: '00b', entityType:"item"}, // initiative
]

The site catalog and id will be added in automatically.

If you already have the IHubCatalog for the site or initiative, you can pass that in as well, and it will save a request.

This function will also build a cache of the catalogs so subsequent calls will be faster.

Promise<IVersion>

Creates a new version of the site

Promise<void>

Delete the HubSite from the store set a flag to indicate that it is destroyed

Promise<{
success:
boolean
}>

Deletes the specified version of the entity

Promise<IHubSite>

Load the project from the editor object

Promise<IEditorConfig>
Promise<IVersion>

Gets the specified version of the site

Promise<void>

Save the HubSite to the backing store. Currently Sites are stored as Items in Portal

Promise<IVersionMetadata[]>

Gets all the versions of the site

Promise<IHubSiteEditor>

Return the project as an editor object

void

Apply a new state to the instance

Promise<IVersion>

Updates the specified version of the site

Promise<IVersionMetadata>

Updates the specified version's metadata

void

** DEPRECATED: please use requestAssociation instead. This will be removed in the next breaking version **

Add an association to this entity

void

Add a policy to the entity

Promise<void>

Hook that subclasses should call to invoke shared post-save behavior

IPermissionAccessResponse

Check if current user has a specific permission, accounting for both system and entity level policies

Promise<void>

Remove the featured image from the item

void

Clear the thumbnail from the item, if one exists. Persisted on next .save() call

Promise<IGroup>

Returns the followers group

IEntityPermissionPolicy[]

Get all policies related to a specific permission

string

Return the full url to the thumbnail, optionally with a width parameter

IAssociationInfo[]

** DEPRECATED: This will be removed in the next breaking version **

Return a list of IAssociationInfo objects representing the associations this entity has, to the specified type

void

** DEPRECATED: please use breakAssociation instead. This will be removed in the next breaking version **

Remove an association from this entity

void

Remove a policy from the entity

Promise<void>

Set the access level of the backing item

Promise<void>

Set a featured image on the Entity, if one already exists it is cleared out before the new one is set to keep the number of resources in control

Promise<void>

Sets the access level of the followers group

Promise<void>

Sets whether or not the followers group is discussable

void

Store thumbnail information to be sent with the next .save() call

Promise<void>

Share the Entity with the specified group id

Promise<IGroup[]>

Return a list of groups the Entity is shared to.

IHubSite

Return the backing entity as an object literal

Promise<void>

Unshare the Entity with the specified group id

void

Updates the isDiscussable property

create

Static Static Class Method

NOT IMPLEMENTED YET: Create a new HubSite, returning a HubSite instance. By default, this does not save the site to the backing store.

Parameters

Parameter Type Default Notes
partialSite Required Partial<IHubSite>
context Required IArcGISContext
save Optional boolean false

Returns

Promise<HubSite>

fetch

Static Static Class Method

Fetch a Site from the backing store and return a HubSite instance.

Parameters

Parameter Type Default Notes
identifier Required string

Identifier of the site to load

context Required IArcGISContext

Returns

Promise<HubSite>

fromJson

Static Static Class Method

Create an instance from an IHubSite object

Parameters

Parameter Type Default Notes
json Required Partial<IHubSite>

JSON object to create a HubSite from

context Required IArcGISContext

ArcGIS context

Returns

contains

Class Method

Check if a particular entity is contained is this HubSite.

Parameters

Parameter Type Default Notes
identifier Required string
hierarchy Optional IDeepCatalogInfo[] []

Returns


By default, this checks the Site catalog for the entity, by executing a search.

Transitive containment is supported by passing in an array of IDeepCatalogInfo objects, in the order of the containment hierarchy.

Scenario:

  • Site 00a's Catalog contains Initiative 00b.
  • Initiative 00b's Catalog contains Site 00c.
  • Site 00c's catalog contains Dataset 00d.

Check if Dataset 00d can be displayed in Site 00a, pass in the following

[
 {id: '00c', entityType:"item"}, // site
 {id: '00b', entityType:"item"}, // initiative
]

The site catalog and id will be added in automatically.

If you already have the IHubCatalog for the site or initiative, you can pass that in as well, and it will save a request.

This function will also build a cache of the catalogs so subsequent calls will be faster.

createVersion

Class Method

Creates a new version of the site

Parameters

Parameter Type Default Notes
options Optional ICreateVersionOptions

Returns

Promise<IVersion>

delete

Class Method

Delete the HubSite from the store set a flag to indicate that it is destroyed

  • delete() : Promise<void>

Returns

Promise<void>

deleteVersion

Class Method

Deletes the specified version of the entity

  • deleteVersion(versionId: string) : Promise<{
    success:
    boolean
    }>

Parameters

Parameter Type Default Notes
versionId Required string

Returns

Promise<{
success:
boolean
}>

fromEditor

Class Method

Load the project from the editor object

Parameters

Parameter Type Default Notes
editor Required IHubSiteEditor

Returns

Promise<IHubSite>

getEditorConfig

Class Method

Parameters

Parameter Type Default Notes
i18nScope Required string
type Required SiteEditorType

Returns

Promise<IEditorConfig>

getVersion

Class Method

Gets the specified version of the site

  • getVersion(versionId: string) : Promise<IVersion>

Parameters

Parameter Type Default Notes
versionId Required string

Returns

Promise<IVersion>

save

Class Method

Save the HubSite to the backing store. Currently Sites are stored as Items in Portal

  • save() : Promise<void>

Returns

Promise<void>

searchVersions

Class Method

Gets all the versions of the site

Returns

Promise<IVersionMetadata[]>

toEditor

Class Method

Return the project as an editor object

Parameters

Parameter Type Default Notes
editorContext Optional IEntityEditorContext {}
include Optional string[] []

Returns

Promise<IHubSiteEditor>

update

Class Method

Apply a new state to the instance

  • update(changes: Partial<IHubSite>) : void

Parameters

Parameter Type Default Notes
changes Required Partial<IHubSite>

Returns

void

updateVersion

Class Method

Updates the specified version of the site

Parameters

Parameter Type Default Notes
version Required IVersion

Returns

Promise<IVersion>

updateVersionMetadata

Class Method

Updates the specified version's metadata

Parameters

Parameter Type Default Notes
version Required IVersionMetadata

Returns

Promise<IVersionMetadata>

addAssociation

Class Method

** DEPRECATED: please use requestAssociation instead. This will be removed in the next breaking version **

Parameters

Parameter Type Default Notes
info Required IAssociationInfo

Returns

void

Add an association to this entity

addPermissionPolicy

Class Method

Add a policy to the entity

Parameters

Parameter Type Default Notes
policy Required IEntityPermissionPolicy

Returns

void

afterSave

Class Method

Hook that subclasses should call to invoke shared post-save behavior

  • afterSave() : Promise<void>

Returns

Promise<void>

checkPermission

Class Method

Check if current user has a specific permission, accounting for both system and entity level policies

Parameters

Parameter Type Default Notes
permission Required Permission

Returns

clearFeaturedImage

Class Method

Remove the featured image from the item

  • clearFeaturedImage() : Promise<void>

Returns

Promise<void>

clearThumbnail

Class Method

Clear the thumbnail from the item, if one exists. Persisted on next .save() call

  • clearThumbnail() : void

Returns

void

getFollowersGroup

Class Method

Returns the followers group

  • getFollowersGroup() : Promise<IGroup>

Returns

Promise<IGroup>

getPermissionPolicies

Class Method

Get all policies related to a specific permission

Parameters

Parameter Type Default Notes
permission Required Permission

Returns

getThumbnailUrl

Class Method

Return the full url to the thumbnail, optionally with a width parameter

  • getThumbnailUrl(width: number) : string

Parameters

Parameter Type Default Notes
width Optional number 200

Returns

string

listAssociations

Class Method

** DEPRECATED: This will be removed in the next breaking version **

Parameters

Parameter Type Default Notes
type Required AssociationType

Returns


Return a list of IAssociationInfo objects representing the associations this entity has, to the specified type

removeAssociation

Class Method

** DEPRECATED: please use breakAssociation instead. This will be removed in the next breaking version **

Parameters

Parameter Type Default Notes
info Required IAssociationInfo

Returns

void

Remove an association from this entity

removePermissionPolicy

Class Method

Remove a policy from the entity

  • removePermissionPolicy(permission: Permission, id: string) : void

Parameters

Parameter Type Default Notes
permission Required Permission
id Required string

Returns

void

setAccess

Class Method

Set the access level of the backing item

Parameters

Parameter Type Default Notes
access Required SettableAccessLevel

Returns

Promise<void>

setFeaturedImage

Class Method

Set a featured image on the Entity, if one already exists it is cleared out before the new one is set to keep the number of resources in control

  • setFeaturedImage(file: any, clearExisting: boolean) : Promise<void>

Parameters

Parameter Type Default Notes
file Required any
clearExisting Optional boolean false

Returns

Promise<void>

setFollowersGroupAccess

Class Method

Sets the access level of the followers group

Parameters

Parameter Type Default Notes
access Required SettableAccessLevel

Returns

Promise<void>

setFollowersGroupIsDiscussable

Class Method

Sets whether or not the followers group is discussable

  • setFollowersGroupIsDiscussable(isDiscussable: boolean) : Promise<void>

Parameters

Parameter Type Default Notes
isDiscussable Required boolean

Returns

Promise<void>

setThumbnail

Class Method

Store thumbnail information to be sent with the next .save() call

  • setThumbnail(file: any, filename: string) : void

Parameters

Parameter Type Default Notes
file Required any
filename Required string

Returns

void

shareWithGroup

Class Method

Share the Entity with the specified group id

  • shareWithGroup(groupId: string) : Promise<void>

Parameters

Parameter Type Default Notes
groupId Required string

Returns

Promise<void>

sharedWith

Class Method

Return a list of groups the Entity is shared to.

  • sharedWith() : Promise<IGroup[]>

Returns

Promise<IGroup[]>

toJson

Class Method

Return the backing entity as an object literal

Returns

unshareWithGroup

Class Method

Unshare the Entity with the specified group id

  • unshareWithGroup(groupId: string) : Promise<void>

Parameters

Parameter Type Default Notes
groupId Required string

Returns

Promise<void>

updateIsDiscussable

Class Method

Updates the isDiscussable property

  • updateIsDiscussable(isDiscussable: boolean) : void

Parameters

Parameter Type Default Notes
isDiscussable Required boolean

whether to enable or disable discussions

Returns

void

Class defined in common/src/sites/HubSite.ts:60