// ========================================================================== // Project: Welcome.targetsController // Copyright: ©2011 Apple Inc. // ========================================================================== /*global CoreTools Welcome */
/**
Manages the list of targets @extends SC.ArrayController
*/ Welcome.targetsController = SC
.ArrayController.create( /** @scope Welcome.targetsController.prototype */ {
/** Call this method whenever you want to reload the targets from the server. */ reload: function () { var targets = Welcome.store.find(CoreTools.TARGETS_QUERY); this.set('content', targets); }, appsOnly: function () { return this.filter(function (t) { return t.get('kind') === 'app' && !t.get('name').match(/sproutcore\/(welcome|experimental)/); }).sortProperty('sortKind', 'displayName'); }.property('[]').cacheable(), loadApplication: function () { var app = this.get('selection').firstObject(), url = app ? app.get('appUrl') : null; if (url) { this.set('canLoadApp', NO); this.invokeLater(function () { window.location.href = url; // load new app }); } }, launchEnabled: function () { var canLoadApp = this.get('canLoadApp'), selection = this.get('selection'), selectedObject = selection.firstObject(); return canLoadApp && selectedObject && selectedObject.get('name') !== '/sproutcore'; }.property('canLoadApp', 'selection').cacheable(), // used to disable all controls canLoadApp: YES, allowsEmptySelection: NO, allowsMultipleSelection: NO
});