           @_addManifest file
           gotManifest = true
 
-
-      if gotFile and not gotManifest
-        @forceUpdate()
+    unless gotManifest
+      autoManifest = []
+      for name, _ of @state.files
+        autoManifest.push { Filename: name }
+      for name, _ of @state.tooBigFiles
+        autoManifest.push { Filename: name }
+
+      @subjectsFromManifest(autoManifest, [], "AutoGeneratedManifest")
 
   _addManifest: (file) ->
     reader = new FileReader

  createSubjects: ->
    allSubjects = []
    for name, {subjects} of @state.manifests
      {ready} = ManifestView.separateSubjects subjects, @state.files
      allSubjects.push ready...

    uploadAlert = (resolve) =>

      # TODO: Look into PapaParse features.
      # Maybe wan we parse the file object directly in a worker.
      {data, errors} = Papa.parse e.target.result.trim(), header: true
      @subjectsFromManifest(data, errors, file.name)
    reader.readAsText file

  subjectsFromManifest: (data, errors, fileName) ->
    console.log(data, errors, fileName)
    metadatas = for rawData in data
      cleanData = {}
      for key, value of rawData
        cleanData[key.trim()] = value?.trim?() ? value
      cleanData

    subjects = []
    for metadata in metadatas
      locations = @_findFilesInMetadata metadata
      unless locations.length is 0
        subjects.push {locations, metadata}

    @state.manifests[fileName] = {errors, subjects}
    @forceUpdate()

  _findFilesInMetadata: (metadata) ->
    filesInMetadata = []
