start over, trying to use the repo slug as an id
This commit is contained in:
parent
89f624d377
commit
e14e063b8c
|
@ -46,26 +46,6 @@ App.LoadingView = Em.View.extend({ templateName: 'loading' });
|
||||||
|
|
||||||
App.store = App.Store.create();
|
App.store = App.Store.create();
|
||||||
|
|
||||||
var onReady = function(object, path, callback) {
|
|
||||||
if(object.getPath(path)) {
|
|
||||||
callback();
|
|
||||||
} else {
|
|
||||||
var observer = function() {
|
|
||||||
object.removeObserver(path, observer);
|
|
||||||
callback()
|
|
||||||
};
|
|
||||||
object.addObserver(path, observer);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var onRepositoryLoaded = function(object, callback) {
|
|
||||||
// should observe RecordArray.isLoaded instead, but that doesn't seem to exist?
|
|
||||||
var path = Ember.isArray(object) ? 'firstObject.isLoaded' : 'isLoaded';
|
|
||||||
onReady(object, path, function() {
|
|
||||||
callback(object.get('firstObject') || object)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
App.Router = Em.Router.extend({
|
App.Router = Em.Router.extend({
|
||||||
enableLogging: true,
|
enableLogging: true,
|
||||||
location: 'hash',
|
location: 'hash',
|
||||||
|
@ -77,10 +57,15 @@ App.Router = Em.Router.extend({
|
||||||
route: '/',
|
route: '/',
|
||||||
|
|
||||||
connectOutlets: function(router) {
|
connectOutlets: function(router) {
|
||||||
router.connectLayout(null, null, function(repository) {
|
var repositories = App.Repository.find();
|
||||||
// should use repository.lastBuild()
|
|
||||||
router.connectCurrent(Build.find(1))
|
this.get('applicationController').connectOutlet({ outletName: 'left', name: 'repositories', context: repositories })
|
||||||
})
|
|
||||||
|
this.setPath('tabsController.repository', repository);
|
||||||
|
this.setPath('tabsController.build', build);
|
||||||
|
|
||||||
|
this.get('applicationController').connectOutlet({ outletName: 'main', name: 'repository', context: repository });
|
||||||
|
this.get('repositoryController').connectOutlet({ outletName: 'tabs', name: 'tabs' });
|
||||||
},
|
},
|
||||||
|
|
||||||
viewCurrent: Ember.Route.transitionTo('current'),
|
viewCurrent: Ember.Route.transitionTo('current'),
|
||||||
|
@ -88,128 +73,112 @@ App.Router = Em.Router.extend({
|
||||||
viewBuild: Ember.Route.transitionTo('build'),
|
viewBuild: Ember.Route.transitionTo('build'),
|
||||||
}),
|
}),
|
||||||
|
|
||||||
current: Em.Route.extend({
|
// current: Em.Route.extend({
|
||||||
route: '/:ownerName/:name',
|
// route: '/:ownerName/:name',
|
||||||
|
|
||||||
serialize: function(router, repository) {
|
// serialize: function(router, repository) {
|
||||||
return router.serializeRepository(repository);
|
// return router.serializeRepository(repository);
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectOutlets: function(router, repository) {
|
// connectOutlets: function(router, repository) {
|
||||||
params = router.serializeRepository(repository);
|
// params = router.serializeRepository(repository);
|
||||||
// needs to implement findQuery
|
// // needs to implement findQuery
|
||||||
// var repositories = App.Repository.find(params);
|
// // var repositories = App.Repository.find(params);
|
||||||
var repositories = App.Repository.find().filter(function(data) {
|
// var repositories = App.Repository.find().filter(function(data) {
|
||||||
return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
// return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
||||||
})
|
// })
|
||||||
|
|
||||||
router.connectLayout(repositories, null, function(repository) {
|
// router.connectLayout(repositories, null, function(repository) {
|
||||||
// should use repository.lastBuild()
|
// // should use repository.lastBuild()
|
||||||
router.connectCurrent(App.Build.find(1))
|
// router.connectCurrent(App.Build.find(1))
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
viewCurrent: Ember.Route.transitionTo('current'),
|
// viewCurrent: Ember.Route.transitionTo('current'),
|
||||||
|
|
||||||
history: Em.Route.extend({
|
// history: Em.Route.extend({
|
||||||
route: '/:ownerName/:name/builds',
|
// route: '/:ownerName/:name/builds',
|
||||||
|
|
||||||
serialize: function(router, repository) {
|
// serialize: function(router, repository) {
|
||||||
return router.serializeRepository(repository);
|
// return router.serializeRepository(repository);
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectOutlets: function(router, repository) {
|
// connectOutlets: function(router, repository) {
|
||||||
params = router.serializeRepository(repository);
|
// params = router.serializeRepository(repository);
|
||||||
// needs to implement findQuery
|
// // needs to implement findQuery
|
||||||
// var repositories = App.Repository.find(params);
|
// // var repositories = App.Repository.find(params);
|
||||||
var repositories = App.Repository.find().filter(function(data) {
|
// var repositories = App.Repository.find().filter(function(data) {
|
||||||
return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
// return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
||||||
})
|
// })
|
||||||
|
|
||||||
router.connectLayout(repository, null, function(repository) {
|
// router.connectLayout(repository, null, function(repository) {
|
||||||
router.connectHistory(App.Build.find())
|
// router.connectHistory(App.Build.find())
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
viewHistory: Ember.Route.transitionTo('history'),
|
// viewHistory: Ember.Route.transitionTo('history'),
|
||||||
|
|
||||||
build: Em.Route.extend({
|
// build: Em.Route.extend({
|
||||||
route: '/:ownerName/:name/builds/:id',
|
// route: '/:ownerName/:name/builds/:id',
|
||||||
|
|
||||||
serialize: function(router, build) {
|
// serialize: function(router, build) {
|
||||||
return router.serializeBuild(build);
|
// return router.serializeBuild(build);
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectOutlets: function(router, build) {
|
// connectOutlets: function(router, build) {
|
||||||
params = router.serializeBuild(build);
|
// params = router.serializeBuild(build);
|
||||||
// needs to implement findQuery
|
// // needs to implement findQuery
|
||||||
// var repositories = App.Repository.find(params);
|
// // var repositories = App.Repository.find(params);
|
||||||
var repositories = App.Repository.find().filter(function(data) {
|
// var repositories = App.Repository.find().filter(function(data) {
|
||||||
return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
// return data.get('owner_name') == params.owner_name && data.get('name') == params.name;
|
||||||
})
|
// })
|
||||||
var build = App.Build.find(params.id)
|
// var build = App.Build.find(params.id)
|
||||||
|
|
||||||
router.connectLayout(repositories, build, function(repository) {
|
// router.connectLayout(repositories, build, function(repository) {
|
||||||
router.connectBuild(build)
|
// router.connectBuild(build)
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}),
|
// }),
|
||||||
viewBuild: Ember.Route.transitionTo('build')
|
// viewBuild: Ember.Route.transitionTo('build')
|
||||||
}),
|
}),
|
||||||
|
|
||||||
serializeRepository: function(repository) {
|
// serializeRepository: function(repository) {
|
||||||
return repository.getProperties ? repository.getProperties('ownerName', 'name') : repository;
|
// return repository.getProperties ? repository.getProperties('ownerName', 'name') : repository;
|
||||||
},
|
// },
|
||||||
|
|
||||||
serializeBuild: function(build) {
|
// serializeBuild: function(build) {
|
||||||
if(build && build.get) {
|
// if(build && build.get) {
|
||||||
var repository = build.get('repository') || App.Repository.find(build.get('repository_id')); // wat.
|
// var repository = build.get('repository') || App.Repository.find(build.get('repository_id')); // wat.
|
||||||
var params = this.serializeRepository(repository);
|
// var params = this.serializeRepository(repository);
|
||||||
return $.extend(params, { id: build.get('id') });
|
// return $.extend(params, { id: build.get('id') });
|
||||||
} else {
|
// } else {
|
||||||
return build;
|
// return build;
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectLayout: function(repository, build, callback) {
|
// connectLeft: function(repositories) {
|
||||||
var repositories = App.Repository.find();
|
// this.get('applicationController').connectOutlet({ outletName: 'left', name: 'repositories', context: repositories })
|
||||||
|
// },
|
||||||
|
|
||||||
this.connectLeft(repositories);
|
// connectMain: function(repository, build) {
|
||||||
this.connectLoading();
|
// this.setPath('tabsController.repository', repository);
|
||||||
|
// this.setPath('tabsController.build', build);
|
||||||
|
|
||||||
onRepositoryLoaded(repository || repositories, function(repository) {
|
// this.get('applicationController').connectOutlet({ outletName: 'main', name: 'repository', context: repository });
|
||||||
this.connectMain(repository, build)
|
// this.get('repositoryController').connectOutlet({ outletName: 'tabs', name: 'tabs' });
|
||||||
callback(repository);
|
// },
|
||||||
}.bind(this));
|
|
||||||
},
|
|
||||||
|
|
||||||
connectLeft: function(repositories) {
|
// connectCurrent: function(build) {
|
||||||
this.get('applicationController').connectOutlet({ outletName: 'left', name: 'repositories', context: repositories })
|
// this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'current', context: build});
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectLoading: function() {
|
// connectHistory: function(builds) {
|
||||||
this.get('applicationController').connectOutlet({ outletName: 'main', name: 'loading' });
|
// this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'history', context: builds});
|
||||||
},
|
// },
|
||||||
|
|
||||||
connectMain: function(repository, build) {
|
// connectBuild: function(build) {
|
||||||
this.setPath('tabsController.repository', repository);
|
// this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'build', context: build});
|
||||||
this.setPath('tabsController.build', build);
|
// }
|
||||||
|
|
||||||
this.get('applicationController').connectOutlet({ outletName: 'main', name: 'repository', context: repository });
|
|
||||||
this.get('repositoryController').connectOutlet({ outletName: 'tabs', name: 'tabs' });
|
|
||||||
},
|
|
||||||
|
|
||||||
connectCurrent: function(build) {
|
|
||||||
this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'current', context: build});
|
|
||||||
},
|
|
||||||
|
|
||||||
connectHistory: function(builds) {
|
|
||||||
this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'history', context: builds});
|
|
||||||
},
|
|
||||||
|
|
||||||
connectBuild: function(build) {
|
|
||||||
this.get('repositoryController').connectOutlet({ outletName: 'tab', name: 'build', context: build});
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
App.initialize();
|
App.initialize();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user