示例#1
0
 speciesOptions: Ember.computed('water', function() {
   if ( this.get('water') === 'river' || this.get('water') === 'stillwater' ) {
     return Ember.ArrayProxy.create({ content: freshwaterSpecies });
   } else {
     return Ember.ArrayProxy.create({ content: saltwaterSpecies });
   }
 }),
 queryOptions: function(query, deferred) {
   if (alreadyLoadedOnce) {
     deferred.resolve({data: Ember.ArrayProxy.create({ content: moreContent }), more: false});
   } else {
     alreadyLoadedOnce = true;
     deferred.resolve({data: Ember.ArrayProxy.create({ content: firstContent }), more: true});
   }
 }
示例#3
0
test('history filtering', function() {
  expect(2);

  var component = this.subject();

  var history = Ember.ArrayProxy.create({
    content: [
      Ember.Object.create({
        name: 'HISTORY',
        status: 1
      }),
      Ember.Object.create({
        name: '1HISTORY',
        status: 2
      })
    ]
  });

  Ember.run(function() {
    component.set('history', history);
  });

  equal(component.get('model.length'), 2, 'No filters applied we have 2 models');

  Ember.run(function() {
    component.filterBy('name', 'HISTORY', true);
  });

  equal(component.get('model.length'), 1, 'Filter by name we have 1 filtered model');
});
示例#4
0
test('interval duration is set correctly', function () {
  expect(2);

  var component = this.subject();

  var history = Ember.ArrayProxy.create({ content: [
    Ember.Object.create({
      duration: 20
    }),
    Ember.Object.create({
      duration: 300
    })
  ]});

  Ember.run(function() {
    component.set('history', history);
  });

  var durationColumn = component.get('columns').find(function (column) {
    return column.get('caption') === 'columns.duration';
  });

  equal(durationColumn.get('numberRange.min'), 20, 'Min value is set correctly');
  equal(durationColumn.get('numberRange.max'), 300, 'Max value is set correctly');
});
示例#5
0
test('date range is set correctly', function () {
  expect(2);

  var component = this.subject();
  var min = parseInt(Date.now() / 1000) - (60 * 60 * 24 * 60);
  var max = parseInt(Date.now() / 1000);

  var history = Ember.ArrayProxy.create({ content: [
    Ember.Object.create({
      dateSubmittedTimestamp: min
    }),
    Ember.Object.create({
      dateSubmittedTimestamp: max
    })
  ]});

  Ember.run(function() {
    component.set('history', history);
  });

  var dateColumn = component.get('columns').find(function (column) {
    return column.get('caption') === 'columns.date';
  });

  equal(dateColumn.get('dateRange.min'), min, 'Min date is set correctly');
  equal(dateColumn.get('dateRange.max'), max, 'Max date is set correctly');
});
 lookupTypeValues: function() {
   var values = this.get('lookupTypeList.value');
   if (!Ember.isEmpty(values)) {
     values.sort(this._sortValues);
   }
   return Ember.ArrayProxy.create({ content: Ember.A(values) });
 }.property('model.lookupType', 'lookupTypeList.value'),
示例#7
0
    _stream: function(query) {
        if (!query) {
            query = {};
        }
        var resourceEndpoint = this.get('resourceEndpoint');
        var promise = new Ember.RSVP.Promise(function(resolve, reject) {
            Ember.$.ajax({
                dataType: 'json',
                url: `${resourceEndpoint}/i/stream/json`,
                async: true,
                data: query,
                success: function(data) {
                    return resolve(data);
                },
                error: function(jqXHR, textStatus, errorThrown ) {
                    console.error('errror>', jqXHR, textStatus, errorThrown);
                    reject(jqXHR.responseJSON);
                }
            });
        });

        return Ember.ArrayProxy.extend(Ember.PromiseProxyMixin).create({
            promise: promise
        });
    },
示例#8
0
  branches: function() {
    let repoId = this.get('repo.id'),
        popupName = this.get('popupName');

    if(popupName === 'status-images') {
      let array = Ember.ArrayProxy.create({ content: [] }),
          apiEndpoint = Config.apiEndpoint,
          options = {};

      array.set('isLoaded', false);

      if (this.get('auth.signedIn')) {
        options.headers = {
          Authorization: "token " + (this.auth.token())
        };
      }

      $.ajax(apiEndpoint + "/v3/repo/" + repoId + "/branches?limit=100", options).then(function(response) {
        if(response.branches.length) {
          array.pushObjects(response.branches.map((branch) => { return branch.name; }));
        } else {
          array.pushObject('master');
        }

        array.set('isLoaded', true);
      });

      return array;
    } else {
      // if status images popup is not open, don't fetch any branches
      return [];
    }
  }.property('popupName', 'repo'),
示例#9
0
文件: queries.js 项目: biggeng/ambari
  init: function () {
    this._super();

    this.set('columns', Ember.ArrayProxy.create({ content: Ember.A([
       Ember.Object.create({
        caption: "columns.shortQuery",
        property: 'shortQuery',
        link: constants.namingConventions.subroutes.savedQuery
      }),
      Ember.Object.create({
        caption: "columns.title",
        property: 'title',
        link: constants.namingConventions.subroutes.savedQuery
      }),
      Ember.Object.create({
        caption: "columns.database",
        property: 'dataBase',
        link: constants.namingConventions.subroutes.savedQuery
      }),
      Ember.Object.create({
        caption: "columns.owner",
        property: 'owner',
        link: constants.namingConventions.subroutes.savedQuery
      })
    ])}));
  },
示例#10
0
  arrangedContent: function() {
    "use strict";

    this.set('totalWeights', this.get('content.length'));
    this.set('startRecord', (this.page - 1) * this.recordsPerPage);
    this.set('totalPages', Math.ceil(this.get('totalWeights') /
                           this.recordsPerPage));

    if(this.page < this.totalPages) {
      this.set('nextDisabled', false);
    } else {
      this.set('nextDisabled', true);
    }

    if(this.page === 1) {
      this.set('prevDisabled', true);
    } else {
      this.set('prevDisabled', false);
    }

    return Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {
      content: this.get('model').toArray(),
      sortProperties: this.get('sortProperties'),
      sortAscending: this.get('sortAscending')
    }).slice(this.startRecord, this.startRecord + this.recordsPerPage);

  }.property('weight', 'page', 'totalPages', 'prevDisabled',
test('optionValuePath with ArrayProxy', function(assert) {
  assert.expect(1);

  var Klass, arrData, data, obj1, obj2;
  Klass = Ember.Object.extend({
    name: null,
    value: null
  });
  obj1 = Klass.create({
    name: 'reddit',
    value: 1
  });
  obj2 = Klass.create({
    name: 'red',
    value: 2
  });
  data = [obj1, obj2];
  arrData = Ember.ArrayProxy.create({
    content: Ember.A(data)
  });
  select = this.subject({
    content: arrData,
    optionLabelPath: 'name',
    optionValuePath: 'value'
  });

  Ember.run(function() {
    select.set('value', 2);
  });
  assert.equal(obj2, select.get('selection'), 'The right selection is retrieved');
});
  populateAssignments: function() {
    const assignmentsFromGroups = this.get('assignmentsFromGroups.content')
    const selectedStudent = this.get('selectedStudent')
    const submissionStateMap = this.get('submissionStateMap')

    const proxy = Ember.ArrayProxy.createWithMixins(Ember.SortableMixin, {content: []})

    if (selectedStudent) {
      assignmentsFromGroups.forEach(assignment => {
        const submissionCriteria = {assignment_id: assignment.id, user_id: selectedStudent.id}
        if (
          !__guard__(
            submissionStateMap != null
              ? submissionStateMap.getSubmissionState(submissionCriteria)
              : undefined,
            x => x.hideGrade
          )
        ) {
          return proxy.addObject(assignment)
        }
      })
    } else {
      proxy.addObjects(assignmentsFromGroups)
    }

    proxy.set('sortProperties', this.get('assignments.sortProperties'))
    this.set('assignments', proxy)
  }.observes('assignmentsFromGroups.isLoaded', 'selectedStudent'),
示例#13
0
 function sortFunc(items){
   var sortProperties = ["name"];
   items = Ember.ArrayProxy.extend(Ember.SortableMixin).create(items);
   items.set('sortProperties', sortProperties);
   items.set('sortAscending', true);
   return items;
 }
示例#14
0
  visualizationLabel: function() {
    var visualization = this.get('model.visualization');

    var array = Ember.ArrayProxy.create({content: this.visualizations});
    var record = array.findBy('value', visualization);
    return record ? record['label'] : '';
  }.property('model.visualization'),
示例#15
0
export default function (totalCount, initSize, getNextChunk) {
  var ret = Ember.A(new Array(totalCount));

  var promise = getNextChunk();
  promise.then(function (data) {
    ret = data;
  });

  var LazyArray = Ember.ArrayProxy.extend({
    objectAt: function (index) {
      var reloadValue = index + 11;
      if (reloadValue >= ret.length) {
        var loop = (reloadValue - ret.length) / 100 + 1;

        while (loop > 0) {
          getNextChunk().then(function (data) {
            ret = ret.concat(data);
          });
          loop--;
        }
      }
      return ret[index];
    },

    length: totalCount
  });

  return LazyArray.create({
    content: Ember.A(new Array(totalCount))
  });
}
示例#16
0
 myCommentItems: function() {
   var name = this.get('auth.user.name');
   return Ember.ArrayProxy.createWithMixins({
     cont: this,
     content: Ember.computed.filterProperty('cont.commentItems', 'comment.author', name)
   });
 }.property('auth.user.name'),
示例#17
0
文件: store-tweaks.js 项目: 4min/ui
  reallyAll: function(type) {
    type = normalizeType(type);
    var proxy = Ember.ArrayProxy.create({
      content: this._group(type)
    });

    return proxy;
  },
 this.on('customSearch', function(term) {
   assert.equal(term, 'Foo Bar');
   return Ember.ArrayProxy.create({
     content: Ember.A([
       {name: 'Foo'},
       {name: 'Bar'},
     ])
   });
 });
示例#19
0
 pushPermissions: function() {
   var permissions;
   permissions = Ember.ArrayProxy.create({
     content: []
   });
   this.get('_rawPermissions').then((data) => {
     return permissions.set('content', data.push);
   });
   return permissions;
 }.property(),
test('Bug: Ember.ArrayProxy does not have the method sort', (assert) => {
  const list = Ember.ArrayProxy.create({
    content: Ember.A([{ bar: 3 }, { bar: 4 }, { bar: 1 }, { bar: 3 }])
  });
  const subject = Ember.Object.extend({
    orderedFoos: orderBy('foos', 'bar')
  }).create({ foos: list });

  assert.deepEqual(subject.get('orderedFoos'), [
    { bar: 1 }, { bar: 3 }, { bar: 3 }, { bar: 4 }
  ]);
});
test('it handles arrays with computed property lengths', function(assert) {
  let ap = Ember.ArrayProxy.extend({
    content: emberArray([1, 2, 3]),
    length:  computed('content.[]', function() {
      return this.get('content.length');
    })
  }).create();

  let expectedResult = [[1], [2], [3]];
  let result = chunk(1, ap);
  assert.deepEqual(result, expectedResult, 'should return array of chunked arrays');
});
示例#22
0
  model: function(){

    var modelData = [
      Ember.Object.create().setProperties({date: "2014-08-01", count: 100}),
      Ember.Object.create().setProperties({date: "2014-08-02", count: 150}),
      Ember.Object.create().setProperties({date: "2014-08-03", count: 200})
    ];

    return Ember.ArrayProxy.create({
      content: Ember.A(modelData)
    });
  },
示例#23
0
    setSourceFilesIcons: Ember.on('init', function() {
        var demoName = 'input-Icons';

        var sourceFiles = Ember.ArrayProxy.create({
            content: Ember.A([
                {name: 'hbs', content: demoName + '.hbs'},
                {name: 'controller', content: 'input-controller.js'}

            ])
        });

        this.set('sourceFilesIcons', sourceFiles);
    }),
示例#24
0
test('removes the class "empty" when the cart is not empty', function(assert) {
  let component = this.subject();

  let cart = Ember.ArrayProxy.create({
    content: Ember.A(),
    counter: 1
  });

  set(component, 'cart', cart);
  this.render();

  assert.ok(!this.$().hasClass('cart-empty'));
});
test('Test filtered content using array proxy', function(assert) {
  assert.expect(2);

  var data = Ember.ArrayProxy.create({
    content: Ember.A(['red', 'reddit', 'green', 'blue'])
  });
  select = this.subject({
    content: data
  });
  select.set('query', 're');
  assert.equal(select.get('filteredContent')[0], 'red');
  assert.equal(select.get('filteredContent')[1], 'reddit');
});
 lookupTypeValues: computed('model.lookupType', 'lookupTypeList.value.[]', function() {
   let lookupType = this.get('model.lookupType');
   let values = this.get('lookupTypeList.value');
   if (!Ember.isEmpty(values)) {
     values.sort(this._sortValues);
     values = values.map((value) => {
       return {
         canModify: this._canModifyValue(value, lookupType),
         value
       };
     });
   }
   return Ember.ArrayProxy.create({ content: Ember.A(values) });
 }),
    setSourceFiles: function() {
        var demoName = this.get('demoName');

        var sourceFiles = Ember.ArrayProxy.create({
            content: [
                {name: 'hbs', content: demoName + '-index.hbs'},
                {name: 'controller', content: demoName + '-controller.js'},
                {name: 'route', content: demoName + '-route.js'},
                {name: 'css', content: demoName + '-style.css'}
            ]
        });

        this.set('sourceFiles', sourceFiles);
    }.on('init'),
示例#28
0
test('Set active tab on init', function() {
  expect(2);

  var tabs = Ember.ArrayProxy.create({content: Ember.A([
    Ember.Object.create(),
    Ember.Object.create(),
    Ember.Object.create({ active: true })
  ])});

  var component = this.subject({ tabs: tabs });

  ok(!component.get('tabs.firstObject.active'), 'First tab is not active');
  ok(component.get('tabs.lastObject.active'), 'Last tab is active');
});
    tryPerson: function() {
	var result = Ember.ArrayProxy.create({content: []});
	$.ajax({
            url: 'https://api.github.com/users/' + this.get('id') + '/repos',
            type: 'GET',
            success: (data) => {
		this.set('repositories', data);
            },
            error: function() {
            }
	});
	return result;

    },
示例#30
0
test('First tab active by default', function() {
  expect(2);

  var tabs = Ember.ArrayProxy.create({content: Ember.A([
    Ember.Object.create(),
    Ember.Object.create()
  ])});

  var component = this.subject({ tabs: tabs });
  var $component = this.$();

  ok(component.get('tabs.firstObject.active'), 'First tab is active');
  ok(!component.get('tabs.lastObject.active'), 'Second tab is not active');
});