cropit.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import Ember from 'ember';
  2. export default Ember.Service.extend({
  3. includedJs: false,
  4. loadedJs: false,
  5. load: function() {
  6. if (!this.get('includedJs')) {
  7. this._includeJs();
  8. }
  9. if (!this.get('loadedJs')) {
  10. return this._loadingPromise();
  11. } else {
  12. return this._loadedPromise();
  13. }
  14. },
  15. _includeJs: function() {
  16. this.loader.require('misago/js/cropit.js');
  17. this.set('includedJs', true);
  18. },
  19. _loadingPromise: function() {
  20. var self = this;
  21. return new Ember.RSVP.Promise(function(resolve) {
  22. var wait = function() {
  23. if (typeof Ember.$.fn.cropit === "undefined") {
  24. Ember.run.later(function () {
  25. wait();
  26. }, 200);
  27. } else {
  28. self.set('loadedJs', true);
  29. Ember.run(null, resolve);
  30. }
  31. };
  32. wait();
  33. });
  34. },
  35. _loadedPromise: function() {
  36. // we have already loaded croppic.js, resolve away!
  37. return new Ember.RSVP.Promise(function(resolve) {
  38. Ember.run(null, resolve);
  39. });
  40. }
  41. });