diff --git a/assets/javascripts/app/layouts.coffee b/assets/javascripts/app/layouts.coffee index a746a1f2..ee2f66c6 100644 --- a/assets/javascripts/app/layouts.coffee +++ b/assets/javascripts/app/layouts.coffee @@ -23,4 +23,5 @@ Travis.Layout.instance = (name) -> @layout = Travis.Layout[name].create(name: name) require 'layouts/default' +require 'layouts/profile' diff --git a/assets/javascripts/app/views.coffee b/assets/javascripts/app/views.coffee index 5671f184..f4228741 100644 --- a/assets/javascripts/app/views.coffee +++ b/assets/javascripts/app/views.coffee @@ -1,98 +1,9 @@ -Travis.Views = - ApplicationView: Em.View.extend - templateName: 'application' +require 'ext/ember/namespace' - RepositoriesView: Em.View.extend - templateName: 'repositories/list' - - RepositoriesItemView: Em.View.extend - classes: (-> - color = Travis.Helpers.colorForResult(@getPath('repository.lastBuildResult')) - classes = ['repository', color] - classes.push 'selected' if @getPath('repository.selected') - classes.join(' ') - ).property('repository.lastBuildResult', 'repository.selected') - - urlRepository: (-> - Travis.Urls.repository(@get('context')) - ).property('context') - - urlLastBuild: (-> - Travis.Urls.lastBuild(@get('context')) - ).property('context') - - RepositoryView: Em.View.extend - templateName: 'repositories/show' - - TabsView: Em.View.extend - templateName: 'repositories/tabs' - - urlRepository: (-> - Travis.Urls.repository(@getPath('controller.repository')) - ).property('controller.repository.id') - - urlBuilds: (-> - Travis.Urls.builds(@getPath('controller.repository')) - ).property('controller.repository.id') - - urlBuild: (-> - Travis.Urls.build(@getPath('controller.repository'), @getPath('controller.build')) - ).property('controller.repository.slug', 'controller.build.id') - - urlJob: (-> - Travis.Urls.job(@getPath('controller.repository'), @getPath('controller.job')) - ).property('controller.repository.slug', 'controller.job.id') - - HistoryView: Em.View.extend - templateName: 'builds/list' - - BuildsItemView: Em.View.extend - classes: (-> - Travis.Helpers.colorForResult(@getPath('context.result')) - ).property('context.result') - - urlBuild: (-> - Travis.Urls.build(@getPath('context.repository'), @get('context')) - ).property('context.repository.slug', 'context') - - BuildView: Em.View.extend - templateName: 'builds/show' - - classes: (-> - Travis.Helpers.colorForResult(@get('result')) - ).property('result') - - requiredJobs: (-> - @getPath('context.jobs').filter((job) -> job.get('allow_failure') != true) - ).property() # TODO same here with binding to 'context.data.job_ids' - - allowedFailureJobs: (-> - @getPath('context.jobs').filter((job) -> job.get('allow_failure')) - ).property() - - urlBuild: (-> - Travis.Urls.build(@getPath('context.repository'), @get('context')) - ).property('controller.content.repository.id', 'controller.content.id') - - JobsView: Em.View.extend - templateName: 'jobs/list' - - JobsItemView: Em.View.extend - urlJob: (-> - Travis.Urls.job(@getPath('context.repository'), @get('context')) - ).property('context.repository', 'context') - - JobView: Em.View.extend - templateName: 'jobs/show' - - classes: (-> - Travis.Helpers.colorForResult(@get('result')) - ).property('result') - - urlJob: (-> - Travis.Urls.job(@getPath('context.repository'), @get('context')) - ).property('controller.content.repository.id', 'controller.content.id') - - LogView: Em.View.extend - templateName: 'jobs/log' +@Travis.Views = Em.Namespace.create() +require 'views/app' +require 'views/build' +require 'views/job' +require 'views/repo' +require 'views/tabs' diff --git a/assets/javascripts/app/views/app.coffee b/assets/javascripts/app/views/app.coffee new file mode 100644 index 00000000..b554cc7f --- /dev/null +++ b/assets/javascripts/app/views/app.coffee @@ -0,0 +1,3 @@ +Travis.Views.reopen + ApplicationView: Em.View.extend + templateName: 'application' diff --git a/assets/javascripts/app/views/build.coffee b/assets/javascripts/app/views/build.coffee new file mode 100644 index 00000000..1921c7dc --- /dev/null +++ b/assets/javascripts/app/views/build.coffee @@ -0,0 +1,33 @@ +@Travis.Views.reopen + HistoryView: Em.View.extend + templateName: 'builds/list' + + BuildsItemView: Em.View.extend + classes: (-> + Travis.Helpers.colorForResult(@getPath('context.result')) + ).property('context.result') + + urlBuild: (-> + Travis.Urls.build(@getPath('context.repository'), @get('context')) + ).property('context.repository.slug', 'context') + + BuildView: Em.View.extend + templateName: 'builds/show' + + classes: (-> + Travis.Helpers.colorForResult(@get('result')) + ).property('result') + + requiredJobs: (-> + @getPath('context.jobs').filter((job) -> job.get('allow_failure') != true) + ).property() # TODO same here with binding to 'context.data.job_ids' + + allowedFailureJobs: (-> + @getPath('context.jobs').filter((job) -> job.get('allow_failure')) + ).property() + + urlBuild: (-> + Travis.Urls.build(@getPath('context.repository'), @get('context')) + ).property('controller.content.repository.id', 'controller.content.id') + + diff --git a/assets/javascripts/app/views/job.coffee b/assets/javascripts/app/views/job.coffee new file mode 100644 index 00000000..8c8dc21e --- /dev/null +++ b/assets/javascripts/app/views/job.coffee @@ -0,0 +1,23 @@ +@Travis.Views.reopen + JobsView: Em.View.extend + templateName: 'jobs/list' + + JobsItemView: Em.View.extend + urlJob: (-> + Travis.Urls.job(@getPath('context.repository'), @get('context')) + ).property('context.repository', 'context') + + JobView: Em.View.extend + templateName: 'jobs/show' + + classes: (-> + Travis.Helpers.colorForResult(@get('result')) + ).property('result') + + urlJob: (-> + Travis.Urls.job(@getPath('context.repository'), @get('context')) + ).property('controller.content.repository.id', 'controller.content.id') + + LogView: Em.View.extend + templateName: 'jobs/log' + diff --git a/assets/javascripts/app/views/repo.coffee b/assets/javascripts/app/views/repo.coffee new file mode 100644 index 00000000..3003461e --- /dev/null +++ b/assets/javascripts/app/views/repo.coffee @@ -0,0 +1,24 @@ +@Travis.Views.reopen + RepositoriesView: Em.View.extend + templateName: 'repositories/list' + + RepositoriesItemView: Em.View.extend + classes: (-> + color = Travis.Helpers.colorForResult(@getPath('repository.lastBuildResult')) + classes = ['repository', color] + classes.push 'selected' if @getPath('repository.selected') + classes.join(' ') + ).property('repository.lastBuildResult', 'repository.selected') + + urlRepository: (-> + Travis.Urls.repository(@get('context')) + ).property('context') + + urlLastBuild: (-> + Travis.Urls.lastBuild(@get('context')) + ).property('context') + + RepositoryView: Em.View.extend + templateName: 'repositories/show' + + diff --git a/assets/javascripts/app/views/tabs.coffee b/assets/javascripts/app/views/tabs.coffee new file mode 100644 index 00000000..f172cb40 --- /dev/null +++ b/assets/javascripts/app/views/tabs.coffee @@ -0,0 +1,21 @@ +@Travis.Views.reopen + TabsView: Em.View.extend + templateName: 'repositories/tabs' + + urlRepository: (-> + Travis.Urls.repository(@getPath('controller.repository')) + ).property('controller.repository.id') + + urlBuilds: (-> + Travis.Urls.builds(@getPath('controller.repository')) + ).property('controller.repository.id') + + urlBuild: (-> + Travis.Urls.build(@getPath('controller.repository'), @getPath('controller.build')) + ).property('controller.repository.slug', 'controller.build.id') + + urlJob: (-> + Travis.Urls.job(@getPath('controller.repository'), @getPath('controller.job')) + ).property('controller.repository.slug', 'controller.job.id') + + diff --git a/assets/javascripts/lib/ext/ember/namespace.js b/assets/javascripts/lib/ext/ember/namespace.js new file mode 100644 index 00000000..52f4d0e3 --- /dev/null +++ b/assets/javascripts/lib/ext/ember/namespace.js @@ -0,0 +1,3 @@ +Em.Namespace.reopen = Em.Namespace.reopenClass + + diff --git a/public/javascripts/application.js b/public/javascripts/application.js index f06f14f3..7d55f5b4 100644 --- a/public/javascripts/application.js +++ b/public/javascripts/application.js @@ -1 +1 @@ -minispade.register('templates', "(function() {Ember.TEMPLATES['application']=Ember.Handlebars.compile(\"
\\n Travis CI\\n #\\n
\\n\\n
\\n {{outlet left}}\\n
\\n\\n
\\n {{outlet main}}\\n
\\n\");Ember.TEMPLATES['builds/list']=Ember.Handlebars.compile(\"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n {{#each build in content}}\\n {{#view Travis.Views.BuildsItemView contextBinding=\\\"build\\\"}}\\n \\n \\n \\n \\n \\n \\n \\n {{/view}}\\n {{/each}}\\n \\n
{{t builds.name}}{{t builds.commit}}{{t builds.message}}{{t builds.duration}}{{t builds.finished_at}}
#{{number}}{{formatCommit commit}}{{{formatMessage commit.message short=\\\"true\\\"}}}{{formatDuration duration}}{{formatTime finished_at}}
\\n\\n

\\n \\n

\\n\");Ember.TEMPLATES['builds/show']=Ember.Handlebars.compile(\"{{#unless isLoaded}}\\n Loading ...\\n{{else}}\\n
\\n
\\n
\\n
{{t builds.name}}
\\n
{{number}}
\\n
{{t builds.finished_at}}
\\n
{{formatTime finished_at}}
\\n
{{t builds.duration}}
\\n
{{formatDuration duration}}
\\n
\\n\\n
\\n
{{t builds.commit}}
\\n
{{formatCommit commit}}
\\n {{#if commit.compareUrl}}\\n
{{t builds.compare}}
\\n
{{pathFrom commit.compareUrl}}
\\n {{/if}}\\n {{#if commit.authorName}}\\n
{{t builds.author}}
\\n
{{commit.authorName}}
\\n {{/if}}\\n {{#if commit.committerName}}\\n
{{t builds.committer}}
\\n
{{commit.committerName}}
\\n {{/if}}\\n
\\n\\n
{{t builds.message}}
\\n
{{{formatMessage commit.message}}}
\\n\\n {{#unless isMatrix}}\\n
{{t builds.config}}
\\n
{{formatConfig config}}
\\n {{/unless}}\\n
\\n\\n {{#if isMatrix}}\\n {{view Travis.Views.JobsView jobsBinding=\\\"view.requiredJobs\\\" required=\\\"true\\\"}}\\n {{view Travis.Views.JobsView jobsBinding=\\\"view.allowedFailureJobs\\\"}}\\n {{else}}\\n {{view Travis.Views.LogView contextBinding=\\\"jobs.firstObject\\\"}}\\n {{/if}}\\n
\\n{{/unless}}\\n\");Ember.TEMPLATES['jobs/list']=Ember.Handlebars.compile(\"{{#if view.jobs.length}}\\n \\n \\n \\n \\n {{#each configKeys}}\\n \\n {{/each}}\\n \\n \\n \\n {{#each job in view.jobs}}\\n {{#view Travis.Views.JobsItemView contextBinding=\\\"job\\\"}}\\n \\n \\n \\n \\n {{#each configValues}}\\n \\n {{/each}}\\n \\n {{/view}}\\n {{/each}}\\n \\n
\\n {{#if view.required}}\\n {{t jobs.build_matrix}}\\n {{else}}\\n {{t jobs.allowed_failures}}{{whats_this allow_failure_help}}\\n {{/if}}\\n
{{this}}
#{{number}}{{formatDuration duration}}{{formatTime finished_at}}{{this}}
\\n\\n {{#unless view.required}}\\n
\\n
{{t \\\"jobs.allowed_failures\\\"}}
\\n
\\n

\\n Allowed Failures are items in your build matrix that are allowed to\\n fail without causing the entire build to be shown as failed. This lets you add\\n in experimental and preparatory builds to test against versions or\\n configurations that you are not ready to officially support.\\n

\\n

\\n You can define allowed failures in the build matrix as follows:\\n

\\n
\\n      matrix:\\n        allow_failures:\\n          - rvm: ruby-head\\n        
\\n
\\n
\\n {{/unless}}\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/log']=Ember.Handlebars.compile(\"
{{{formatLog log.body}}}
\\n\\n{{#if sponsor.name}}\\n

\\n {{t builds.messages.sponsored_by}}\\n {{sponsor.name}}\\n

\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/show']=Ember.Handlebars.compile(\"
\\n
\\n
\\n
Job
\\n
{{number}}
\\n
{{t jobs.finished_at}}
\\n
{{formatTime finished_at}}
\\n
{{t jobs.duration}}
\\n
{{formatDuration duration}}
\\n
\\n\\n
\\n
{{t jobs.commit}}
\\n
{{formatCommit commit}}
\\n {{#if commit.compareUrl}}\\n
{{t jobs.compare}}
\\n
{{pathFrom commit.compareUrl}}
\\n {{/if}}\\n {{#if commit.authorName}}\\n
{{t jobs.author}}
\\n
{{commit.authorName}}
\\n {{/if}}\\n {{#if commit.committerName}}\\n
{{t jobs.committer}}
\\n
{{commit.committerName}}
\\n {{/if}}\\n
\\n\\n
{{t jobs.message}}
\\n
{{formatMessage commit.message}}
\\n
{{t jobs.config}}
\\n
{{formatConfig config}}
\\n
\\n\\n {{view Travis.Views.LogView}}\\n
\\n\\n\");Ember.TEMPLATES['repositories/list']=Ember.Handlebars.compile(\"{{#unless content.lastObject.isLoaded}}\\n Loading ...\\n{{else}}\\n