diff --git a/assets/scripts/app/auth.coffee b/assets/scripts/app/auth.coffee index 565a18c1..b8116df7 100644 --- a/assets/scripts/app/auth.coffee +++ b/assets/scripts/app/auth.coffee @@ -74,7 +74,7 @@ try router.send('afterSignIn') catch e - throw e unless e =~ /There are no active handlers/ + throw e unless e =~ /There are no active handlers/ || e =~ /Can't trigger action "afterSignIn/ @refreshUserData(data.user) refreshUserData: (user) -> diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index f1b4f520..bcec80fd 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -48,6 +48,24 @@ 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') + + submit: -> + @set('saving', true) + self = this + @get('repo').saveSettings(@get('settings')).then -> + self.set('saving', false) + Travis.flash(success: 'Settings were saved successfully') + , -> + self.set('saving', false) + Travis.flash(error: 'There was an error while saving settings. Please try again.') + require 'controllers/accounts' require 'controllers/build' require 'controllers/builds' diff --git a/assets/scripts/app/helpers/handlebars.coffee b/assets/scripts/app/helpers/handlebars.coffee index 8dfda033..63e6cc15 100644 --- a/assets/scripts/app/helpers/handlebars.coffee +++ b/assets/scripts/app/helpers/handlebars.coffee @@ -3,6 +3,292 @@ require 'ext/ember/bound_helper' 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) + +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') + + layout: Ember.Handlebars.compile( + '
+ {{settings-input checked=builds_only_with_travis_yml type="checkbox" id="builds-only-with-travis-yml"}} + +
+ ++ {{settings-input checked=build_pushes type="checkbox" id="build-pushes"}} + +
+ ++ {{settings-input checked=build_pull_requests type="checkbox" id="build-pull-requests"}} + +
+ ++ {{#if saving}} + Saving + {{else}} + + {{/if}} +
+ {{/settings-form}} + {{/travis-tab}} +{{/travis-tabs}} + diff --git a/assets/scripts/app/templates/repos/show.hbs b/assets/scripts/app/templates/repos/show.hbs index 7d7d3cf7..0c35e126 100644 --- a/assets/scripts/app/templates/repos/show.hbs +++ b/assets/scripts/app/templates/repos/show.hbs @@ -17,7 +17,7 @@ {{/with}}