diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index bcec80fd..5a267beb 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -48,18 +48,16 @@ Travis.FirstSyncController = Em.Controller.extend isSyncing: Ember.computed.alias('user.isSyncing') -Travis.ProfileRepoController = Em.ObjectController.extend() -Travis.ProfileRepoSettingsTabController = Em.ObjectController.extend() - -Travis.ProfileRepoSettingsController = Em.Controller.extend - needs: ['profileRepoSettingsTab', 'profileRepo'] - tab: Ember.computed.alias('controllers.profileRepoSettingsTab.model.tab') - repo: Ember.computed.alias('controllers.profileRepo.content') +Travis.RepoSettingsTabController = Em.ObjectController.extend() +Travis.RepoSettingsController = Em.ObjectController.extend + needs: ['repoSettingsTab'] + tab: Ember.computed.alias('controllers.repoSettingsTab.model.tab') + settings: Ember.computed.alias('model.settings') submit: -> @set('saving', true) self = this - @get('repo').saveSettings(@get('settings')).then -> + @get('model').saveSettings(@get('settings')).then -> self.set('saving', false) Travis.flash(success: 'Settings were saved successfully') , -> diff --git a/assets/scripts/app/helpers/handlebars.coffee b/assets/scripts/app/helpers/handlebars.coffee index 63e6cc15..1074da90 100644 --- a/assets/scripts/app/helpers/handlebars.coffee +++ b/assets/scripts/app/helpers/handlebars.coffee @@ -34,11 +34,12 @@ Travis.TabsView = Ember.View.extend tab.show() unless tab.get('visible') + # TODO: remove hardcoded link layout: Ember.Handlebars.compile( '' + diff --git a/assets/scripts/app/routes.coffee b/assets/scripts/app/routes.coffee index ba390fb9..fedc4127 100644 --- a/assets/scripts/app/routes.coffee +++ b/assets/scripts/app/routes.coffee @@ -99,16 +99,17 @@ Travis.Router.map -> @resource 'pullRequests', path: '/pull_requests' @resource 'branches', path: '/branches' + # this can't be nested in repo, because we want a set of different + # templates rendered for settings (for example no "current", "builds", ... tabs) + @resource 'repo.settings', path: '/:owner/:name/settings', -> + @route 'tab', path: ':tab' + @route 'getting_started' @route 'first_sync' @route 'stats', path: '/stats' @route 'auth', path: '/auth' @route 'notFound', path: '/not-found' - @resource 'profile.repo', path: '/profile/:owner/:name', -> - @resource 'profile.repo.settings', path: 'settings', -> - @route 'tab', path: ':tab' - @resource 'profile', path: '/profile', -> @route 'index', path: '/' @resource 'account', path: '/:login', -> @@ -398,15 +399,13 @@ Travis.AuthRoute = Ember.Route.extend deactivate: -> @controllerFor('auth').set('redirected', false) -Travis.ProfileRepoRoute = Travis.ProfileRoute.extend +Travis.RepoSettingsRoute = Ember.Route.extend setupController: (controller, model) -> # TODO: if repo is just a data hash with id and slug load it # as incomplete record model = Travis.Repo.find(model.id) if model && !model.get @_super(controller, model) - controller.set('content', model) - serialize: (repo) -> slug = if repo.get then repo.get('slug') else repo.slug [owner, name] = slug.split('/') @@ -416,10 +415,8 @@ Travis.ProfileRepoRoute = Travis.ProfileRoute.extend slug = "#{params.owner}/#{params.name}" Travis.Repo.fetchBySlug(slug) -Travis.ProfileRepoSettingsRoute = Ember.Route.extend - setupController: (controller, model) -> - controller.set('settings', model) - - model: -> - repo = @modelFor('profileRepo') - repo.fetchSettings() + afterModel: (repo) -> + # I'm using afterModel to fetch settings, because model is not always called. + # If link-to already provides a model, it will be just set as a route context. + repo.fetchSettings().then (settings) -> + repo.set('settings', settings) diff --git a/assets/scripts/app/templates/profile/repo/settings.hbs b/assets/scripts/app/templates/repo/settings.hbs similarity index 96% rename from assets/scripts/app/templates/profile/repo/settings.hbs rename to assets/scripts/app/templates/repo/settings.hbs index c16eee7e..fcab8474 100644 --- a/assets/scripts/app/templates/profile/repo/settings.hbs +++ b/assets/scripts/app/templates/repo/settings.hbs @@ -1,3 +1,5 @@ +

Settings: {{slug}}

+ {{#travis-tabs}} {{#travis-tab "general" "General Settings"}} {{#settings-form}} diff --git a/assets/scripts/app/templates/repos/show.hbs b/assets/scripts/app/templates/repos/show.hbs index 0c35e126..07e62096 100644 --- a/assets/scripts/app/templates/repos/show.hbs +++ b/assets/scripts/app/templates/repos/show.hbs @@ -24,4 +24,3 @@ {{/if}} {{/if}} - diff --git a/assets/scripts/app/templates/repos/show/tools.hbs b/assets/scripts/app/templates/repos/show/tools.hbs index f858248e..1dba6858 100644 --- a/assets/scripts/app/templates/repos/show/tools.hbs +++ b/assets/scripts/app/templates/repos/show/tools.hbs @@ -13,7 +13,7 @@ {{/if}} {{#if view.displaySettingsLink}}
  • - {{#linkTo "profile.repo.settings" view.repo}}Settings{{/linkTo}} + {{#linkTo "repo.settings" view.repo}}Settings{{/linkTo}}
  • {{/if}}