define ['app', 'marionette', 'vent', 'models/mix/mixItem', 'views/mix/mixListLayout', 'views/mix/mixListView', 'views/mix/mixDetailView' 'views/mix/mixEditView', 'views/user/userProfileView', 'models/user/userItem', 'views/user/userListView', 'views/user/userEditView'], (App, Marionette, vent, MixItem, MixListLayout, MixListView, MixDetailView, MixEditView, UserProfileView, UserItem, UserListView, UserEditView)-> class DssController extends Marionette.Controller home: -> console.log "Controller: home" @showMixList() true showMixList: (options) -> app = require('app') app.contentRegion.show(new MixListLayout(options or {order_by: 'latest'})) true showMixListType: (type) -> @showMixList({order_by: type}) true showMix: (slug)-> console.log "Controller: showMix" app = require('app') mix = new MixItem({id: slug}) mix.fetch( success: -> app.contentRegion.show(new MixDetailView({model: mix})) true ) true uploadMix: -> console.log("Controller: mixUpload") app = require('app') mix = new MixItem({ title: '', description: '', mix_image: '', is_featured: false }); app.contentRegion.show(new MixEditView({model: mix})) true editMix: (slug) -> console.log("Controller: mixEdit") app = require('app') mix = new MixItem({id: slug}) mix.fetch( success: -> app.contentRegion.show(new MixEditView(model: mix)) ) true showChat: -> console.log("Controller: showChat") app = require('app') app.contentRegion.show(new ChatView()) showUserList: -> console.log("Controller: showUserList") app = require('app') app.contentRegion.show(new UserListView()) showUserProfile: (slug) -> console.log("Controller: showUserProfile") app = require('app') user = new UserItem({id: slug}) user.fetch( success: -> app.contentRegion.show(new UserProfileView({model: user})) error: (a, b, c) -> console.log("Error fetching user") ) showUserFavourites: (slug) -> console.log("Controller: showUserFavourites") @showMixList({order_by: 'latest', favourites__slug: slug}) showUserLikes: (slug) -> console.log("Controller: showUserLikes") @showMixList({order_by: 'latest', likes__slug: slug}) showUserMixes: (slug) -> console.log("Controller: showUserMixes") @showMixList({order_by: 'latest', user: slug}) showUserFollowing: (slug) -> console.log("Controller: showUserFollowing") app = require('app') app.contentRegion.show(new UserListView({followers__slug: slug})) showUserFollowers: (slug) -> console.log("Controller: showUserFollowers") app = require('app') app.contentRegion.show(new UserListView({following__slug: slug})) editUser: -> console.log("Controller: editUser") app = require('app') user = new UserItem({id: com.podnoms.settings.currentUser }) user.fetch( success: -> app.contentRegion.show(new UserEditView(model: user)) ) true DssController