backend/app/services/manifest/Neo4jManifest.scala (10 lines): - line 362: | MERGE (unprocessedBlob)<-[todo:TODO { - line 623: |MATCH (b :Blob:Resource {uri: {uri}})<-[todo:TODO { - line 674: |MATCH (b :Blob:Resource {uri: {uri}})<-[todo:TODO { - line 827: | OPTIONAL MATCH (type)<-[:TYPE_OF]-(b:Blob)<-[todo:TODO { attempts: 0 }]-(:Extractor) - line 925: // Effectively, re-label all the blob's PROCESSED relations as TODO relations. - line 946: | // we need to create a TODO for each so we preserve data from each (e.g. the workspace uploaded to). - line 947: | // A MERGE won't do this, because we don't have any distinguishing properties on the TODO in the path. - line 976: s"When re-running successful extractors for blob ${uri.value}, ${relationshipsCreated} TODO relations were created and ${originalNumberOfProcessedRelations} PROCESSED relations deleted. These should be equal" - line 989: // Failed extractors leave in place a TODO with attempts > 0 and an EXTRACTION_FAILURE. - line 1151: // TODO MRB: handle the above more gracefully at a higher level, it's a hack down here frontend/src/js/components/viewer/PageViewer/PagePreview.tsx (6 lines): - line 10: // TODO: factor out duplicated functions signature - line 16: // TODO: just share if identical when the dust settles? - line 21: // TODO: factor out duplicated functions signature - line 31: // TODO: will we hit this loop without guard? - line 87: // TODO MRB: handle errors - line 99: // TODO MRB: just use the text divs created by PDF.js directly via dangerouslySetInnerHTML? backend/app/services/index/ElasticsearchPages.scala (5 lines): - line 109: // TODO MRB: collapse total page count and height into fields on the document itself - line 110: // TODO SC/JS: We agree. - line 141: // TODO MRB: removed the size parameter so can bring in total count and agg size to a single query - line 142: // TODO SC/JS: Not sure about this? Maybe just denormalize the page height/count? - line 155: // TODO: this could also occur if the viewport passed from the client didn't match any pages frontend/src/js/components/workspace/Workspaces.tsx (4 lines): - line 116: // TODO: this used to use .icon, which seems to me a rendering layer thing so I removed from the server response - line 219: {/*TODO: why does outputting PartialUser here still typecheck, but break at runtime?? */} - line 668: // TODO: it would be nice to not have to do this check - line 676: // TODO: would it make sense to always set the focused node back to the rootNode when "clearing" focus? frontend/src/js/services/SearchApi.js (2 lines): - line 42: // TODO replace with user preferences for page size - line 44: // TODO replace with user preferences for sort by postgres/migrate-db/src/migrations/001.do.create_table_ingestion_events.sql (2 lines): - line 20: -- TODO think about indexing details->>'extractors' - line 21: -- TODO think about indexing workspace frontend/src/js/components/workspace/CreateFolderModal.tsx (2 lines): - line 18: // TODO replace this modal with an in-situ file naming system like any sane file browser - line 43: // TODO: I think maybe this should actually be sequenced after the above has finished? backend/app/extraction/ocr/TesseractPdfOcrExtractor.scala (2 lines): - line 27: // TODO: add a unit test so that a new extractor can't use this name - line 55: // TODO MRB: does RGB colour help or hinder here? frontend/src/js/types/redux/GiantState.ts (2 lines): - line 55: // TODO: type the rest of search state - line 66: // TODO: | undefined? frontend/src/js/components/PageViewer/VirtualScroll.tsx (2 lines): - line 69: // TODO: move pageCache up? - line 195: // TODO: try just useEffect frontend/src/js/components/PageViewer/model.ts (2 lines): - line 31: export type Highlight = SearchHighlight | FindHighlight; // TODO MRB: add a highlight type for comments - line 44: // TODO: Do we need this value wrapper? Keep getting lost looking for highlights, then remember I need to expand value frontend/src/js/reducers/pagesReducer.ts (2 lines): - line 26: SearchHighlight; // TODO MRB: add a highlight type for comments - line 29: // TODO: Do we need this value wrapper? Keep getting lost looking for highlights, then remember I need to expand value backend/app/controllers/api/Comments.scala (2 lines): - line 46: // TODO add to index - line 59: // TODO MRB: how would we do permissions checking for deleting a comment? frontend/src/js/components/Search/Search.js (2 lines): - line 170: // TODO replace with user preferences for page size - line 172: // TODO replace with user preferences for sort order backend/app/extraction/email/olm/OlmEmailExtractor.scala (2 lines): - line 117: // TODO MRB: where are these files? - line 126: // TODO MRB: add this as a user facing attachment backend/app/services/previewing/PreviewService.scala (2 lines): - line 16: // TODO MRB: The calling code has a BasicResource (thanks to the GetResource check it does anyway for permissions) - line 141: // TODO MRB: this assumes that all clients support the same mime types frontend/src/js/components/PageViewer/Controls.tsx (2 lines): - line 39: // TODO: should we use ths? - line 70: // TODO: handle error backend/app/controllers/api/Collections.scala (2 lines): - line 160: // TODO MRB: this should be a single transactional operation in the database - line 222: // TODO: the language fixed values used to come from client. Though the only variable was the ingestion name backend/app/services/ingestion/IngestionServices.scala (2 lines): - line 67: // TODO once we get attempt everywhere we can remove the await - line 131: // TODO once we get attempt everywhere we can remove the await frontend/src/stylesheets/abstracts/_variables.scss (1 line): - line 46: // TODO: replace these backend/app/services/previewing/LibreOfficePreviewGenerator.scala (1 line): - line 14: // TODO MRB: all supported Open Office MIME types backend/app/controllers/api/Emails.scala (1 line): - line 58: // TODO MRB: fully restrict the thread based on what the user can see? backend/app/controllers/api/Resource.scala (1 line): - line 53: // TODO MRB: filter by collection and ingestion by writing failures as events to Elasticsearch cli/src/main/scala/com/gu/pfi/cli/RunIngestion.scala (1 line): - line 20: // TODO MRB: set throughput to 1? backend/app/model/frontend/Chip.scala (1 line): - line 59: // TODO - when the index supports attempts, make this function attempty frontend/src/js/eui-components/GiantEuiSearchResultNav.tsx (1 line): - line 45: // TODO MRB: refactor this hook to not rely on so many props cli/src/main/scala/com/gu/pfi/cli/service/CliUsers.scala (1 line): - line 16: // TODO MRB: should inherit the servers password requirements? frontend/src/js/components/viewer/AddToWorkspaceModal.tsx (1 line): - line 188: {/* TODO probably make this have custom rendering to make it obvious what's personal and what's public*/} backend/app/extraction/email/olm/OlmMessage.scala (1 line): - line 81: sensitivity = None, // TODO MRB: parse sensitivity (if it exists) frontend/src/js/components/SearchSidebar/SearchSidebar.js (1 line): - line 108: // TODO MRB: remove this once workspace counts are fixed backend/app/model/frontend/EmailThread.scala (1 line): - line 7: // TODO attachments backend/app/utils/Neo4jHelper.scala (1 line): - line 125: // TODO MRB: log slow async queries? (we would have to wait for all the results to complete) backend/app/services/index/Pages2.scala (1 line): - line 123: // TODO should really be a map of language -> page matches backend/app/model/annotations/Comment.scala (1 line): - line 27: // TODO MRB: introduce pt rectangle bounds for adding comments to the preview (and unified document viewer?) frontend/src/js/util/auth/authUploadWithProgress.ts (1 line): - line 138: // TODO MRB: this is a lot of headers which is a bit silly and also potentially too 'custom' frontend/src/js/components/UtilComponents/TreeBrowser/Leaf.tsx (1 line): - line 91: // TODO: it's a shame these are duplicated between node and leaf frontend/src/js/util/auth/authFetch.ts (1 line): - line 27: // TODO: SAH this should throw an object so that error messages from the server can be sensibly displayed backend/app/services/index/HitReaders.scala (1 line): - line 22: // TODO MRB: are these going to cause too many allocations? common/src/main/scala/utils/attempt/AttemptAwait.scala (1 line): - line 16: // This is just for legacy signature compat. TODO MRB: remove awaitEither backend/app/AppComponents.scala (1 line): - line 60: // TODO MRB: should we have allowed hosts enabled? how could it point to the ELB? backend/app/utils/aws/S3Client.scala (1 line): - line 38: // TODO MRB: these should all be attempty backend/app/commands/GetPages.scala (1 line): - line 67: // TODO SC/JS: This name is a bit wrong - its not simply metadata, it's language choice and *actual* data backend/app/extraction/ocr/OcrMyPdfImageExtractor.scala (1 line): - line 88: // TODO MRB: what to do when we are OCRing against multiple languages? backend/app/extraction/ocr/OcrMyPdfExtractor.scala (1 line): - line 101: // TODO MRB: stop overwriting when we are OCRing against multiple languages? backend/app/utils/PDFUtil.scala (1 line): - line 87: // TODO SC: Make a case class for this to help readability? backend/app/commands/IngestFile.scala (1 line): - line 64: // TODO MRB: create intermediate folders on the server? backend/app/services/index/ElasticsearchResources.scala (1 line): - line 423: // TODO MRB: re-enable once we determine why we sometimes have duplicate entries in the `workspace` field frontend/src/stylesheets/components/_sparkchart.scss (1 line): - line 18: // TODO: replace this with an accessible red that doesn't strobe common/src/main/scala/model/Uri.scala (1 line): - line 7: // TODO MRB: move back to app backend/app/services/Tika.scala (1 line): - line 32: // TODO continually add "document" type mimes here as we find them backend/app/extraction/tables/CsvTableExtractor.scala (1 line): - line 32: // TODO assume charset?? BAD??? backend/app/model/index/Page.scala (1 line): - line 26: // TODO: these are identical... why do we need them? backend/app/extraction/email/olm/OlmEmailDetector.scala (1 line): - line 10: // TODO MRB: is there an actual registered OLM mime type? this is invented common/src/main/scala/model/Language.scala (1 line): - line 74: // TODO polish elasticsearch plugin frontend/src/js/components/Uploads/UploadFiles.tsx (1 line): - line 66: // TODO MRB: explore whether this really needs to be a map compared to backend/app/services/Config.scala (1 line): - line 133: // TODO MRB: customisable number of shards? backend/app/utils/Ocr.scala (1 line): - line 111: // TODO MRB: allow OcrMyPdf to read DPI if set in metadata