Class: Folder

Folder Class

Namespace

ITHit.WebDAV.Client

Represents a folder in a WebDAV repository.

Extends

Members

ActiveLocksArray

List of locks applied to this item.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    // Infinite lock
    oFile.LockAsync(ITHit.WebDAV.Client.LockScope.Shared, false, "User 1", -1, function(oInfiniteLockAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.LockInfo} oInfiniteLockInfo */
        var oInfiniteLockInfo = oInfiniteLockAsyncResult.Result;

        // Minute lock
        oFile.LockAsync(ITHit.WebDAV.Client.LockScope.Shared, false, "User 2", 60, function(oMinuteLockAsyncResult) {

            /** @typedef {ITHit.WebDAV.Client.LockInfo} oMinuteLockInfo */
            var oMinuteLockInfo = oMinuteLockAsyncResult.Result;

            // Refresh item from server to read locks
            oFile.RefreshAsync(function(oAsyncResult) {

                for (var i = 0, l = oFile.ActiveLocks.length; i < l; i++) {

                    /** @typedef {ITHit.WebDAV.Client.LockInfo} oLockInfo */
                    var oLockInfo = oFile.ActiveLocks[i];
                    var sTimeOut = oLockInfo.TimeOut === -1 ? "Infinite" : oLockInfo.TimeOut + ' sec';

                    // Show item locks
                    console.log([
                        oLockInfo.Owner,
                        oLockInfo.LockToken.Href,
                        oLockInfo.LockToken.LockToken,
                        oLockInfo.LockScope,
                        oLockInfo.Deep,
                        sTimeOut
                    ].join(' '));
                }

                fCallback(oFile, oInfiniteLockInfo, oMinuteLockInfo);
            });

        });
    });
});

AvailableBytesnumber

Number of bytes available for this user on server. -1 if server does not support Quota.

CreationDateDate

The date item was created.

DisplayNamestring

User friendly item name.

Hrefstring

This item path on the server.

LastModifiedDate

Most recent modification date.
List of item properties.

ResourceTypestring

Type of the item (File or Folder).
See:
Current WebDAV session.

SupportedLocksArray

Retrieves information about supported locks. Item can support exclusive, shared locks or do not support any locks. If you set exclusive lock other users will not be able to set any locks. If you set shared lock other users will be able to set shared lock on the item.
See:
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oAsyncResult.Result;

    if (oFile.SupportedLocks.length === 0) {
        console.log('Locks are not supported.');
    }

    for (var i = 0, l = oFile.SupportedLocks.length; i < l; i++) {
        if (oFile.SupportedLocks[i] === ITHit.WebDAV.Client.LockScope.Exclusive) {
            console.log('Item supports exclusive locks.');
        }
        if (oFile.SupportedLocks[i] === ITHit.WebDAV.Client.LockScope.Shared) {
            console.log('Item supports shared locks.');
        }
    }

    fCallback(oAsyncResult);
});

UsedBytesnumber

Number of bytes used by this user on server. -1 if server does not support Quota.

VersionControlled

Returns true if file is under version control. Otherwise false. To detect if version control could be enabled for this item call GetSupportedFeaturesAsync and check for VersionControl token. To enable version control call PutUnderVersionControlAsync.

Methods

inherited CopyTo(oDestinationFolder, sDestinationName, bDeep, bOverwrite, oLockTokens)

Copies this item to destination folder.
Name Type Description
oDestinationFolder ITHit.WebDAV.Client.Folder Folder to move to.
sDestinationName string Name to assign to copied item.
bDeep boolean Indicates whether children of this item should be copied.
bOverwrite boolean Whether existing destination item shall be overwritten.
oLockTokens Array.<ITHit.WebDAV.Client.LockUriTokenPair> optional Lock tokens for destination folder.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The source and destination URIs are the same.
  • ITHit.WebDAV.Client.Exceptions.LockedException The destination folder or items to be overwritten were locked.
  • ITHit.WebDAV.Client.Exceptions.PreconditionFailedException The destination item exists and overwrite was false.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error for specific resource.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited CopyToAsync(oDestinationFolder, sDestinationName, bDeep, bOverwrite, oLockTokens, fCallback)

Copies this item to destination folder.
Name Type Description
oDestinationFolder ITHit.WebDAV.Client.Folder Folder to move to.
sDestinationName string Name to assign to copied item.
bDeep boolean Indicates whether children of this item should be copied.
bOverwrite boolean Whether existing destination item shall be overwritten.
oLockTokens Array.<ITHit.WebDAV.Client.LockUriTokenPair> optional Lock tokens for destination folder.
fCallback ITHit.WebDAV.Client.HierarchyItem~CopyToAsyncCallback Function to call when operation is completed.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/Products/';
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
        var oFolder = oFolderAsyncResult.Result;

        oFile.CopyToAsync(oFolder, 'myproduct.txt', true, null, null, function(oAsyncResult) {

            if (oAsyncResult.IsSuccess) {
                console.log('Copy successfully completed.');
            } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.PreconditionFailedException) {
                console.log('The item with such name exists and `overwrite` was `false`.');
            } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.WebDavHttpException) {
                var sErrorText = oAsyncResult.Error.Message + ' ' + oAsyncResult.Error.Status.Code + ' ' +
                    oAsyncResult.Error.Status.Description;

                // Find which items failed to copy.
                for(var i = 0, l = oAsyncResult.Error.Multistatus.Responses.length; i < l; i++) {
                    var oResponse = oAsyncResult.Error.Multistatus.Responses[i];
                    sErrorText += '\n' + oResponse.Href + ' ' + oResponse.Status.Code + ' ' +
                        oResponse.Status.Description;
                }

                console.log('Copy error: ' + sErrorText);
            } else {
                console.log('Copy error: ' + String(oAsyncResult.Error));
            }

            fCallback(oAsyncResult);
        });
    });
});

CreateFile(sName, sLockTokens, sContent, aProperties){ITHit.WebDAV.Client.File}

Creates a new file with a specified name as a child of this folder.
Name Type Description
sName string Name of the new file.
sLockTokens string optional Lock token for current folder.
sContent string optional File content.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. Default is empty array.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException Creation of child items not allowed.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.LockedException This folder is locked and no or invalid lock token was specified.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.File Created file object.

CreateFileAsync(sName, sLockTokens, sContent, aProperties, fCallback){ITHit.WebDAV.Client.Request}

Creates a new file with a specified name as a child of this folder.
Name Type Description
sName string Name of the new file.
sLockTokens string Lock token for current folder.
sContent string File content.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> Additional properties requested from server. Default is empty array.
fCallback ITHit.WebDAV.Client.Folder~CreateFileAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.CreateFileAsync('myfile.txt', null, 'Hello World!', null, function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.File} oFile */
        var oFile = oAsyncResult.Result;

        if (oAsyncResult.Error) {
            console.log(oAsyncResult.toString());
        }

        if (oAsyncResult.IsSuccess) {
            console.log(oFile.DisplayName); // myfile.txt
        }

        fCallback(oAsyncResult);
    });
});

CreateFolder(sName, sLockTokens, aProperties){ITHit.WebDAV.Client.Folder}

Creates a new folder with a specified name as child of this folder.
Name Type Description
sName string Name of the new folder.
sLockTokens string optional Lock token for ITHit.WebDAV.Client.Folder folder.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. Default is empty array.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException Item with specified name already exists.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException Creation of child items not allowed.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.LockedException This folder is locked and no or invalid lock token was specified.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknow error.
Returns:
ITHit.WebDAV.Client.Folder Created folder object.

CreateFolderAsync(sName, sLockTokens, aProperties, fCallback){ITHit.WebDAV.Client.Request}

Creates a new folder with a specified name as child of this folder.
Name Type Description
sName string Name of the new folder.
sLockTokens string optional Lock token for ITHit.WebDAV.Client.Folder folder.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> Additional properties requested from server. Default is empty array.
fCallback ITHit.WebDAV.Client.Folder~CreateFolderAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function (oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oAsyncResult.Result;

    oFolder.CreateFolderAsync(sFolderName, null, null, function (oAsyncResult) {

        if (oAsyncResult.IsSuccess) {
            /** @typedef {ITHit.WebDAV.Client.Folder} oNewFolder */
            var oNewFolder = oAsyncResult.Result;

            console.log(oNewFolder.Href);
        } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException) {
            console.log('Folder already exists.');
        }

        fCallback(oAsyncResult);
    });
});

CreateLockNull(sNewItemName, sLockScope, bDeep, sOwner, iTimeout){ITHit.WebDAV.Client.LockInfo}

Locks name for later use.
Name Type Description
sNewItemName string Name of new item.
sLockScope string Scope of the lock.
bDeep boolean Whether to lock entire subtree.
sOwner string Owner of the lock.
iTimeout number TimeOut after which lock expires.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This folder doesn't exist on the server.(Server in fact returns Conflict)
  • ITHit.WebDAV.Client.Exceptions.LockedException This folder is locked and no or invalid lock token was specified.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The client, for reasons the server chooses not to specify, cannot apply the lock.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.LockInfo Instance of LockInfo object with information about created lock.

inherited Delete(oLockTokens)

Deletes this item.
Name Type Description
oLockTokens ITHit.WebDAV.Client.LockUriTokenPair optional Lock tokens for this item or any locked child item.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.LockedException This folder or any child item is locked and no or invalid lock token was specified.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException User has not enough rights to perform this operation.
  • ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException Trying to delete lock-null item. Lock-null items must be deleted using Unlock method.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited DeleteAsync(oLockTokens, fCallback){ITHit.WebDAV.Client.Request}

Deletes this item.
Name Type Description
oLockTokens ITHit.WebDAV.Client.LockUriTokenPair Lock tokens for this item or any locked child item.
fCallback ITHit.WebDAV.Client.HierarchyItem~DeleteAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/my_folder/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oAsyncResult.Result;

    oFolder.DeleteAsync(null, function(oAsyncResult) {

        if (oAsyncResult.IsSuccess) {
            console.log('Folder successfully deleted.');
        } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.WebDavHttpException) {
            var sErrorText = oAsyncResult.Error.Message + ' ' + oAsyncResult.Error.Status.Code + ' ' +
                oAsyncResult.Error.Status.Description;

            // Find which items failed to delete.
            for(var i = 0, l = oAsyncResult.Error.Multistatus.Responses.length; i < l; i++) {
                var oResponse = oAsyncResult.Error.Multistatus.Responses[i];
                sErrorText += '\n' + oResponse.Href + ' ' + oResponse.Status.Code + ' ' +
                oResponse.Status.Description;
            }

            console.log('Delete error: ' + sErrorText);
        } else {
            console.log('Delete error: ' + String(oAsyncResult.Error));
        }

        fCallback(oAsyncResult);
    });
});

inherited GetAllProperties(){Array.<ITHit.WebDAV.Client.Property>}

Retrieves all custom properties exposed by the item.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
Array.<ITHit.WebDAV.Client.Property> List of Property objects.

inherited GetAllPropertiesAsync(fCallback){ITHit.WebDAV.Client.Request}

Retrieves all custom properties exposed by the item.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~GetAllPropertiesAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    oFile.GetAllPropertiesAsync(function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Property[]} aProperties */
        var aProperties = oAsyncResult.Result;

        for (var i = 0, l = aProperties.length; i < l; i++) {
            console.log(aProperties[i].Name + ': ' + aProperties[i].StringValue());
        }

        fCallback(oAsyncResult);
    });
});

GetChildren(bRecursively, aProperties){Array.<ITHit.WebDAV.Client.HierarchyItem>}

This method returns all items contained in the folder, which may be very large. To limit amount of items returned and get only a single results page use GetPageAsync function instead.
Name Type Description
bRecursively boolean optional Indicates if all subtree of children should be return. Default is false.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. If null is specified, only default properties are returned.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
Array.<ITHit.WebDAV.Client.HierarchyItem> Array of file and folder objects.

GetChildrenAsync(bRecursively, aProperties, fCallback){ITHit.WebDAV.Client.Request}

This method returns all items contained in the folder, which may be very large. To limit amount of items returned and get only a single results page use GetPageAsync function instead.
Name Type Description
bRecursively boolean Indicates if all subtree of children should be return. Default is false.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> Additional properties requested from server. If null is specified, only default properties are returned.
fCallback ITHit.WebDAV.Client.Folder~GetChildrenAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.

GetFile(sName){ITHit.WebDAV.Client.File}

Gets the specified file from server.
Name Type Description
sName string Name of the file.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.UnauthorizedException Incorrect credentials provided or insufficient permissions to access the requested item.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The requested file doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The server refused to fulfill the request.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.File File corresponding to requested path.

GetFileAsync(sName, fCallback){ITHit.WebDAV.Client.Request}

Gets the specified file from server.
Name Type Description
sName string Name of the file.
fCallback ITHit.WebDAV.Client.Folder~GetFileAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/Products/';
var sFileName = 'myfile.txt';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.GetFileAsync(sFileName, function(oFileAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.File} oFile */
        var oFile = oFileAsyncResult.Result;

        console.log('File `' + oFile.DisplayName + '` successful loaded from folder `' + oFolder.DisplayName + '`.');

        fCallback(oFileAsyncResult);
    });
});

GetFolder(sName){ITHit.WebDAV.Client.Folder}

Gets the specified folder from server.
Name Type Description
sName string Name of the folder.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.UnauthorizedException Incorrect credentials provided or insufficient permissions to access the requested item.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The requested folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The server refused to fulfill the request.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.Folder Folder object corresponding to requested path.

GetFolderAsync(sName, fCallback){ITHit.WebDAV.Client.Request}

Gets the specified folder from server.
Name Type Description
sName string Name of the folder.
fCallback ITHit.WebDAV.Client.Folder~GetFolderAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Gets the specified item from server.
Name Type Description
sName string Name of the item.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.UnauthorizedException Incorrect credentials provided or insufficient permissions to access the requested item.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The requested folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The server refused to fulfill the request.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.HierarchyItem Item object corresponding to requested path.

GetItemAsync(sName, fCallback){ITHit.WebDAV.Client.Request}

Gets the specified item from server.
Name Type Description
sName string Name of the item.
fCallback ITHit.WebDAV.Client.Folder~GetItemAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.

GetPageAsync(aProperties, nOffset, nResults, aOrderProperties, fCallback){ITHit.WebDAV.Client.Request}

Gets specified number of children of this folder that correspond to requested offset and sorting. Use GetSupportedFeaturesAsync() function to detect if paging is supported.
Name Type Description
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. If null is specified, only default properties are returned.
nOffset number optional The number of items to skip before returning the remaining items.
nResults number optional The number of items to return.
aOrderProperties Array.<ITHit.WebDAV.Client.OrderProperty> optional List of order properties.
fCallback ITHit.WebDAV.Client.Folder~GetPageAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var offset = 10;
var pageSize = 5;
var sortColumns = [new ITHit.WebDAV.Client.OrderProperty(new ITHit.WebDAV.Client.PropertyName('name', 'myNs'), true)];
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function (oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.GetPageAsync(null, offset, pageSize, sortColumns, function (oPagingAsyncResult) {

        /** @type {ITHit.WebDAV.Client.HierarchyItem[]} aItems */
        var aItems = oPagingAsyncResult.Result.Page;                                // Items on the requested page.
        /** @type {number} totalPages */
        var totalPages = Math.ceil(oPagingAsyncResult.Result.TotalItems / pageSize); // Total number of pages.
    });
});

inherited GetParent(aProperties){ITHit.WebDAV.Client.Folder}

Retrieves parent hierarchy item of this item.
Name Type Description
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. Default is empty array.
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.Folder Parent hierarchy item of this item. Null for root item.

inherited GetParentAsync(aProperties, fCallback){ITHit.WebDAV.Client.Request}

Retrieves parent hierarchy item of this item.
Name Type Description
aProperties Array.<ITHit.WebDAV.Client.PropertyName> Additional properties requested from server. Default is empty array.
fCallback ITHit.WebDAV.Client.HierarchyItem~GetParentAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/my_folder/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.GetParentAsync(null, function(oParentAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Folder} oParentFolder */
        var oParentFolder = oParentAsyncResult.Result;

        console.log('Parent folder: ' + oParentFolder.DisplayName);

        oParentFolder.GetParentAsync(null, function(oParentParentAsyncResult) {

            /** @typedef {ITHit.WebDAV.Client.Folder} oParentFolder */
            var oParentParentFolder = oParentParentAsyncResult.Result;

            if (oParentParentFolder === null) {
                console.log('Folder is root!');
            }

            fCallback(oParentAsyncResult, oParentParentAsyncResult);
        });
    });
});

inherited GetProperty(oPropName){*}

Get additional property
Name Type Description
oPropName ITHit.WebDAV.Client.PropertyName Property name.
Deprecated
Use Properties.Find() for get property value
Returns:
*

inherited GetPropertyNames(){Array.<ITHit.WebDAV.Client.PropertyName>}

Returns names of all custom properties exposed by this item.
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
Array.<ITHit.WebDAV.Client.PropertyName> List of PropertyName objects.

inherited GetPropertyNamesAsync(fCallback){ITHit.WebDAV.Client.Request}

Returns names of all custom properties exposed by this item.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~GetPropertyNamesAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    oFile.GetPropertyNamesAsync(function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Property[]} aProperties */
        var aPropertyNames = oAsyncResult.Result;

        if (oAsyncResult.IsSuccess) {
            console.log('Properties: ' + aPropertyNames.join(', '));
        }

        fCallback(oAsyncResult);
    });
});

inherited GetPropertyValues(aNames){Array.<ITHit.WebDAV.Client.Property>}

Retrieves values of specific properties.
Name Type Description
aNames Array.<ITHit.WebDAV.Client.PropertyName> optional Array of requested properties with values.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.PropertyForbiddenException User has not enough rights to obtain one of requested properties.
  • ITHit.WebDAV.Client.Exceptions.PropertyNotFoundException If one of requested properties was not found.
  • ITHit.WebDAV.Client.Exceptions.PropertyException Server returned unknown error for specific property.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
Array.<ITHit.WebDAV.Client.Property> List of Property objects.

inherited GetPropertyValuesAsync(aNames, fCallback){ITHit.WebDAV.Client.Request}

Retrieves values of specific properties.
Name Type Description
aNames Array.<ITHit.WebDAV.Client.PropertyName>
fCallback ITHit.WebDAV.Client.HierarchyItem~GetPropertyValuesAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    var oPropertyName = new ITHit.WebDAV.Client.PropertyName('myname', 'mynamespace');

    oFile.GetPropertyValuesAsync([oPropertyName], function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Property[]} aProperties */
        var aProperties = oAsyncResult.Result;

        console.log('Value of `mynamespace:myname`: ' + aProperties[0].StringValue());

        fCallback(oAsyncResult);
    });
});

GetSearchPageAsync(sSearchQuery, aProperties, nOffset, nResults, fCallback){ITHit.WebDAV.Client.Request}

Searches folder by search string. Returns specified number of search result items that correspond to requested offset and sorting. Use GetSupportedFeaturesAsync() function to detect if paging is supported.
Name Type Description
sSearchQuery string String of search query.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. If null is specified, only default properties are returned.
nOffset number optional The number of items to skip before returning the remaining items.
nResults number optional The number of items to return.
fCallback ITHit.WebDAV.Client.Folder~GetSearchPageAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var offset = 10;
var pageSize = 5;
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function (oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.GetSearchPageAsync('my_file', null, offset, pageSize, function (oPagingAsyncResult) {

        /** @type {ITHit.WebDAV.Client.HierarchyItem[]} aItems */
        var aItems = oPagingAsyncResult.Result.Page;                                // Items on the requested page.
        /** @type {number} totalPages */
        var totalPages = Math.ceil(oPagingAsyncResult.Result.TotalItems / pageSize); // Total number of pages.

        fCallback(oAsyncResult);
    });
});

GetSearchPageByQueryAsync(oSearchQuery, nOffset, nResults, fCallback){ITHit.WebDAV.Client.Request}

Searches folder by query. Returns specified number of search result items that correspond to requested offset and sorting. Use GetSupportedFeaturesAsync() function to detect if paging is supported.
Name Type Description
oSearchQuery ITHit.WebDAV.Client.SearchQuery Object with search query conditions.
nOffset number optional The number of items to skip before returning the remaining items.
nResults number optional The number of items to return.
fCallback ITHit.WebDAV.Client.Folder~GetSearchPageByQueryAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/Products/';
var offset = 10;
var pageSize = 5;
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function (oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    // Build search query
    var oSearchQuery = new ITHit.WebDAV.Client.SearchQuery('my_%');

    // By default WebDAV Ajax Client search by DisplayName property.
    // You can add other properties to this list.
    oSearchQuery.LikeProperties.push(new ITHit.WebDAV.Client.PropertyName('creator-displayname', 'DAV:'));
    oSearchQuery.LikeProperties.push(new ITHit.WebDAV.Client.PropertyName('comment', 'DAV:'));

    // Disable search by file content
    oSearchQuery.EnableContains = false;

    oFolder.GetSearchPageByQueryAsync(oSearchQuery, offset, pageSize, function (oPagingAsyncResult) {

        /** @type {ITHit.WebDAV.Client.HierarchyItem[]} aItems */
        var aItems = oPagingAsyncResult.Result.Page;                                // Items on the requested page.
        /** @type {number} totalPages */
        var totalPages = Math.ceil(oPagingAsyncResult.Result.TotalItems / pageSize); // Total number of pages.

        fCallback(oAsyncResult);
    });
});

inherited GetSource(){Array.<ITHit.WebDAV.Client.Source>|null}

Retrieves media type independent links.
Throws:
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.PropertyNotFoundException If property is not supported.
  • ITHit.WebDAV.Client.Exceptions.PropertyException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
Array.<ITHit.WebDAV.Client.Source> | null Media type independent links or null.

inherited GetSourceAsync(fCallback){ITHit.WebDAV.Client.Request}

Retrieves media type independent links.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~GetSourceAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.

inherited GetSupportedFeaturesAsync(fCallback){ITHit.WebDAV.Client.Request}

Gets features supported by this item, such as WebDAV class support.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~GetSupportedFeaturesAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oAsyncResult.Result;

    oFolder.GetSupportedFeaturesAsync(function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.OptionsInfo} oOptionsInfo */
        var oOptionsInfo = oAsyncResult.Result;

        console.log('Locking support: ' + (oOptionsInfo.Features & ITHit.WebDAV.Client.Features.Class2 !== 0 ? 'yes' : 'no'));
        console.log('Resumable upload support: ' + (oOptionsInfo.Features & ITHit.WebDAV.Client.Features.ResumableUpload !== 0 ? 'yes' : 'no'));

        fCallback(oAsyncResult);
    });
});

ItemExists(sName){boolean}

Checks whether specified item exists in the folder.
Name Type Description
sName string Name of the item.
Deprecated
Use asynchronous method instead
Returns:
boolean Returns true, if specified item exists; false, otherwise.

ItemExistsAsync(sName, fCallback){ITHit.WebDAV.Client.Request}

Checks whether specified item exists in the folder.
Name Type Description
sName string Name of the item.
fCallback ITHit.WebDAV.Client.Folder~ItemExistsAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oAsyncResult.Result;

    oFolder.ItemExistsAsync('my_folder', function(oAsyncResult) {

        if (oAsyncResult.Result) {
            console.log('Item exists');
        } else {
            console.log('Item not found');
        }

        fCallback(oAsyncResult);
    });
});

inherited Lock(sLockScope, bDeep, sOwner, iTimeout){ITHit.WebDAV.Client.LockInfo}

Locks the item.
Name Type Description
sLockScope string Scope of the lock.
bDeep boolean Whether to lock entire subtree.
sOwner string Owner of the lock.
iTimeout number Timeout after which lock expires.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.PreconditionFailedException The included lock token was not enforceable on this resource or the server could not satisfy the request in the lockinfo XML element.
  • ITHit.WebDAV.Client.Exceptions.LockedException The resource is locked. The method has been rejected.
  • ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException The item does not support locking.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.LockInfo Instance of LockInfo with information about created lock.

inherited LockAsync(sLockScope, bDeep, sOwner, iTimeout, fCallback){ITHit.WebDAV.Client.Request}

Locks the item. If the lock was successfully applied, the server will return a lock token. You will pass this lock token back to the server when updating and unlocking the item. The actual lock time applied by the server may be different from the one requested by the client.
Name Type Description
sLockScope string Scope of the lock. See LockScope Enumeration ITHit.WebDAV.Client.LockScope
bDeep boolean Whether to lock entire subtree.
sOwner string Owner of the lock.
iTimeout number Timeout after which lock expires. Pass -1 to request an infinite timeout.
fCallback ITHit.WebDAV.Client.HierarchyItem~LockAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    if (oFile.SupportedLocks.length === 0) {
        console.log('Locks are not supported.');
        return;
    }

    oFile.LockAsync(ITHit.WebDAV.Client.LockScope.Shared, false, 'User 1', -1, function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.LockInfo} oLockInfo */
        var oLockInfo = oAsyncResult.Result;

        if (oAsyncResult.IsSuccess) {
            console.log('Locks token is: ' + oLockInfo.LockToken.LockToken);
        }

        fCallback(oAsyncResult);
    });
});

inherited MoveTo(oDestinationFolder, sDestinationName, bOverwrite, oLockTokens)

Moves this item to another location.
Name Type Description
oDestinationFolder ITHit.WebDAV.Client.Folder Folder to move to.
sDestinationName string Name to assign to moved item.
bOverwrite boolean Whether existing destination item shall be overwritten.
oLockTokens string | Array.<ITHit.WebDAV.Client.LockUriTokenPair> optional Lock tokens for item to be moved, for destination folder or file to be overwritten that are locked.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The source and destination URIs are the same.
  • ITHit.WebDAV.Client.Exceptions.ConflictException A resource cannot be created at the destination until one or more intermediate collections have been created.
  • ITHit.WebDAV.Client.Exceptions.PreconditionFailedException The destination resource exists and overwrite was false.
  • ITHit.WebDAV.Client.Exceptions.LockedException The destination folder or items to be overwritten were locked or source items were locked.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error for specific resource.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited MoveToAsync(oDestinationFolder, sDestinationName, bOverwrite, oLockTokens, fCallback){ITHit.WebDAV.Client.Request}

Moves this item to another location.
Name Type Description
oDestinationFolder ITHit.WebDAV.Client.Folder Folder to move to.
sDestinationName string Name to assign to moved item.
bOverwrite boolean Whether existing destination item shall be overwritten.
oLockTokens string | Array.<ITHit.WebDAV.Client.LockUriTokenPair> Lock tokens for item to be moved, for destination folder or file to be overwritten that are locked.
fCallback ITHit.WebDAV.Client.HierarchyItem~MoveToAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sDestinationFolderAbsolutePath = 'http://localhost:87654/Sales/';
var sSourceFolderAbsolutePath = 'http://localhost:87654/Products/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sSourceFolderAbsolutePath, null, function(oSourceFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oSourceFolder */
    var oSourceFolder = oSourceFolderAsyncResult.Result;

    webDavSession.OpenFolderAsync(sDestinationFolderAbsolutePath, null, function(oDestinationFolderAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.Folder} oDestinationFolder */
        var oDestinationFolder = oDestinationFolderAsyncResult.Result;

        oSourceFolder.MoveToAsync(oDestinationFolder, oSourceFolder.DisplayName, false, null, function(oAsyncResult) {

            if (oAsyncResult.IsSuccess) {
                console.log('Move successfully completed.');
            } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.PreconditionFailedException) {
                console.log('The item with such name exists and `overwrite` was `false`.');
            } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.WebDavHttpException) {
                var sErrorText = oAsyncResult.Error.Message + ' ' + oAsyncResult.Error.Status.Code + ' ' +
                    oAsyncResult.Error.Status.Description;

                // Find which items failed to move.
                for(var i = 0, l = oAsyncResult.Error.Multistatus.Responses.length; i < l; i++) {
                    var oResponse = oAsyncResult.Error.Multistatus.Responses[i];
                    sErrorText += '\n' + oResponse.Href + ' ' + oResponse.Status.Code + ' ' +
                    oResponse.Status.Description;
                }

                console.log('Move error: ' + sErrorText);
            } else {
                console.log('Move error: ' + String(oAsyncResult.Error));
            }

            fCallback(oAsyncResult);
        });
    });
});

inherited Refresh()

Refreshes item loading data from server.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.UnauthorizedException Incorrect credentials provided or insufficient permissions to access the requested item.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The requested folder doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.ForbiddenException The server refused to fulfill the request.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited RefreshAsync(fCallback){ITHit.WebDAV.Client.Request}

Refreshes item loading data from server.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~RefreshAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    // Return file content length
    console.log('Content length: ' + oFile.ContentLength);

    // Update file content
    oFile.WriteContentAsync('My updated content', null, null, function() {

        // Refresh item from server to read new content length
        oFile.RefreshAsync(function(oAsyncResult) {

            // Return file content length
            console.log('Content length: ' + oFile.ContentLength);

            fCallback(oAsyncResult, oFile);
        });
    });
});

inherited RefreshLock(sLockToken, iTimeout){ITHit.WebDAV.Client.LockInfo}

Prolongs the lock.
Name Type Description
sLockToken string Identifies lock to be prolonged.
iTimeout number New timeout to set.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.PreconditionFailedException The included lock token was not enforceable on this resource or the server could not satisfy the request in the lockinfo XML element.
  • ITHit.WebDAV.Client.Exceptions.LockedException The resource is locked, so the method has been rejected.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.
Returns:
ITHit.WebDAV.Client.LockInfo Instance of LockInfo with information about refreshed lock.

inherited RefreshLockAsync(sLockToken, iTimeout, fCallback){ITHit.WebDAV.Client.Request}

Prolongs the lock.
Name Type Description
sLockToken string Identifies lock to be prolonged.
iTimeout number New timeout to set.
fCallback ITHit.WebDAV.Client.HierarchyItem~RefreshLockAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    oFile.LockAsync(ITHit.WebDAV.Client.LockScope.Shared, false, 'User 1', 60, function(oLockAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.LockInfo} oLockInfo */
        var oLockInfo = oLockAsyncResult.Result;

        if (oLockAsyncResult.IsSuccess) {
            console.log('Lock timeout is: ' + oLockInfo.TimeOut);
        }

        oFile.RefreshLockAsync(oLockInfo.LockToken.toString(), 300, function(oRefreshAsyncResult) {

            /** @typedef {ITHit.WebDAV.Client.LockInfo} oLockInfo */
            var oRefreshedLockInfo = oRefreshAsyncResult.Result;

            if (oRefreshAsyncResult.IsSuccess) {
                console.log('Lock timeout is: ' + oRefreshedLockInfo.TimeOut);
            }

            fCallback(oLockAsyncResult, oRefreshAsyncResult);
        });
    });
});

SearchAsync(sSearchQuery, aProperties, fCallback){ITHit.WebDAV.Client.Request}

Searches folder by search string. To limit amount of items returned and get only a single results page use GetSearchPageAsync function instead.
Name Type Description
sSearchQuery string String of search query.
aProperties Array.<ITHit.WebDAV.Client.PropertyName> optional Additional properties requested from server. If null is specified, only default properties are returned.
fCallback ITHit.WebDAV.Client.Folder~SearchAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    oFolder.SearchAsync('my_file', null, function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.HierarchyItems[]} aItems */
        var aItems = oAsyncResult.Result;

        for (var i = 0, l = aItems.length; i < l; i++) {
            console.log(aItems[i].DisplayName);
        }

        fCallback(oAsyncResult);
    });
});

SearchByQueryAsync(oSearchQuery, fCallback){ITHit.WebDAV.Client.Request}

This method returns all items found on the server, which may be very large. To limit amount of items returned and get only a single results page use GetSearchPageByQueryAsync function instead.
Name Type Description
oSearchQuery ITHit.WebDAV.Client.SearchQuery Object with search query conditions.
fCallback ITHit.WebDAV.Client.Folder~SearchByQueryAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/Products/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oFolderAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oFolderAsyncResult.Result;

    // Build search query
    var oSearchQuery = new ITHit.WebDAV.Client.SearchQuery('my_%');

    // By default WebDAV Ajax Client search by DisplayName property.
    // You can add other properties to this list.
    oSearchQuery.LikeProperties.push(new ITHit.WebDAV.Client.PropertyName('creator-displayname', 'DAV:'));
    oSearchQuery.LikeProperties.push(new ITHit.WebDAV.Client.PropertyName('comment', 'DAV:'));

    // Disable search by file content
    oSearchQuery.EnableContains = false;

    oFolder.SearchByQueryAsync(oSearchQuery, function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.HierarchyItems[]} aItems */
        var aItems = oAsyncResult.Result;

        for (var i = 0, l = aItems.length; i < l; i++) {
            console.log(aItems[i].DisplayName);
        }

        fCallback(oAsyncResult);
    });
});
Gets features supported by this item, such as WebDAV class support.
Deprecated
Use asynchronous method instead
Returns:
ITHit.WebDAV.Client.OptionsInfo OptionsInfo object containing information about features supported by server.

inherited SupportedFeaturesAsync(fCallback){ITHit.WebDAV.Client.Request}

Gets features supported by this item, such as WebDAV class support.
Name Type Description
fCallback ITHit.WebDAV.Client.HierarchyItem~GetSupportedFeaturesAsyncCallback Function to call when operation is completed.
Deprecated
Use GetSupportedFeaturesAsync method
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFolderAbsolutePath = 'http://localhost:87654/';
var fCallback = function() {};

webDavSession.OpenFolderAsync(sFolderAbsolutePath, null, function(oAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.Folder} oFolder */
    var oFolder = oAsyncResult.Result;

    oFolder.GetSupportedFeaturesAsync(function(oAsyncResult) {

        /** @typedef {ITHit.WebDAV.Client.OptionsInfo} oOptionsInfo */
        var oOptionsInfo = oAsyncResult.Result;

        console.log('Locking support: ' + (oOptionsInfo.Features & ITHit.WebDAV.Client.Features.Class2 !== 0 ? 'yes' : 'no'));
        console.log('Resumable upload support: ' + (oOptionsInfo.Features & ITHit.WebDAV.Client.Features.ResumableUpload !== 0 ? 'yes' : 'no'));

        fCallback(oAsyncResult);
    });
});

inherited Unlock(sLockToken)

Removes the lock.
Name Type Description
sLockToken string optional Identifies lock to be prolonged.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.PreconditionFailedException The item is not locked.
  • ITHit.WebDAV.Client.Exceptions.MethodNotAllowedException The item does not support locking.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException The item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited UnlockAsync(sLockToken, fCallback){ITHit.WebDAV.Client.Request}

Removes the lock.
Name Type Description
sLockToken string Identifies lock to be prolonged.
fCallback ITHit.WebDAV.Client.HierarchyItem~UnlockAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.Request Request object.
Example
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var sLockToken = 'f36726d1-0671-4f6f-8445-c7d10e42a08e';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    oFile.UnlockAsync(sLockToken, function(oAsyncResult) {

        if (oAsyncResult.IsSuccess) {
            console.log('File is unlocked');
        }

        fCallback(oAsyncResult);
    });
});

inherited UpdateProperties(oPropertiesToAddOrUpdate, oPropertiesToDelete, sLockToken)

Updates values of properties exposed by this item.
Name Type Description
oPropertiesToAddOrUpdate Array.<ITHit.WebDAV.Client.Property> Properties to be updated.
oPropertiesToDelete Array.<ITHit.WebDAV.Client.PropertyName> Names of properties to be removed from this item.
sLockToken string optional Lock token.
Deprecated
Use asynchronous method instead
Throws:
  • ITHit.WebDAV.Client.Exceptions.LockedException The item is locked and no or invalid lock token was provided.
  • ITHit.WebDAV.Client.Exceptions.PropertyForbiddenException Cannot alter one of the properties.
  • ITHit.WebDAV.Client.Exceptions.PropertyConflictException The client has provided a value whose semantics are not appropriate for the property. This includes trying to set read-only properties.
  • ITHit.WebDAV.Client.Exceptions.NotFoundException This item doesn't exist on the server.
  • ITHit.WebDAV.Client.Exceptions.PropertyException Server returned unknown error for specific property.
  • ITHit.WebDAV.Client.Exceptions.WebDavHttpException Server returned unknown error.
  • ITHit.WebDAV.Client.Exceptions.WebDavException Unexpected error occurred.

inherited UpdatePropertiesAsync(oPropertiesToAddOrUpdate, oPropertiesToDelete, sLockToken, fCallback){ITHit.WebDAV.Client.WebDavRequest|null}

Updates values of properties exposed by this item.
Name Type Description
oPropertiesToAddOrUpdate Array.<ITHit.WebDAV.Client.Property> Properties to be updated.
oPropertiesToDelete Array.<ITHit.WebDAV.Client.PropertyName> Names of properties to be removed from this item.
sLockToken string optional Lock token.
fCallback ITHit.WebDAV.Client.HierarchyItem~UpdatePropertiesAsyncCallback Function to call when operation is completed.
Returns:
ITHit.WebDAV.Client.WebDavRequest | null WebDAV request
Examples
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    var oPropertyName = new ITHit.WebDAV.Client.PropertyName('myname', 'mynamespace');
    var oProperty = new ITHit.WebDAV.Client.Property(oPropertyName, 'Test value');

    oFile.UpdatePropertiesAsync([oProperty], null, null, function(oAsyncResult) {

        if (oAsyncResult.IsSuccess) {
            console.log('Property `mynamespace:myname` successfully added to file!');
        } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.PropertyException) {
            var sErrorText = oAsyncResult.Error.Message + ' ' + oAsyncResult.Error.Status.Code + ' ' +
                oAsyncResult.Error.Status.Description;

            // Find which properties failed to add/update/delete.
            for(var i = 0, l = oAsyncResult.Error.Multistatus.Responses.length; i < l; i++) {
                var oResponse = oAsyncResult.Error.Multistatus.Responses[i];
                sErrorText += '\n' + oResponse.PropertyName.NamespaceUri + ':' + oResponse.PropertyName.Name + ' ' +
                    oResponse.Status.Code + ' ' + oResponse.Status.Description;
            }

            console.log('Update properties error: ' + sErrorText);
        } else {
            console.log('Update properties error: ' + String(oAsyncResult.Error));
        }

        fCallback(oAsyncResult);
    });
});
var webDavSession = new ITHit.WebDAV.Client.WebDavSession();
var sFileAbsolutePath = 'http://localhost:87654/myfile.txt';
var fCallback = function() {};

webDavSession.OpenFileAsync(sFileAbsolutePath, null, function(oFileAsyncResult) {

    /** @typedef {ITHit.WebDAV.Client.File} oFile */
    var oFile = oFileAsyncResult.Result;

    var oPropertyName = new ITHit.WebDAV.Client.PropertyName('myname', 'mynamespace');

    oFile.UpdatePropertiesAsync(null, [oPropertyName], null, function(oAsyncResult) {

        if (oAsyncResult.IsSuccess) {
            console.log('Property `mynamespace:myname` successfully deleted from file!');
        } else if (oAsyncResult.Error instanceof ITHit.WebDAV.Client.Exceptions.PropertyException) {
            var sErrorText = oAsyncResult.Error.Message + ' ' + oAsyncResult.Error.Status.Code + ' ' +
                oAsyncResult.Error.Status.Description;

            // Find which properties failed to add/update/delete.
            for(var i = 0, l = oAsyncResult.Error.Multistatus.Responses.length; i < l; i++) {
                var oResponse = oAsyncResult.Error.Multistatus.Responses[i];
                sErrorText += '\n' + oResponse.PropertyName.NamespaceUri + ':' + oResponse.PropertyName.Name + ' ' +
                oResponse.Status.Code + ' ' + oResponse.Status.Description;
            }

            console.log('Update properties error: ' + sErrorText);
        } else {
            console.log('Update properties error: ' + String(oAsyncResult.Error));
        }

        fCallback(oAsyncResult);
    });
});

Type Definitions

CreateFileAsyncCallback(oResult)

Callback function to be called when a file is created on the server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.File Created file object.

CreateFolderAsyncCallback(oResult)

Callback function to be called when a folder is created on the server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.Folder Created folder object.

GetChildrenAsyncCallback(oResult)

Callback function to be called when children items loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result Array.<ITHit.WebDAV.Client.HierarchyItem> Array of file and folder objects.

GetFileAsyncCallback(oResult)

Callback function to be called when file loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.File File corresponding to requested path.

GetFolderAsyncCallback(oResult)

Callback function to be called when folder loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.Folder Folder object corresponding to requested path.

GetItemAsyncCallback(oResult)

Callback function to be called when item loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.HierarchyItem Item object corresponding to requested path.

GetPageAsyncCallback(oResult)

Callback function to be called when children items loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.PageResults sinle page results.

GetSearchPageAsyncCallback(oResult)

Callback function to be called when search is complete and items are loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.PageResults sinle page results.

GetSearchPageByQueryAsyncCallback(oResult)

Callback function to be called when search is complete and items are loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.PageResults sinle page results.

ItemExistsAsyncCallback(oResult)

Callback function to be called when check request is complete.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result boolean Returns true, if specified item exists; false, otherwise.

OpenItemAsyncCallback(oResult)

Callback function to be called when folder loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result ITHit.WebDAV.Client.Folder Loaded folder object.

SearchAsyncCallback(oResult)

Callback function to be called when search is complete and items are loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object.
Name Type Description
Result Array.<ITHit.WebDAV.Client.HierarchyItem> Array of file objects.

SearchByQueryAsyncCallback(oResult)

Callback function to be called when search is complete and items are loaded from server.
Name Type Description
oResult ITHit.WebDAV.Client.AsyncResult Result object
Name Type Description
Result Array.<ITHit.WebDAV.Client.HierarchyItem> Array of file objects.