class DealsShowController @$inject: ['deal'] constructor: (deal) -> @deal = deal.data angular.module('bakery.deals').controller('DealsIndexController', DealsIndexController) %a(if-can='manageDeals' ui-sref='dealsNew') New Deal %a(if-can='!manageDeals') Cannot Text %a(ui-sref='dealsNew') New Deal %a(ui-sref="dealsShow({ dealKey: deal.key})") Show Deal %div{ ng: { controller: 'DealsController as dealsCtrl', init: 'dealsCtrl.prepareData()' }} = if can? :manage, Deal %a{ href: "deals/new" } New Deal %td.sensitive {{ dealsCtrl.foo }} %td = @publisher.name = render 'bar_table', ngController: 'dealsCtrl' :javascript angular.module("deals").run(function (DataService) { DataService.set('publisher', #{@publisher.to_json if @publisher}); }); %div(ng-init='dealsCtrl.prepareData()') %a(ui-sref='dealsNew' if-can='manageDeals') New Deal %td.sensitive(ng-bind='dealsCtrl.foo') %td(ng-bind='dealsCtrl.publisher.name') %ng-include(src="'deals/bar_table.html'" include-replace) %span(ng-bind='metricsCtrl.foo') angular.module('bakeryServices').constant 'PERMISSIONS', manageDeals: 'manageDeals' createDeals: 'createDeals' readDeals: 'readDeals' $httpProvider.interceptors.push -> { 'request': (config) -> if config.data? and config.url.match(/^\//) config.data = humps.decamelizeKeys(config.data) return config 'response': (response) -> return humps.camelizeKeys(response) }