JSMA file
Overview
The JSMA file provides functionality for handling files
What can JSMA file do for me?
You could easily use the JSMA file to edit a file
Index
Usage
writing data
Here is an example on how to write data to a JSMA file:
... file.setReferenceCount(7); ...
reading data
Here is an example on how to read data from a JSMA file:
... if file.has('description') { ... } ...
Methods
The JSMA file provides the following methods:
file file.clone(name)
Clones the file and returns the copy as a JSMA file with a new uuid.
Slice aware
This entity is slice aware, which means that to use this facility:
- there must be a logged in user in the context of the execution
- this user must be currently within a slice
- this user must have the necessary privileges to edit the entity (IFE → System → Benutzer → Roles → Content-Management)
Example
... var copiedFile = file.clone() // => file ...
Parameter name: (optional)
string file.content
Returns the content of a file as string
Example
... var filecontent = file.content ...
void file.decrementReferenceCount()
Decreases and reloads the reference count.
Example
... file.decrementReferenceCount(); ...
file.delete()
Deletes a given file (cannot be undone).
Example
... file.delete() ...
string file.fileName
Returns the object's file name.
Example
... var fname = file.fileName; ...
file.flexAttributes
Returns an array of the flex attributes of a file
Example
... var flexAttribute = file.flexAttributes; ...
string file.cacheKey
Returns a string that you can use in the fragment cache. This string will change whenever the file is changed.
Example
... file.cacheKey # => "12589387317632578294" ...
string file.get(key)
Returns the value of key as string or null if no value is set under the key.
Example
... var keyvalue = file.get(key); ...
Parameter key:string (required)
The key to be looked up in the flexAttributes of the file.
boolean file.has(key)
Returns a boolean value depending on whether key is present for a given file
Example
... if file.has('description') { ... } ...
Parameter key:string (required)
The key to be checked in the flexAttributes of the file.
int file.height
Returns the height attribute for a given file.
Example
... var height = file.height; ...
string file.humanSize
Returns a human-readable file size with a precision of two decimal places.
Example
... var humanSize= file.humanSize(); // => 5 MB ...
int file.id
Returns the ID of a file.
Example
... var id = file.id; ...
string file.imagePath(max_width, max_height)
Native Dragonfly file URL
Example
... var imgPath = file.imagePath(10, 5); ...
Parameter max_width (required)
Parameter max_height (required)
void file.increment(key)
Increments the vale of a given key by one.
Example
... file.increment("amount"); ...
Parameter key:string (required)
The key to be incremented in the flexAttributes of the file.
void file.incrementReferenceCount()
Increases and reloads the reference count.
Example
... file.incrementReferenceCount(); ...
string file.location
Returns the path of a file.
Example
... var path = file.location; ...
string file.name
Returns the name of a file.
Example
... var filename = file.name; ...
namespace file.namespace
Returns the namespace that a file belongs to.
Example
... fileNamespace = file.namespace; ...
string file.path
Native unresized Dragongfly URL to the file
Example
... var fileURL = file.path; ...
file.prepareResizedImage(size)
Prepares the thumbnail for a given file.
Example
... file.prepareResizedImage(size) ...
Parameter size (required)
int file.referenceCount()
Returns the current reference count for a given file.
Example
... var refCount = file.referenceCount(); ...
file.remove(key)
Removes the key from the flexAttributes of the file
Example
... file.remove("description"); ...
Parameter key:string (required)
The key to be removed from the flexAttributes of the file.
file.resizedImage(size, [intermediate_size], [jpeg_quality], [strip_exif], [image_format], [scale_mode], [fillcolor], [custom_command])
Generates a resized temporary version of an image.
These are the image modifications you can do with this function:
- resize to a specific size, with all features of geometry strings (resize/crop etc.)
- resize from an intermediate size for performance considerations
- set the jpeg quality, when using an image of format jpeg or converting to this format.
- strip exif data from the jpeg file
- encode in another format
- use different scaling modes (tradeoff between performance and quality)
- fill transparent sections of an image with a color
- use custom imagemagick parameters to generate all kinds of effects
Example
... file.resizedImage(size, [intermediate_size], [jpeg_quality]); ...
Parameter size:string (required)
An Imagemagick geometry string.
Parameter intermediate_size:string (optional)
An Imagemagick geometry string.
This size will be used as the intermediate size from which the image will be created. Another resizing step is done unless the intermediate size image has already been generated.
Parameter jpeg_quality:integer (optional)
The jpeg quality (0-100)
Parameter strip_exif boolean, default false (optional)
Whether to strip all EXIF data from the file. Applicable only for jpeg files. This step will be skipped for non-jpeg files.
Parameter image_format stringEnum[jpg,gif,png] (optional)
The new image format.
Parameter scale_mode stringEnum[scale, resize, box, sample] (optional)
The Imagemagick scaling mode. Defaults to 'scale'
Parameter fillcolor string[imagemagick_color] (optional)
Transparent parts will be filled with this color.
Example: 'white', '#ff000f'
Parameter custom_command string[imagemagick_convert_arguments] (optional)
One or more Imagemagick command line parameters.
Example: '+level-colors "#acd321","#abc123"'
file.set(key, value, [options])
Sets the value of a specified key for a given file.
Example
... file.set(key, value, [options]); ...
Parameter key:string (required)
The key to be set in the flexAttributes of the file.
Parameter value:string (required)
The value to be set for the key
Parameter options:object (optional)
May have a key 'broadcastEvent':bool which determines whether the log message shows up in the websocket log view.
file.setContent(file, [options])
Sets the content of a file
Slice aware
This entity is slice aware, which means that to use this facility:
- there must be a logged in user in the context of the execution
- this user must be currently within a slice
- this user must have the necessary privileges to edit the entity (IFE → System → Benutzer → Roles → Content-Management)
Example
... file.setContent(file, [options]); ...
Parameter file (required)
Parameter options (optional)
file.setName(name)
Sets the file name to the specified parameter.
Slice aware
This entity is slice aware, which means that to use this facility:
- there must be a logged in user in the context of the execution
- this user must be currently within a slice
- this user must have the necessary privileges to edit the entity (IFE → System → Benutzer → Roles → Content-Management)
Example
... file.setName(name); ...
Parameter name (required)
The name that should be used
file.setNamespace(namespaceOrId)
Sets the namespace a file belongs in to the specified parameter.
Slice aware
This entity is slice aware, which means that to use this facility:
- there must be a logged in user in the context of the execution
- this user must be currently within a slice
- this user must have the necessary privileges to edit the entity (IFE → System → Benutzer → Roles → Content-Management)
Example
... file.setNamespace(namespaceOrId); ...
Parameter namespaceOrId (required)
void file.setReferenceCount(count)
Sets the reference count of a file to the specified parameter.
Example
... file.setReferenceCount(7); ...
Parameter count:int (required)
The number of references that should be set
file.setType(new_type)
Sets the type for a given file.
Example
... file.setType(new_type) ...
Parameter new_type (required)
The new type for the file, that should be used
file.size
Returns the filesize for a given file.
Example
... var filesize = file.size; ...
string[] file.tags
Returns an array of tags for a given file.
Example
... var filetags = file.tags; ...
string file.type
Returns the type of a given file.
Example
... var filetype = file.type; ...
file.update(object)
Updates the file
Slice aware
This entity is slice aware, which means that to use this facility:
- there must be a logged in user in the context of the execution
- this user must be currently within a slice
- this user must have the necessary privileges to edit the entity (IFE → System → Benutzer → Roles → Content-Management)
Example
... file.update({ name: 'new.file.name.jpg' }) ...
Parameter object (required)
string file.uuid
Returns the UUID for a given file.
Example
... var fileUUID = file.uuid; ...
int file.width
Returns the width for a given file.
Example
... var fileWidth = file.width; ...
IBS-Specific methods
void file.promoteIBS(options)
Registers the file with the IBS.
Example
... file.promoteIBS() ...
Parameter options:object (optional)
The IBS-Options. See the IBS Entity Documentation for possible values.
void file.updateIBS(options)
Updates the file's IBS-Options in the remote IBS instance.
Example
... file.updateIBS({ description: 'my file description' }); ...
Parameter options:object (optional)
The IBS-Options. See the IBS Entity Documentation for possible values.
void file.deleteIBS()
Unregisters the file from the IBS.
Example
... file.deleteIBS() ...
void file.deleteLocal()
Removes the local file. On next access it will be retrieved from IBS if possible.
Example
... file.deleteLocal() ...
bool file.isIBS
Returns whether the file is registered with IBS.
Example
... var isIBS = file.isIBS; # => true ...
entity file.getIBSEntity()
Returns the JSMA entity of the file.
Example
... var entity = file.getIBSEntity(); ...