Add EML ============ Scenario -------- As a scientist, I want to add metadata descriptions about data I have collected or used so I can share the contextual information with my colleagues. Summary ------- A scientist should be able to add metadata descriptions for their dataset. The goal is to first add a top level dataset folder, with the name of the folder being the title of the dataset. When the scientist clicks on "Submit Data" anywhere in the app, a dialog should prompt them to provide a dataset title. The science metadata should be updated with the title, creator, and contact information. The package describing the metadata should be updated, and the metadata and package should be created in the repository. All future edits are updates. Mockup Image ------------ .. image:: images/Add-a-Folder.png Technical Sequence Diagram -------------------------- .. @startuml images/add-a-folder-sequence-diagram.png !include ../plantuml-styles.txt skinparam SequenceGroupBorderColor #AAAAAA skinparam SequenceGroupBorderThickness #AAAAAA actor "Scientist" participant EMLViewer as View <<Backbone.View>> participant DataPackageView as PackageView <<Backbone.View>> participant DataItemView as DataItemView <<Backbone.View>> participant EML as EML <<DataONEObject>> participant DataPackage as DataPackage <<Backbone.Collection>> participant LocalStorage as LocalStore <<Store>> participant MN as MN <<Store>> View -> View : on("click #submit_data", handleSubmit()) Scientist -> View : Clicks "Submit Data" menu item activate View View -> View : handleSubmit() View -> EML : new({"title": "Untitled Dataset: ...", ...}) deactivate View activate EML EML --> View : EML deactivate EML activate View View -> DataPackage : new() deactivate View activate DataPackage DataPackage -> DataPackage : on("add", handleAdd()) DataPackage --> View : DataPackage deactivate DataPackage activate View View -> View : render() View -> PackageView : new({model: DataPackage}) deactivate View activate PackageView PackageView -> DataPackage : listenTo("add", handleAdd()) PackageView --> View : DataPackageView deactivate PackageView activate View View -> DataPackage : add(EML) deactivate View activate DataPackage DataPackage -> DataPackage : handleAdd() DataPackage -> PackageView : handleAdd() deactivate DataPackage activate PackageView PackageView -> DataItemView : new({model: EML}) deactivate PackageView activate DataItemView DataItemView --> PackageView : DataItemView deactivate DataItemView activate PackageView PackageView -> DataItemView : render() deactivate PackageView activate DataItemView DataItemView -> DataItemView : on("blur #titleText", handleChange()) DataItemView -> Scientist: DataItemView note right We highlight and focus the title for the scientist to change end note deactivate DataItemView activate Scientist Scientist -> DataItemView : Enters title deactivate Scientist activate DataItemView DataItemView -> DataItemView : handleChange() DataItemView -> EML : set("title", title) deactivate DataItemView activate EML EML -> DataItemView : EML note right The EML model has changed, so we render the Cancel/Save buttons to later persist the package and EML end note deactivate EML @enduml .. image:: images/add-a-folder-sequence-diagram.png