### codetube
    Copyright (C) 2011 payload payload@lavabit.com
    Copyright (C) 2011 dodo dodo.the.last@gmail.com

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>
###

{ BlobView } = require '../view/blob'
{ Blob } = require '../collection/blob'


class BlobsController

    constructor: (@client) ->
        @views = []

    initialize: () =>

    create: (i, section) =>
        blob = new Blob
        @views.push view = new BlobView el:$(section), model:blob
        _.extend view,
            owner  : expose.owner
            project: expose.project
        @listen blob, view
        @fetch view

    fetch: ({ owner, project, view_model:{path, sha} }) =>
        @client.api.emit 'blob', { owner, project, path, sha }

    listen: (blob, view) =>
        @client.api.on 'blob', (line) => # FIXME which project?!
            line.id = line.index
            setTimeout ( -> view.trigger 'hide:progressbar'), 500 # FIXME
            blob.add line

module.exports = { BlobsController }

