Files
BeWoPlaner/BeWoPlanerMobil/node_modules/wd/lib/element.js
Lyndon Jetten fda2c306b5 MoK: Report Viewer hinzugefügt
FaC: Das alte Flag von Terminen, die in die Zeiterfassung übernommen worden sind, wird ebenfalls berücksichtigt.
2023-03-13 19:39:04 +01:00

57 lines
1.5 KiB
JavaScript

//Element object
//Wrapper around browser methods
var __slice = Array.prototype.slice;
var _ = require("lodash")
, utils = require("./utils.js")
, niceArgs = utils.niceArgs
, niceResp = utils.niceResp
, elementCommands = require('./element-commands');
var Element = function(value, browser) {
this.value = value;
this.browser = browser;
if(!value){
throw new Error("no value passed to Element constructor");
}
if(!browser){
throw new Error("no browser passed to Element constructor");
}
};
Element.prototype.emit = function() {
this.browser.emit.apply(this.browser, __slice.call(arguments, 0));
};
Element.prototype.toString = function () {
return String(this.value);
};
Element.prototype.toJSON = function () {
return { ELEMENT: this.value };
};
_(elementCommands).each(function(fn, name) {
Element.prototype[name] = function() {
var _this = this;
var fargs = utils.varargs(arguments);
this.emit('command', "CALL" , "element." + name + niceArgs(fargs.all));
var cb = function(err) {
if(err) {
err.message = '[element.' + name + niceArgs(fargs.all) + "] " + err.message;
fargs.callback(err);
} else {
var cbArgs = __slice.call(arguments, 0);
_this.emit('command', "RESPONSE" , "element." + name + niceArgs(fargs.all),
niceResp(_.drop(cbArgs)));
fargs.callback.apply(null, cbArgs);
}
};
var args = fargs.all.concat([cb]);
return fn.apply(this, args);
};
});
module.exports = Element;