fix worker name truncation

This commit is contained in:
Sven Fuchs 2012-09-17 11:41:55 +02:00
parent 4300a9e9ea
commit f4eda4e41a
6 changed files with 53 additions and 30 deletions
assets
javascripts/app
models
templates/workers
views
stylesheets/right
public
javascripts
stylesheets

View File

@ -14,19 +14,6 @@ require 'travis/model'
@get('name').match(/\d+$/)[0]
).property('name')
display: (->
name = @get('name')
state = @get('state')
payload = @get('payload')
if name
name = name.replace('travis-', '')
if state == 'working' && payload != undefined
repo = if payload.repository then $.truncate(payload.repository.slug, 18) else undefined
number = if payload.build and payload.build.number then ' #' + payload.build.number else ''
state = if repo then repo + number else state
name + ': ' + state
).property('state', 'name', 'payload')
isWorking: (->
@get('state') == 'working'
).property('state')

View File

@ -1,21 +1,25 @@
<h4>{{t workers}}</h4>
<ul id="workers">
{{#each group in controller.groups}}
{{#view Travis.WorkersView contextBinding="repository"}}
{{#view Travis.WorkersListView contextBinding="repository"}}
<li class="group">
<h5 {{action toggle}}>
{{group.firstObject.host}}
</h5>
<ul>
{{#each worker in group}}
<li class="worker">
<div class="icon"></div>
{{#if worker.isWorking}}
<a {{bindAttr href="worker.urlJob"}} {{bindAttr title="worker.lastSeenAt"}} {{action route}}>{{worker.display}}</a>
{{else}}
{{worker.display}}
{{/if}}
</li>
{{#view Travis.WorkersItemView workerBinding="worker"}}
<li class="worker">
<div class="icon"></div>
{{#if worker.isWorking}}
<a {{bindAttr href="worker.urlJob"}} {{bindAttr title="worker.lastSeenAt"}} {{action route}}>
{{view.display}}
</a>
{{else}}
{{view.display}}
{{/if}}
</li>
{{/view}}
{{/each}}
</ul>
</li>

View File

@ -2,10 +2,25 @@
SidebarView: Travis.View.extend
templateName: 'layouts/sidebar'
WorkersView: Travis.View.extend
WorkersListView: Travis.View.extend
toggle: (event) ->
$(event.target).closest('li').toggleClass('open')
WorkersItemView: Travis.View.extend
display: (->
name = (@get('worker.name') || '').replace('travis-', '')
state = @get('worker.state')
payload = @get('worker.payload')
if state == 'working' && payload != undefined
repo = payload.repository.slug
number = ' #' + payload.build.number
"<span class='name'>#{name}: #{repo}</span> #{number}".htmlSafe()
else
"#{name}: #{state}"
).property('worker.state')
QueueItemView: Travis.View.extend
urlJob: (->
Travis.Urls.job(@get('job.repository.slug'), @get('job.id'))

View File

@ -24,13 +24,19 @@
margin-bottom: 5px
padding-left: 1px
.name,
.slug
display: inline-block
overflow: hidden
max-width: 150px
white-space: nowrap
text-overflow: ellipsis
.name
max-width: 140px
.slug
max-width: 150px
&.open ul
display: block

File diff suppressed because one or more lines are too long

View File

@ -1019,20 +1019,31 @@ pre#log .bg-white {
padding-left: 1px;
}
/* line 27, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li .name,
#right #workers li .slug,
#right #queues ul li .name,
#right #queues ul li .slug {
display: inline-block;
overflow: hidden;
max-width: 150px;
white-space: nowrap;
text-overflow: ellipsis;
}
/* line 34, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li .name,
#right #queues ul li .name {
max-width: 140px;
}
/* line 37, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li .slug,
#right #queues ul li .slug {
max-width: 150px;
}
/* line 40, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li.open ul,
#right #queues ul li.open ul {
display: block;
}
/* line 37, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
/* line 43, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li .icon,
#right #queues ul li .icon {
clear: left;
@ -1044,17 +1055,17 @@ pre#log .bg-white {
-webkit-border-radius: 8px;
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAMAAADarb8dAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUNCRkI5RUU0MzQzMTFFMEIyNjY5REVFMEM3Qjc3NUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUNCRkI5RUY0MzQzMTFFMEIyNjY5REVFMEM3Qjc3NUUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MURBN0Q0RDQzNDMxMUUwQjI2NjlERUUwQzdCNzc1RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MURBN0Q0RTQzNDMxMUUwQjI2NjlERUUwQzdCNzc1RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiEmX8AAAAFTUExURXvfR3DXP2vUOGfSNYPjT1zJKm/XPIfnVWfRNXfcRIHiTnneRmjSNX7gSWzUOG/WO2jSNm/XPnTZQYDhTGTPMYbmVGbRNHHYQIXlUYXjUHjeRoPjUG/WPIHiT3/hTGjTNmHNLoTjT3bcRH/hSn/hS4XlU1vIKV3KK4TkUITkUYroV2zUOmbRNXfdRWPNMHvfSGrUN3PZQGzVOXzeR1nGJl7KK23VOmbRM2rTN4fmVVzIKV3LLGXPMXHYP3XZQWDLLHneR3veRlrHJ1zHKGrTNnXbQ4XkU4blVGfRNGXQMnXaQWDMLWbQM3PYQGLNLl7LLGrSN27WPGXQNHbaQnzgSWXPMnjcRIHjT2vTOF7KLG7XO2DLLWHMLXHXP33hSXjdRXndRXjdRnfbQ2fSNGjRNVrHKGHMLmLNL27WO4DhTWPOMITlU33hSnbbQ3PZQWTPMmzUOVaNkeEAAADwSURBVHjaDIxTdwNhFADv2sg6bpzaRmrbdtf4/v9T93XOzIBrWFP++vE9tPQqWSR58DJCvrJvSlKbH44OnCIMZSIqpIkQB6RjMstRbqiITrmtOCh3mBGmA+dHvzloCrFORiZjRnnygyv23pdUq/b3I6cPrjGG+9jGOMT6Q7nR4MENry9H8+vHZFwLgqANA2+NzRUt+YTbVvwuQc8NLRVV3rSEE2ZhswTUhZexuzPPWKol31wzgZXeSZixdeTT2Nl0mtqwQ8274d2h+rjgK5UCrcB2l3p6nTBO2foSLiMkw9xfl1p98cJs0SJEkSD+BRgAO8wzFCijcvMAAAAASUVORK5CYII=');
}
/* line 47, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
/* line 53, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li.waiting .icon,
#right #queues ul li.waiting .icon {
background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAPCAMAAADarb8dAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QUNCRkI5RUU0MzQzMTFFMEIyNjY5REVFMEM3Qjc3NUUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QUNCRkI5RUY0MzQzMTFFMEIyNjY5REVFMEM3Qjc3NUUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MURBN0Q0RDQzNDMxMUUwQjI2NjlERUUwQzdCNzc1RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MURBN0Q0RTQzNDMxMUUwQjI2NjlERUUwQzdCNzc1RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiEmX8AAAAFTUExURXvfR3DXP2vUOGfSNYPjT1zJKm/XPIfnVWfRNXfcRIHiTnneRmjSNX7gSWzUOG/WO2jSNm/XPnTZQYDhTGTPMYbmVGbRNHHYQIXlUYXjUHjeRoPjUG/WPIHiT3/hTGjTNmHNLoTjT3bcRH/hSn/hS4XlU1vIKV3KK4TkUITkUYroV2zUOmbRNXfdRWPNMHvfSGrUN3PZQGzVOXzeR1nGJl7KK23VOmbRM2rTN4fmVVzIKV3LLGXPMXHYP3XZQWDLLHneR3veRlrHJ1zHKGrTNnXbQ4XkU4blVGfRNGXQMnXaQWDMLWbQM3PYQGLNLl7LLGrSN27WPGXQNHbaQnzgSWXPMnjcRIHjT2vTOF7KLG7XO2DLLWHMLXHXP33hSXjdRXndRXjdRnfbQ2fSNGjRNVrHKGHMLmLNL27WO4DhTWPOMITlU33hSnbbQ3PZQWTPMmzUOVaNkeEAAADwSURBVHjaDIxTdwNhFADv2sg6bpzaRmrbdtf4/v9T93XOzIBrWFP++vE9tPQqWSR58DJCvrJvSlKbH44OnCIMZSIqpIkQB6RjMstRbqiITrmtOCh3mBGmA+dHvzloCrFORiZjRnnygyv23pdUq/b3I6cPrjGG+9jGOMT6Q7nR4MENry9H8+vHZFwLgqANA2+NzRUt+YTbVvwuQc8NLRVV3rSEE2ZhswTUhZexuzPPWKol31wzgZXeSZixdeTT2Nl0mtqwQ8274d2h+rjgK5UCrcB2l3p6nTBO2foSLiMkw9xfl1p98cJs0SJEkSD+BRgAO8wzFCijcvMAAAAASUVORK5CYII=');
}
/* line 50, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
/* line 56, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li.errored .icon,
#right #queues ul li.errored .icon {
background: url('data:image/png;base64,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');
}
/* line 53, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
/* line 59, /Users/sven/Development/projects/travis/travis-ember/assets/stylesheets/right/lists.sass */
#right #workers li.stopped .icon,
#right #queues ul li.stopped .icon {
background: url('data:image/png;base64,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');