From ecbfe4e74e1b7c753d21fbc4fdc42f0e88a97f39 Mon Sep 17 00:00:00 2001 From: Piotr Sarnacki Date: Fri, 16 Jan 2015 14:34:44 +0100 Subject: [PATCH] Extract remaining controllers and views into individual files --- assets/scripts/app/components.coffee | 22 +------- .../app/components/travis-switch.coffee | 23 ++++++++ assets/scripts/app/controllers.coffee | 31 ++--------- .../app/controllers/accounts/info.coffee | 5 ++ .../app/controllers/builds/item.coffee | 11 ++++ .../scripts/app/controllers/main/error.coffee | 3 + assets/scripts/app/controllers/queue.coffee | 9 +++ .../app/controllers/running_jobs.coffee | 9 +++ assets/scripts/app/helpers.coffee | 2 +- .../app/helpers/status_image_formats.coffee | 55 +++++++++++++++++++ .../app/helpers/status_image_formatter.coffee | 55 ------------------- assets/scripts/app/views.coffee | 28 ++-------- assets/scripts/app/views/auth/signin.coffee | 4 ++ assets/scripts/app/views/first_sync.coffee | 4 ++ .../insufficient_oauth_permissions.coffee | 4 ++ assets/scripts/app/views/main.coffee | 5 ++ assets/scripts/app/views/not_found.coffee | 4 ++ assets/scripts/app/views/view.coffee | 28 +++++----- 18 files changed, 162 insertions(+), 140 deletions(-) create mode 100644 assets/scripts/app/components/travis-switch.coffee create mode 100644 assets/scripts/app/controllers/accounts/info.coffee create mode 100644 assets/scripts/app/controllers/builds/item.coffee create mode 100644 assets/scripts/app/controllers/main/error.coffee create mode 100644 assets/scripts/app/controllers/queue.coffee create mode 100644 assets/scripts/app/controllers/running_jobs.coffee create mode 100644 assets/scripts/app/helpers/status_image_formats.coffee delete mode 100644 assets/scripts/app/helpers/status_image_formatter.coffee create mode 100644 assets/scripts/app/views/auth/signin.coffee create mode 100644 assets/scripts/app/views/first_sync.coffee create mode 100644 assets/scripts/app/views/insufficient_oauth_permissions.coffee create mode 100644 assets/scripts/app/views/main.coffee create mode 100644 assets/scripts/app/views/not_found.coffee diff --git a/assets/scripts/app/components.coffee b/assets/scripts/app/components.coffee index 2ea5726d..5877b6a4 100644 --- a/assets/scripts/app/components.coffee +++ b/assets/scripts/app/components.coffee @@ -1,21 +1 @@ -Travis.TravisSwitchComponent = Ember.Component.extend - tagName: 'a' - classNames: ['travis-switch'] - classNameBindings: ['_active:active'] - - # TODO: how to handle overriding properties to - # avoid naming it _action? - _active: (-> - @get('target.active') || @get('active') - ).property('target.active', 'active') - - click: -> - target = @get('target') - if @get('toggleAutomatically') != 'false' - if target - @set('target.active', !@get('target.active')) - else - @set('active', !@get('active')) - # allow for bindings to propagate - Ember.run.next this, -> - @sendAction('action', target) +require 'components/travis-switch' diff --git a/assets/scripts/app/components/travis-switch.coffee b/assets/scripts/app/components/travis-switch.coffee new file mode 100644 index 00000000..2fa7fe33 --- /dev/null +++ b/assets/scripts/app/components/travis-switch.coffee @@ -0,0 +1,23 @@ +Component = Ember.Component.extend + tagName: 'a' + classNames: ['travis-switch'] + classNameBindings: ['_active:active'] + + # TODO: how to handle overriding properties to + # avoid naming it _action? + _active: (-> + @get('target.active') || @get('active') + ).property('target.active', 'active') + + click: -> + target = @get('target') + if @get('toggleAutomatically') != 'false' + if target + @set('target.active', !@get('target.active')) + else + @set('active', !@get('active')) + # allow for bindings to propagate + Ember.run.next this, -> + @sendAction('action', target) + +Travis.TravisSwitchComponent = Component diff --git a/assets/scripts/app/controllers.coffee b/assets/scripts/app/controllers.coffee index 48b2081f..bd90010a 100644 --- a/assets/scripts/app/controllers.coffee +++ b/assets/scripts/app/controllers.coffee @@ -1,30 +1,4 @@ require 'helpers' - -Travis.AccountsInfoController = Em.Controller.extend - needs: ['currentUser', 'repos'] - userBinding: 'controllers.currentUser' - -Travis.MainErrorController = Em.Controller.extend() -Travis.BuildsItemController = Em.ObjectController.extend(Travis.GithubUrlProperties, - needs: ['builds'] - isPullRequestsListBinding: 'controllers.builds.isPullRequestsList' - buildBinding: 'content' - - color: (-> - Travis.Helpers.colorForState(@get('build.state')) - ).property('build.state') -) - -Travis.QueueController = Em.ArrayController.extend - content: (-> - Travis.Job.queued() - ).property() - -Travis.RunningJobsController = Em.ArrayController.extend - content: (-> - Travis.Job.running() - ).property() - require 'controllers/accounts' require 'controllers/auth' require 'controllers/account' @@ -47,3 +21,8 @@ require 'controllers/ssh_key' require 'controllers/sidebar' require 'controllers/top' require 'controllers/first_sync' +require 'controllers/accounts/info' +require 'controllers/main/error' +require 'controllers/builds/item' +require 'controllers/queue' +require 'controllers/running_jobs' diff --git a/assets/scripts/app/controllers/accounts/info.coffee b/assets/scripts/app/controllers/accounts/info.coffee new file mode 100644 index 00000000..538617bb --- /dev/null +++ b/assets/scripts/app/controllers/accounts/info.coffee @@ -0,0 +1,5 @@ +Controller = Em.Controller.extend + needs: ['currentUser', 'repos'] + userBinding: 'controllers.currentUser' + +Travis.AccountsInfoController = Controller diff --git a/assets/scripts/app/controllers/builds/item.coffee b/assets/scripts/app/controllers/builds/item.coffee new file mode 100644 index 00000000..3cbe5846 --- /dev/null +++ b/assets/scripts/app/controllers/builds/item.coffee @@ -0,0 +1,11 @@ +Controller = Em.ObjectController.extend(Travis.GithubUrlProperties, + needs: ['builds'] + isPullRequestsListBinding: 'controllers.builds.isPullRequestsList' + buildBinding: 'content' + + color: (-> + Travis.Helpers.colorForState(@get('build.state')) + ).property('build.state') +) + +Travis.BuildsItemController = Controller diff --git a/assets/scripts/app/controllers/main/error.coffee b/assets/scripts/app/controllers/main/error.coffee new file mode 100644 index 00000000..e997f66a --- /dev/null +++ b/assets/scripts/app/controllers/main/error.coffee @@ -0,0 +1,3 @@ +Controller = Em.Controller.extend() + +Travis.MainErrorController = Controller diff --git a/assets/scripts/app/controllers/queue.coffee b/assets/scripts/app/controllers/queue.coffee new file mode 100644 index 00000000..cbc45e4b --- /dev/null +++ b/assets/scripts/app/controllers/queue.coffee @@ -0,0 +1,9 @@ +require 'models/job' +Job = Travis.Job + +Controller = Em.ArrayController.extend + content: (-> + Job.queued() + ).property() + +Travis.QueueController = Controller diff --git a/assets/scripts/app/controllers/running_jobs.coffee b/assets/scripts/app/controllers/running_jobs.coffee new file mode 100644 index 00000000..f1d48459 --- /dev/null +++ b/assets/scripts/app/controllers/running_jobs.coffee @@ -0,0 +1,9 @@ +require 'models/job' +Job = Travis.Job + +Controller = Em.ArrayController.extend + content: (-> + Job.running() + ).property() + +Travis.RunningJobsController = Controller diff --git a/assets/scripts/app/helpers.coffee b/assets/scripts/app/helpers.coffee index 5c5b4f46..02ed5eb8 100644 --- a/assets/scripts/app/helpers.coffee +++ b/assets/scripts/app/helpers.coffee @@ -1,5 +1,5 @@ require 'helpers/handlebars' require 'helpers/helpers' require 'helpers/urls' -require 'helpers/status_image_formatter' +require 'helpers/status_image_formats' require 'helpers/github_url_properties' diff --git a/assets/scripts/app/helpers/status_image_formats.coffee b/assets/scripts/app/helpers/status_image_formats.coffee new file mode 100644 index 00000000..65aa31e4 --- /dev/null +++ b/assets/scripts/app/helpers/status_image_formats.coffee @@ -0,0 +1,55 @@ +require 'helper/urls' + +ccXmlUrl = Travis.Urls.ccXml +statusImageUrl = Travis.Urls.statusImage + +urlRepo: ( (slug) -> + "https://#{location.host}/#{slug}" +) + +markdownStatusImage: ( (url, slug, branch) -> + "[![Build Status](#{statusImageUrl(slug, branch)})](#{url})" +) + +textileStatusImage: ( (url, slug, branch) -> + "!#{statusImageUrl(slug, branch)}!:#{url}" +) + +rdocStatusImage: ( (url, slug, branch) -> + "{\"Build}[#{url}]" +) + +asciidocStatusImage: ( (url, slug, branch) -> + "image:#{statusImageUrl(slug, branch)}[\"Build Status\", link=\"#{url}\"]" +) + +rstStatusImage: ( (url, slug, branch) -> + ".. image:: #{statusImageUrl(slug, branch)}\n :target: #{url}" +) + +podStatusImage: ( (url, slug, branch) -> + "=for HTML " +) + +ccxmlStatusUrl: ( (slug) -> + ccXmlUrl(slug) +) + +format: (version, slug, branch) -> + url = urlRepo(slug) + + switch version + when 'Image URL' then statusImageUrl(url, slug, branch) + when 'Markdown' then markdownStatusImage(url, slug, branch) + when 'Textile' then textileStatusImage(url, slug, branch) + when 'Rdoc' then rdocStatusImage(url, slug, branch) + when 'AsciiDoc' then asciidocStatusImage(url, slug, branch) + when 'Rst' then rstStatusImage(url, slug, branch) + when 'Pod' then podStatusImage(url, slug, branch) + when 'CCTray' then ccxmlStatusUrl(url, slug, branch) + + + +Travis.StatusImageFormats = { + format: format +} diff --git a/assets/scripts/app/helpers/status_image_formatter.coffee b/assets/scripts/app/helpers/status_image_formatter.coffee deleted file mode 100644 index 348346bc..00000000 --- a/assets/scripts/app/helpers/status_image_formatter.coffee +++ /dev/null @@ -1,55 +0,0 @@ -@Travis.StatusImageFormatter = - slug: null - url: null - branch: null - - format: (version, slug, branch) -> - @slug = slug - @branch = branch - @url = @urlRepo() - - switch version - when 'Image URL' then @statusImageUrl() - when 'Markdown' then @markdownStatusImage() - when 'Textile' then @textileStatusImage() - when 'Rdoc' then @rdocStatusImage() - when 'AsciiDoc' then @asciidocStatusImage() - when 'Rst' then @rstStatusImage() - when 'Pod' then @podStatusImage() - when 'CCTray' then @ccxmlStatusUrl() - - urlRepo: (-> - "https://#{location.host}/#{@slug}" - ) - - statusImageUrl: (-> - Travis.Urls.statusImage(@slug, @branch) - ) - - markdownStatusImage: (-> - "[![Build Status](#{@statusImageUrl()})](#{@url})" - ) - - textileStatusImage: (-> - "!#{@statusImageUrl()}!:#{@url}" - ) - - rdocStatusImage: (-> - "{\"Build}[#{@url}]" - ) - - asciidocStatusImage: (-> - "image:#{@statusImageUrl()}[\"Build Status\", link=\"#{@url}\"]" - ) - - rstStatusImage: (-> - ".. image:: #{@statusImageUrl()}\n :target: #{@url}" - ) - - podStatusImage: (-> - "=for HTML " - ) - - ccxmlStatusUrl: (-> - Travis.Urls.ccXml(@slug) - ) diff --git a/assets/scripts/app/views.coffee b/assets/scripts/app/views.coffee index 85eb00eb..adbb4af5 100644 --- a/assets/scripts/app/views.coffee +++ b/assets/scripts/app/views.coffee @@ -1,28 +1,5 @@ require 'ext/ember/namespace' require 'views/view' - -Em.View.reopen - init: -> - this.container ||= Travis.__container__ - - @_super.apply(this, arguments) - -Travis.NotFoundView = Ember.View.extend - layoutName: 'layouts/simple' - -Travis.MainView = Travis.View.extend - layoutName: 'layouts/home' - classNames: ['main'] - -Travis.AuthSigninView = Travis.View.extend - layoutName: 'layouts/simple' - -Travis.InsufficientOauthPermissionsView = Travis.View.extend - layoutName: 'layouts/simple' - -Travis.FirstSyncView = Travis.View.extend - layoutName: 'layouts/simple' - require 'views/accounts' require 'views/annotation' require 'views/application' @@ -40,3 +17,8 @@ require 'views/status_images' require 'views/status_image_input' require 'views/dashboard' require 'views/show-more-button' +require 'views/main' +require 'views/not_found' +require 'views/auth/signin' +require 'views/insufficient_oauth_permissions' +require 'views/first_sync' diff --git a/assets/scripts/app/views/auth/signin.coffee b/assets/scripts/app/views/auth/signin.coffee new file mode 100644 index 00000000..db0b7772 --- /dev/null +++ b/assets/scripts/app/views/auth/signin.coffee @@ -0,0 +1,4 @@ +View = Ember.View.extend + layoutName: 'layouts/simple' + +Travis.AuthSigninView = View diff --git a/assets/scripts/app/views/first_sync.coffee b/assets/scripts/app/views/first_sync.coffee new file mode 100644 index 00000000..eb5a266a --- /dev/null +++ b/assets/scripts/app/views/first_sync.coffee @@ -0,0 +1,4 @@ +View = Travis.View.extend + layoutName: 'layouts/simple' + +Travis.FirstSyncView = View diff --git a/assets/scripts/app/views/insufficient_oauth_permissions.coffee b/assets/scripts/app/views/insufficient_oauth_permissions.coffee new file mode 100644 index 00000000..d7943de2 --- /dev/null +++ b/assets/scripts/app/views/insufficient_oauth_permissions.coffee @@ -0,0 +1,4 @@ +View = Travis.View.extend + layoutName: 'layouts/simple' + +Travis.InsufficientOauthPermissionsView = View diff --git a/assets/scripts/app/views/main.coffee b/assets/scripts/app/views/main.coffee new file mode 100644 index 00000000..895f4686 --- /dev/null +++ b/assets/scripts/app/views/main.coffee @@ -0,0 +1,5 @@ +View = Travis.View.extend + layoutName: 'layouts/home' + classNames: ['main'] + +Travis.MainView = View diff --git a/assets/scripts/app/views/not_found.coffee b/assets/scripts/app/views/not_found.coffee new file mode 100644 index 00000000..f616d9dd --- /dev/null +++ b/assets/scripts/app/views/not_found.coffee @@ -0,0 +1,4 @@ +View = Ember.View.extend + layoutName: 'layouts/simple' + +Travis.NotFoundView = View diff --git a/assets/scripts/app/views/view.coffee b/assets/scripts/app/views/view.coffee index 9ee4526a..4ae0ec60 100644 --- a/assets/scripts/app/views/view.coffee +++ b/assets/scripts/app/views/view.coffee @@ -1,19 +1,19 @@ View = Ember.View.extend - actions: - popup: (name) -> @popup(name) - popupClose: -> @popupClose() + actions: + popup: (name) -> @popup(name) + popupClose: -> @popupClose() - popup: (name) -> - @popupCloseAll() - name = event?.target?.name || name - $("##{name}").toggleClass('display') - popupClose: -> - $('.popup').removeClass('display') - popupCloseAll: -> - if view = Travis.View.currentPopupView - view.destroy() - Travis.View.currentPopupView = null + popup: (name) -> + @popupCloseAll() + name = event?.target?.name || name + $("##{name}").toggleClass('display') + popupClose: -> + $('.popup').removeClass('display') + popupCloseAll: -> + if view = Travis.View.currentPopupView + view.destroy() + Travis.View.currentPopupView = null - $('.popup').removeClass('display') + $('.popup').removeClass('display') Travis.View = View