attachments-procs.tcl

Attachments

Location:
packages/attachments/tcl/attachments-procs.tcl
Author:
Arjun Sanyal <arjun@openforce.net>
CVS Identification:
$Id: attachments-procs.tcl,v 1.23.2.10 2022/09/12 14:43:22 antoniop Exp $

Procedures in this file

Detailed information

attachments::add_attachment_url (public)

 attachments::add_attachment_url [ -folder_id folder_id ] \
    [ -package_id package_id ] -object_id object_id \
    [ -return_url return_url ] [ -pretty_name pretty_name ]
Switches:
-folder_id (optional)
-package_id (optional)
-object_id (required)
-return_url (optional)
-pretty_name (optional)
Returns:
the url that can be used to attach something to an object

Testcases:
attachments_url_api

attachments::attach (public)

 attachments::attach -object_id object_id -attachment_id attachment_id \
    [ -approved_p approved_p ]

perform the attachment

Switches:
-object_id (required)
-attachment_id (required)
-approved_p (optional, defaults to "t")

Testcases:
attachments_basic_api

attachments::context_bar (public)

 attachments::context_bar -folder_id folder_id [ -final final ] \
    [ -extra_vars extra_vars ] [ -multirow multirow ]

Create a multirow with cols (url title) for the file-storage bar starting at folder_id

Switches:
-folder_id (required)
-final (optional)
-extra_vars (optional)
-multirow (optional, defaults to "fs_context")

Testcases:
attachments_url_api

attachments::detach_url (public)

 attachments::detach_url [ -package_id package_id ] \
    -object_id object_id -attachment_id attachment_id \
    [ -base_url base_url ] [ -return_url return_url ]
Switches:
-package_id (optional)
-object_id (required)
-attachment_id (required)
-base_url (optional)
-return_url (optional)
Returns:
the url to detach an attached item from an object

Testcases:
attachments_url_api

attachments::get_all_attachments (public)

 attachments::get_all_attachments -object_id object_id \
    [ -base_url base_url ] [ -return_url return_url ] \
    [ -approved_only ] [ -add_detach_url ]
Switches:
-object_id (required)
object to check for attachments.
-base_url (optional)
URL path that will be prepended to generated URLs.
-return_url (optional)
only meaningful if we are also generating detach_url, is the location we will return to after detaching.
-approved_only (optional, boolean)
flag deciding if we want to return only attachments that have been approved. All attachments will be returned when this is not specified.
-add_detach_url (optional, boolean)
flag deciding whether we want to generate also detach_url in the result.
Returns:
a list representing attachments and their UI URLs.
list of lists in the format {item_id name url} or {item_id name url detach_url} when add_detach_url is specified.

Testcases:
attachments_basic_api

attachments::get_attachments (public)

 attachments::get_attachments -object_id object_id \
    [ -base_url base_url ] [ -return_url return_url ]
Switches:
-object_id (required)
-base_url (optional)
-return_url (optional)
Returns:
a list of attachment ids and names which are approved: {item_id name url detach_url}

Testcases:
attachments_basic_api

attachments::get_attachments_url (private)

 attachments::get_attachments_url [ -base_url base_url ]

As 'attachments::get_url' returns the value of the attachments package 'RelativeUrl' parameter, which can change at any time, it could happen that previously mounted attachments have a different url and are not found anymore. We try our best here to find a mounted attachments package under 'base_url' to mitigate this, probably flawed, package logic. In the future, probably a better method should be used for URL resolving that is not so broken. The whole thing is even more weird, as the attachments package is currently a singleton that auto-mounts on /attachments, so i am tempted to replace this whole thing with just that, but anyway...

Switches:
-base_url (optional)
The base URL where to look for the attachments package.
Returns:
The attachments package URL under 'base_url', or "" if none is found.
See Also:

Testcases:
attachments_url_api

attachments::get_package_key (public)

 attachments::get_package_key
Returns:
the package key (attachments)

Testcases:
attachments_package_key

attachments::get_root_folder (public)

 attachments::get_root_folder [ -package_id package_id ]
Switches:
-package_id (optional)
when omitted, will default to the package mounted on the current node's parent.
Returns:
the attachment root folder id for the package.

Testcases:
attachments_url_api

attachments::get_title (public)

 attachments::get_title -attachment_id attachment_id
Switches:
-attachment_id (required)
ID of the attachment (item_id)
Returns:
The title of the attachment (string)

Testcases:
attachments_name_api

attachments::get_url (public)

 attachments::get_url
Returns:
the value of the RelativeUrl package parameter

Testcases:
attachments_url_api

attachments::goto_attachment_url (public)

 attachments::goto_attachment_url [ -package_id package_id ] \
    -object_id object_id -attachment_id attachment_id \
    [ -base_url base_url ]
Switches:
-package_id (optional)
-object_id (required)
-attachment_id (required)
-base_url (optional)
Returns:
the url to go to an attachment

Testcases:
attachments_url_api

attachments::graphic_url (public)

 attachments::graphic_url [ -package_id package_id ]
Switches:
-package_id (optional)
Returns:
the attachment icon

Testcases:
attachments_url_api

attachments::map_root_folder (public)

 attachments::map_root_folder -package_id package_id \
    -folder_id folder_id

Designate a folder as the attachment root folder for a package.

Switches:
-package_id (required)
-folder_id (required)

Testcases:
attachments_map_folder

attachments::root_folder_map_p (public, deprecated)

 attachments::root_folder_map_p -package_id package_id
Deprecated. Invoking this procedure generates a warning.

Switches:
-package_id (required)
Returns:
1 if the package_id has an fs_folder mapped to it
See Also:

Testcases:
No testcase defined.

attachments::root_folder_p (public)

 attachments::root_folder_p -package_id package_id
Switches:
-package_id (required)
Returns:
1 if the package_id has an fs_folder mapped to it

Testcases:
attachments_map_folder

attachments::toggle_approved (public)

 attachments::toggle_approved -object_id object_id -item_id item_id \
    [ -approved_p approved_p ]

toggle approved_p for attachment

Switches:
-object_id (required)
-item_id (required)
-approved_p (optional)

Testcases:
attachments_basic_api

attachments::unattach (public)

 attachments::unattach -object_id object_id \
    -attachment_id attachment_id

undo the attachment

Switches:
-object_id (required)
-attachment_id (required)

Testcases:
attachments_basic_api

attachments::unmap_root_folder (public)

 attachments::unmap_root_folder -package_id package_id \
    -folder_id folder_id

Designate a folder as the attachment root folder for a package.

Switches:
-package_id (required)
-folder_id (required)

Testcases:
attachments_map_folder
[ show source ]