components.js 799 B

123456789101112131415161718192021222324252627
  1. (function (Misago) {
  2. 'use strict';
  3. var component = function(name, component) {
  4. if (this._components[name]) {
  5. if (arguments.length > 1) {
  6. var argumentsArray = [this._components[name]];
  7. for (var i = 1; i < arguments.length; i += 1) {
  8. argumentsArray.push(arguments[i]);
  9. }
  10. argumentsArray.push(this);
  11. return m.component.apply(undefined, argumentsArray);
  12. } else {
  13. return m.component(this._components[name], this);
  14. }
  15. } else if (component) {
  16. this._components[name] = component;
  17. } else {
  18. throw '"' + name + '" component is not registered and can\'t be created';
  19. }
  20. };
  21. Misago.addService('components', function(_) {
  22. _._components = {};
  23. _.component = component;
  24. });
  25. }(Misago.prototype));