goToFile: (e) ->
key = $(e.currentTarget).data 'key'
+ console.log key
@options.main.addTransition key, 'coverage'
events:
+ 'click .component-viewer-workspace-item [data-key]': 'goToWorkspaceItem'
'click [data-option=coverage]': 'toggleCoverage'
@delegateEvents()
+ goToWorkspaceItem: (e) ->
+ key = $(e.currentTarget).data 'key'
+ workspace = @options.main.workspace
+ workspaceItem = workspace.findWhere key: key
+ workspaceItemIndex = workspace.indexOf workspaceItem
+ workspace.reset workspace.initial(workspace.length - workspaceItemIndex)
+ @options.main.addTransition workspaceItem.get('key'), workspaceItem.get('transition')
+
+
toggleCoverage: (e) ->
el = $(e.currentTarget)
active = el.is '.active'
serializeData: ->
- _.extend super, workspace: @options.workspace.toJSON()
+ _.extend super,
+ workspace: @options.main.workspace.toJSON()
+ settings: @options.main.settings.toJSON()
@component = new Backbone.Model()
@headerView = new HeaderView
model: @component
- workspace: @workspace
main: @
@source = new Backbone.Model()
@sourceView = new SourceView model: @source, main: @
+ @settings = new Backbone.Model issues: false, coverage: true, duplications: false
+
onRender: ->
@headerRegion.show @headerView
source = @requestSource key
component = @requestComponent key
$.when(source, component).done =>
- @workspace.findWhere(key: key).set 'component': @component.toJSON()
+ @workspace.where(key: key).forEach (model) =>
+ model.set 'component': @component.toJSON()
@render()
- @showCoverage()
+ if @settings.get('coverage') then @showCoverage() else @hideCoverage()
showCoverage: ->
</div>
<div class="component-viewer-options button-group">
- <button data-option="issues"><i class="icon-issue"></i> Issues</button>
- <button data-option="coverage"><i class="icon-coverage"></i> Coverage</button>
- <button data-option="duplications"><i class="icon-duplications"></i> Duplications</button>
+ <button data-option="issues" {{#if settings.issues}}class="active"{{/if}}>
+ <i class="icon-issue"></i> Issues
+ </button>
+ <button data-option="coverage" {{#if settings.coverage}}class="active"{{/if}}>
+ <i class="icon-coverage"></i> Coverage
+ </button>
+ <button data-option="duplications" {{#if settings.duplications}}class="active"{{/if}}>
+ <i class="icon-duplications"></i> Duplications
+ </button>
</div>
\ No newline at end of file
Handlebars.registerHelper('qualifierIcon', function(qualifier) {
return new Handlebars.SafeString(
- '<i class="icon-qualifier-' + qualifier.toLowerCase() + '"></i>'
+ qualifier ? '<i class="icon-qualifier-' + qualifier.toLowerCase() + '"></i>': ''
);
});