Managing Custom Properties with JavaScript WebDAV Library
Using the library you can manage custom properties on a WebDAV server. Custom properties are supported by any Class 1 WebDAV server. Each custom property has name, namespace and value.
Enumerating Custom Properties
var oNS = ITHit.WebDAV.Client;
var session = new oNS.WebDavSession();
var item = session.OpenResource("http://server/folder/img5.gif");
var properties = item.GetAllProperties();
for(var i=0; i<properties.length; i++)
{
document.getElementById("container").innerHTML +=
properties[i].Name.NamespaceUri + " " +
properties[i].Name.Name + " " +
properties[i].StringValue() + "<br/>";
}
Adding and Updating Custom Properties
var oNS = ITHit.WebDAV.Client;
var session = new oNS.WebDavSession();
var item = session.OpenResource("http://server/image005.gif");
var propsToAddAndUpdate = new Array();
propsToAddAndUpdate[0] = new oNS.Property(new oNS.PropertyName("Ammount", "Sales"), "1200");
propsToAddAndUpdate[1] = new oNS.Property(new oNS.PropertyName("ManagerApproved", "Sales"), "Yes");
propsToAddAndUpdate[2] = new oNS.Property(new oNS.PropertyName("Branch", "Sales"), "EMEA Region");
item.UpdateProperties(propsToAddAndUpdate, null);
The first parameter passed to UpdateProperties is an array of custom properties to be created or updated. The second parameter – array of properties to be deleted.
Deleting Custom Properties
var oNS = ITHit.WebDAV.Client;
var session = new oNS.WebDavSession();
var item = session.OpenResource("http://server/folder/img5.gif");
var propsToDelete = new Array();
propsToDelete[0] = new oNS.PropertyName("Ammount", "Sales");
propsToDelete[1] = new oNS.PropertyName("ManagerApproved", "Sales");
propsToDelete[2] = new oNS.PropertyName("Branch", "Sales");
item.UpdateProperties(null, propsToDelete);
Analyzing Which Properties Failed to Add/Update/Delete
try
{
item.UpdateProperties(propsToAddAndUpdate, null);
}
catch (e)
{
if(e instanceof oNS.Exceptions.PropertyException)
{
document.getElementById("container").innerHTML +=
e.Message + " " + e.Status.Code + " " +
e.Status.Description + "<br/>";
// Find which properties failed to add/update/delete
for(var i=0; i<e.Multistatus.Responses.length; i++)
{
var propInfo = e.Multistatus.Responses[i];
document.getElementById("container").innerHTML +=
propInfo.PropertyName.NamespaceUri + ":" +
propInfo.PropertyName.Name + " " +
propInfo.Status.Code + " " +
propInfo.Status.Description + "<br/>";
}
}
else
throw e; // unexpected error
}
comments powered by
|