Download TeamPage 6.2.45 |
C:\Program Files\Traction\traction\server
, then your installation root is C:\Program Files\Traction
.f(attachment_filenames:foo.doc)
f(+(attachment_extensions:txt attachment_extensions:doc))
f(+(attachment_contenttypes:"image/jpg" attachment_contenttypes:"image/png"))
f(attachment_descriptions:"screenshot")
f(attachment_versions:2)
f(attachment_lockedstatuses:false)
f(attachment_checkedoutstatuses:false)
f(attachment_lastmodifiers:nancy)
f(attachment_lockowners:stanley)
f(attachment_checkoutowners:sookie)
f(attachment_sizes:500000)
f(attachment_filenames:"*.doc")
and f(+(attachments_sizes:">250000" attachment_sizes:"<500000")
.com.traction.sdk.view.ProfilePicture
interface has been modified to provide access to a com.traction.sdk.Icon
, which offers access to the image properties and data.Icon
interface now provides access to a com.traction.sdk.file.FileInfo
via the new getImageFileInfo()
method. This provides access to the contents of the resource in case it's needed for, e.com.traction.sdk.file.FileData
class has been improved, particularly in regards to the com.traction.sdk.props.GetPutProperty
used for its asGetPutProperty
method. The GetPutProperty
implementation now provides access to properties such as the file's size in bytes (formatted or raw), whether the file is an image, the image's dimensions, and properties of the icon image used with files of that type. Those properties are loaded from the underlying FileInfo
(if available), and cached for better performance. It also now supports setting of all read-write properties of the FileData, including file name or even just the file extension.com.traction.sdk.util.ImageUtil.Dimensions
class has been promoted to com.traction.sdk.util.Dimensions
. All APIs referring to image dimensions that formerly may have used an int[2] now use a pixel-denominated Dimensions object. This includes ImageUtil
methods for determining and/Icon
and ProfilePicture
implementations now have companion implementation helper interfaces and classes com.traction.sdk.util.IconFile
, extending FileInfo
, and com.traction.sdk.util.ProfilePictureFile
extending IconFile
. All Icon
and ProfilePicture
implementations are in terms of these objects, whose implementations provide a nexus for efficient and safe caching of dimensions and other frequently used image resource metadata.com.traction.sdk.File
to FileInfo
, including isValid()
, getFormattedSize()
, getFormattedByteSize()
, and getDataUrl()
. Also, the new metohd isPersistent()
provides an easy way to determine whether the FileInfo
is backed by a persistent resource instead of a temporary file (without having to check instanceof com.traction.sdk.file.TempFile
).com.traction.sdk.util.UrlUtil
has been improved. A few issues have been fixed, and various error corner cases are now handled more appropriately, but the main change is the new parseDataURI
method that returns an instance of the new com.traction.sdk.util.UrlUtil.DataURIParseResult
interface. This interface provides access to the success/FileData
, an InputStream
for the raw file contents, and a helper method for creating a new TempFile
from the result. The new addAttachmentFromDataUri
method also does a better job of uniformly handling failed results.Tag
classes: com.traction.sdk.sdl.ConditionalTag
, extending Tag
; and com.traction.sdk.sdl.ConditionalWithResourceTag
. com.traction.sdk.sdl.BooleanTag
now extends ConditionalTag
, which now holds the basic implementation for separating the Tag children into the "true" children and "false" children (for the else
block, if one is present). ConditionalTag
also has a better implementation of child separation, and utility methods to provide safe access to either the "true" or "false" children as needed. No changes to existing SDL tag implementation classes should be required. (Server94039)ConditionalWithResourcesTag
provides a pattern for safely and consistently setting up and opening a resource, and handles failure cases while ensuring that the resource is always released after any children have been evaluated to actually use it. It uses the new first class com.traction.sdk.Resource
interface, which extends java.io.AutoCloseable
so that it can employ the try-with-resources pattern to ensure that underlying resources are always closed and/com.traction.sdk.sdl.BooleanScopeTag
for these kinds of resource management and cleanup-after-evaluation cases.ConditionalWithResourcesTag
only need to implement the method tryToLoadResource(com.traction.sdk.sdl.Scope)
. The return type is com.traction.sdk.Resource.LoadAttemptResult
, which carries the Resource
object on success, and error details on failure, including both a com.traction.sdk.Resource.LoadErrorType
representing the type of error and a com.traction.sdk.TractionRuntimeException
that provides a user-facing error message and diagnostic information for logging. This request/Resource
interface. Resource.com.traction.sdk.sdl.Tag.FailureMode
enum. The values and their general meanings are as follows:ERROR
: execution should halt and an Exception of the appropriate type should be thrown.WARNING
: execution should continue (possibly with an "else" block, or possibly by returning to the parent tag), but the error should be logged as an error or warning.IGNORE
: execution should continue without logging anything (unless certain debug modes are activated).Resource.LoadErrorType
enum values SETUP
, OPEN
and CONFIRM
, ConditionalWithResourcesTag
supports attributes for SDL authors to indicate the name of the preferred Tag.FailureMode
value for all three categories of errors, setupFailure=
, openFailure=
and confirmFailure=
. The defaults are taken from the default_setupFailure=[warning]
, default_openFailure=[warning]
and default_confirmFailure=[ignore]
tag configuration properties. The choice of category for resource load errors is completely at the discretion of implementors, and subclasses can also easily override the methods that provide the Tag.FailureMode
for any category of error instead of using the normal attribute-with-tag-configuration defaults.ConditionalWithResourcesTag
Negation, No AmbiguityConditionalTag
rather than BooleanTag
, ConditionalWithResourcesTag
doesn't support negation via the optional "not" attribute. This makes it easier to reason about the resource management, since it avoids any ambiguity that could arise with the BooleanScopeTag
pattern previously employed to implement these kinds of tags about whether resources opened or created during the evaluation of the tag's isTrue(Scope)
method will be cleaned up after evaluating the "else" block when a "not" attribute is present.
function onImageDialogLoad(data) {
// ...
}
Proteus.addHandler("image-dialog-load", onImageDialogLoad);
{
"box": <HTML element for the in-page dialog box container>
"img": <HTML IMG element for the expanded image>
}
teampage_logo.jpg
9E328171-D578-4D03-A59E-F0A7283940B1.png