diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index 0c74d1e3..46e535a8 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -50,27 +50,6 @@ Travis.FirstSyncController = Em.Controller.extend Travis.IndexErrorController = Em.Controller.extend() -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') - - settingsChanged: (-> - value = @get('settings.maximum_number_of_builds') - console.log value - if parseInt(value) > 0 || value == '0' || value == 0 - @set('settings.maximum_number_of_builds_valid', '') - @get('model').saveSettings(@get('settings')).then null, -> - Travis.flash(error: 'There was an error while saving settings. Please try again.') - else - @set('settings.maximum_number_of_builds_valid', 'invalid') - ).observes('settings.maximum_number_of_builds') - - save: -> - @get('model').saveSettings(@get('settings')).then null, -> - Travis.flash(error: 'There was an error while saving settings. Please try again.') - require 'controllers/accounts' require 'controllers/auth' require 'controllers/account' @@ -82,6 +61,7 @@ require 'controllers/job' require 'controllers/profile' require 'controllers/repos' require 'controllers/repo' +require 'controllers/repo_settings' require 'controllers/stats' require 'controllers/current_user' require 'controllers/request' diff --git a/assets/scripts/app/controllers/repo_settings.coffee b/assets/scripts/app/controllers/repo_settings.coffee new file mode 100644 index 00000000..4fb7ef25 --- /dev/null +++ b/assets/scripts/app/controllers/repo_settings.coffee @@ -0,0 +1,30 @@ +Travis.RepoSettingsController = Em.ObjectController.extend + tabs: + index: "General Settings" + env_vars: "Environment variables" + ssh_key: "Ssh key" + + init: -> + @_super.apply this, arguments + + tabs = [] + @set('_tabs', tabs) + for own id, name of @get('tabs') + tabs.pushObject Travis.Tab.create(id: id, name: name) + + settings: Ember.computed.alias('model.settings') + + settingsChanged: (-> + value = @get('settings.maximum_number_of_builds') + console.log value + if parseInt(value) > 0 || value == '0' || value == 0 + @set('settings.maximum_number_of_builds_valid', '') + @get('model').saveSettings(@get('settings')).then null, -> + Travis.flash(error: 'There was an error while saving settings. Please try again.') + else + @set('settings.maximum_number_of_builds_valid', 'invalid') + ).observes('settings.maximum_number_of_builds') + + save: -> + @get('model').saveSettings(@get('settings')).then null, -> + Travis.flash(error: 'There was an error while saving settings. Please try again.') diff --git a/assets/scripts/app/helpers/handlebars.coffee b/assets/scripts/app/helpers/handlebars.coffee index cbd630be..a4bd535e 100644 --- a/assets/scripts/app/helpers/handlebars.coffee +++ b/assets/scripts/app/helpers/handlebars.coffee @@ -4,83 +4,33 @@ safe = (string) -> new Handlebars.SafeString(string) Travis.Tab = Ember.Object.extend - show: -> - @get('tabs').forEach( (t) -> t.hide() ) - @set('visible', true) - - hide: -> - @set('visible', false) + url: (-> + id = @get('id') + if id == 'env_vars' + id + else + "repo.settings.#{id}" + ).property('id') Travis.TabsView = Ember.View.extend tabBinding: 'controller.tab' tabsBinding: 'controller.tabs' - tabDidChange: (-> - @activateTab(@get('tab')) - ).observes('tab') - - tabsDidChange: (-> - tab = @get('tab') - if tab - @activateTab(tab) - else if @get('tabs.length') - @activateTab(@get('tabs.firstObject.id')) - ).observes('tabs.length', 'tabs') - - activateTab: (tabId) -> - tab = @get('tabs').findBy('id', tabId) - - return unless tab - - tab.show() unless tab.get('visible') - # TODO: remove hardcoded link layout: Ember.Handlebars.compile( '
- Build only if .travis.yml is present - {{travis-switch action="save" active=settings.builds_only_with_travis_yml}} -
- -- Build pushes - {{travis-switch action="save" active=settings.build_pushes}} -
- -- Build pull requests - {{travis-switch action="save" active=settings.build_pull_requests}} -
- --
- {{input value=settings.maximum_number_of_builds size="4" pattern='/^[0-9]+$/'}} -
- - - {{/settings-form}} - {{/travis-tab}} + {{outlet}} {{/travis-tabs}} diff --git a/assets/scripts/app/templates/repo/settings/index.hbs b/assets/scripts/app/templates/repo/settings/index.hbs new file mode 100644 index 00000000..5dc4a5ca --- /dev/null +++ b/assets/scripts/app/templates/repo/settings/index.hbs @@ -0,0 +1,25 @@ +{{#settings-form}} ++ Build only if .travis.yml is present + {{travis-switch action="save" active=settings.builds_only_with_travis_yml}} +
+ ++ Build pushes + {{travis-switch action="save" active=settings.build_pushes}} +
+ ++ Build pull requests + {{travis-switch action="save" active=settings.build_pull_requests}} +
+ ++
+ {{input value=settings.maximum_number_of_builds size="4" pattern='/^[0-9]+$/'}} +
+ + +{{/settings-form}}