summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/js/wizard/wizardObject.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/user_ldap/js/wizard/wizardObject.js')
-rw-r--r--apps/user_ldap/js/wizard/wizardObject.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/apps/user_ldap/js/wizard/wizardObject.js b/apps/user_ldap/js/wizard/wizardObject.js
new file mode 100644
index 00000000000..a90f1533a26
--- /dev/null
+++ b/apps/user_ldap/js/wizard/wizardObject.js
@@ -0,0 +1,60 @@
+
+/**
+ * Copyright (c) 2015, Arthur Schiwon <blizzz@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or later.
+ * See the COPYING-README file.
+ */
+
+OCA = OCA || {};
+
+(function() {
+ var initializing = false;
+ var superPattern = /xyz/.test(function() { xyz; }) ? /\b_super\b/ : /.*/;
+
+ /**
+ * @classdesc a base class that allows inheritance
+ *
+ * @abstrcact
+ * @constructor
+ */
+ var WizardObject = function(){};
+ WizardObject.subClass = function(properties) {
+ var _super = this.prototype;
+
+ initializing = true;
+ var proto = new this();
+ initializing = false;
+
+ for (var name in properties) {
+ proto[name] =
+ typeof properties[name] === "function" &&
+ typeof _super[name] === 'function' &&
+ superPattern.test(properties[name]) ?
+ (function (name, fn) {
+ return function () {
+ var tmp = this._super;
+ this._super = _super[name];
+ var ret = fn.apply(this, arguments);
+ this._super = tmp;
+ return ret;
+ };
+ })(name, properties[name]) :
+ properties[name];
+ };
+
+ function Class() {
+ if(!initializing && this.init) {
+ this.init.apply(this, arguments);
+ }
+ }
+
+ Class.prototype = proto;
+ Class.constructor = Class;
+ Class.subClass = arguments.callee;
+ return Class;
+ };
+
+ WizardObject.constructor = WizardObject;
+
+ OCA.LDAP.Wizard.WizardObject = WizardObject;
+})();