From 868995bf097ed8aaa4709fdb6ee13d8ee2a67829 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Wed, 22 Jul 2015 10:55:18 +0200 Subject: [PATCH] Move concurrent build limit flow into a component --- app/components/limit-concurrent-builds.coffee | 37 +++++++++++++++++++ app/controllers/settings.coffee | 29 --------------- .../components/limit-concurrent-builds.hbs | 7 ++++ app/templates/settings.hbs | 10 +---- 4 files changed, 45 insertions(+), 38 deletions(-) create mode 100644 app/components/limit-concurrent-builds.coffee create mode 100644 app/templates/components/limit-concurrent-builds.hbs diff --git a/app/components/limit-concurrent-builds.coffee b/app/components/limit-concurrent-builds.coffee new file mode 100644 index 00000000..07fcdea8 --- /dev/null +++ b/app/components/limit-concurrent-builds.coffee @@ -0,0 +1,37 @@ +`import Ember from 'ember'` + +LimitConcurrentBuildsComponent = Ember.Component.extend + description: (-> + description = "Limit concurrent jobs" + if @get('enabled') + description += " " + description + ).property('enabled') + + + actions: + toggle: -> + unless @get('enabled') + return if @get('value') == 0 + return if @get('isSaving') + @set('isSaving', true) + + savingFinished = => + @set('isSaving', false) + + @get('repo').saveSettings(maximum_number_of_builds: 0).then(savingFinished, savingFinished) + @set('value', 0) + + limitChanged: -> + repo = @get('repo') + limit = parseInt(@get('value')) + if limit + @set('isSaving', true) + savingFinished = => + @set('isSaving', false) + + repo.saveSettings(maximum_number_of_builds: limit). + then(savingFinished, savingFinished) + + +`export default LimitConcurrentBuildsComponent` diff --git a/app/controllers/settings.coffee b/app/controllers/settings.coffee index 4ff4d46f..2b2ff314 100644 --- a/app/controllers/settings.coffee +++ b/app/controllers/settings.coffee @@ -1,13 +1,6 @@ `import Ember from 'ember'` SettingsController = Ember.Controller.extend - concurrentBuildsLimitDescription: (-> - description = "Limit concurrent jobs" - if @get('concurrentBuildsLimit') - description += " " - description - ).property('concurrentBuildsLimit') - envVars: Ember.computed.filterBy('model.envVars', 'isNew', false) actions: @@ -17,26 +10,4 @@ SettingsController = Ember.Controller.extend sshKeyDeleted: -> @set('model.customSshKey', null) - concurrentBuildsLimitChanged: -> - unless @get('concurrentBuildsLimit') - return if @get('isSaving') - @set('isSaving', true) - - savingFinished = => - @set('isSaving', false) - - @get('repo').saveSettings(maximum_number_of_builds: 0).then(savingFinished, savingFinished) - @set('model.settings.maximum_number_of_builds', 0) - - concurrentBuildsLimitValueChanged: -> - repo = @get('repo') - concurrentBuildsLimit = parseInt(@get('model.settings.maximum_number_of_builds')) - if concurrentBuildsLimit - @set('isSaving', true) - savingFinished = => - @set('isSaving', false) - - repo.saveSettings(maximum_number_of_builds: concurrentBuildsLimit). - then(savingFinished, savingFinished) - `export default SettingsController` diff --git a/app/templates/components/limit-concurrent-builds.hbs b/app/templates/components/limit-concurrent-builds.hbs new file mode 100644 index 00000000..0d4f449e --- /dev/null +++ b/app/templates/components/limit-concurrent-builds.hbs @@ -0,0 +1,7 @@ +{{travis-switch active=enabled description=description action="toggle"}} +{{#if enabled}} + {{input pattern="/^[0-9]+$/" value=value on="key-up" action="limitChanged"}} +{{/if}} +{{#if isSaving}} + {{loading-indicator}} +{{/if}} diff --git a/app/templates/settings.hbs b/app/templates/settings.hbs index dedd4b63..f7b5373a 100644 --- a/app/templates/settings.hbs +++ b/app/templates/settings.hbs @@ -5,15 +5,7 @@