Skip to content

Helper Plugin ​

File Information ​

  • Path: plugins/helper.js
  • Purpose: Global utility function injection and workspace management

Overview ​

The Helper plugin injects utility functions globally, making them available throughout the application via $ prefix. It also provides workspace management functions, resource sorting, and file type utilities. All utility functions from @/utils are automatically injected.

Key Features ​

  1. Utility Function Injection

    • All utils functions injected globally
    • Available as $functionName
    • Automatic injection from utils module
  2. Workspace Management

    • Current workspace access
    • Workspace switching
    • Workspace ID retrieval
    • User modules and roles
  3. Resource Sorting

    • Asset sorting
    • Folder sorting
    • Multi-criteria sorting
  4. File Type Utilities

    • File accept strings
    • Image file types

Injected Functions ​

All functions from @/utils are injected. Common ones include:

Workspace Functions ​

$getWorkspaceId() ​

Gets current workspace ID:

  • Returns workspace ID from auth storage
  • Returns null if not available

Returns: Workspace ID string or null

$_auth() ​

Gets current workspace from auth:

  • Returns current workspace object
  • Returns null if not logged in

Returns: Workspace object or null

$setCurrentWorkspace(workspaceId) ​

Sets current workspace:

  • Finds workspace in accessible workspaces
  • Updates auth storage
  • Resets DAM state if needed
  • Sets workspace cookie

Parameters:

  • workspaceId (string|number): Workspace ID

$getUserModulesAndRoles(workspace) ​

Gets user modules and roles for workspace:

  • Determines user permissions
  • Sets role flags (isAdmin, isViewer, etc.)
  • Returns user object with permissions

Parameters:

  • workspace (Object): Workspace object

Returns: User object with permissions

Resource Sorting ​

$sortResources(assets, sortBy, sortOrder) ​

Sorts resources (assets and folders):

  • Sorts by specified field
  • Handles file and folder objects
  • Supports ascending/descending

Parameters:

  • assets (Array): Array of asset/folder objects
  • sortBy (string): Field to sort by
  • sortOrder (string): 'asc' or 'desc'

Returns: Sorted array

File Type Utilities ​

$fileAcceptInputImage ​

Injected constant for image file types:

  • Value: 'image/jpeg,image/gif,image/png,image/svg,image/jpg'
  • Used in file input accept attribute

Vue Filters ​

shrinkString ​

String truncation filter:

  • Truncates long strings
  • Adds ellipsis
  • Configurable length

Usage:

vue
{{ longString | shrinkString }}

Usage Examples ​

Workspace ID ​

javascript
// In component
const workspaceId = this.$getWorkspaceId()

Current Workspace ​

javascript
// In component
const workspace = this.$_auth()
if (workspace) {
  console.log('Current workspace:', workspace.name)
}

Set Workspace ​

javascript
// In component
this.$setCurrentWorkspace(newWorkspaceId)

User Permissions ​

javascript
// In component
const workspace = this.$_auth()
const user = this.$getUserModulesAndRoles(workspace)
if (user.dam.isAdmin) {
  // Admin actions
}

Resource Sorting ​

javascript
// In component
const sorted = this.$sortResources(assets, 'display_file_name', 'asc')

File Input ​

vue
<template>
  <input
    type="file"
    :accept="$fileAcceptInputImage"
  />
</template>

Utility Functions ​

All utility functions from @/utils are available:

  • File type detection
  • String manipulation
  • Date formatting
  • Number formatting
  • Validation functions
  • And more...

Integration Points ​

  • All Components: Global utility access
  • Workspace Management: Workspace operations
  • File Operations: File type handling
  • Sorting: Resource sorting
  • Utils Module: Utility function source

Notes for Development ​

  • All utils functions are automatically injected
  • Functions available as $functionName
  • Workspace functions use auth storage
  • Resource sorting handles mixed types
  • File accept strings are constants
  • Vue filters are registered globally