blob: 9e06b49064074b95a4f9aa50e7315c27463fda92 (
plain) (
tree)
|
|
(function(module, ns) {
var Abstract = ns.require('request/abstract'),
Template = ns.require('template'),
DavResponse = ns.require('sax/dav_response');
/**
* Creates a propfind request.
*
* @param {String} url location to make request.
* @param {Object} options options for propfind.
*/
function Propfind(url, options) {
Abstract.apply(this, arguments);
this.template = new Template('propfind');
this._props = [];
this.sax.registerHandler(
'DAV:/response',
DavResponse
);
this.xhr.headers['Depth'] = this.depth;
this.xhr.method = 'PROPFIND';
}
Propfind.prototype = {
__proto__: Abstract.prototype,
depth: 0,
/**
* Adds property to request.
*
* @param {String|Array} tagDesc tag description.
* @param {Object} [attr] optional tag attrs.
*/
prop: function(tagDesc, attr) {
this._props.push(this.template.tag(tagDesc, attr));
},
_createPayload: function() {
var content = this.template.tag('prop', this._props.join(''));
return this.template.render(content);
}
};
module.exports = Propfind;
}.apply(
this,
(this.Webcals) ?
[Webcals('request/abstract'), Webcals] :
[module, require('../webcals')]
));
|