[[BackLinksMenu]] [[TicketQuery(summary=GROUP_APP_RESOURCE_MANIPULATION_R0, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == Resource manipulation is set of features that allow various operations with resources. Some of these include * Import resources * Copy resources * Delete resources * Edit resources - this is available for some resources * Export resources The interactions will be the following * Drag and drop (not part of this revision) * Dragging file from the OS to the resources palette inserts the file as a resource * Dragging file from the OS to a work area inserts the resource into the resources palette AND the work area. * Dragging resource from the resources palette exports the resource as a file * Buttons * Following buttons are available when a list item is selected or not * Import button allows importing of a resource by envoking file dialog * Following buttons are available only when a list item is selected * Export button allows exporting of a resource by envoking file dialog * Edit button allows out-of-frame editing of a resource with appropriate plugin. Note that for 2.0 we plan only text editing that way, but there should be a way to know exactly what resource types are editable * Duplicate button creates a copy of a selected resource * Delete button deletes the selected resource. A dialog with a warning will be useful if the resource is used by frames as content. == Task requirements == * For this revision you should * Ensure only the first level of resources is displayed (e.g without subresources as embeded books' resources) * Ensure the other levels' resources can be easily implemented in future revisions of this task - if we decide to implement tree view for advanced users * Implement the delete resource and duplicate resource functionalities * Delete resource should delete resource and it's children. * If the resource is content of a frame for example, the user should be warned. After deletion, this frames become empty (no content). * Duplicate resource should duplicate resource and it's children. If a resource is a page element, it's duplicated with an offset on the same page. If the resource is page, it is inserted after the source page. * Implement Import functionality (link it with the Import button). Note that Import should insert the resource into the book, not only into resources palette. * Import should allow import of any kind of resources * Implement the duplicate functionality * Duplicate should copy all the data from the resource. * Make the delete and copy buttons active (clickable) only when a resource is selected * The import button should always be active == Task result == The result of this task is source code. == Implementation idea == ^(Provide some rough implementation idea(s).)^ == Related == ^(Add links to related tasks that could be useful or helpful.)^ == How to demo == Prerequestuques * Open Sophie * Create a new book Steps * Import a resource using the Import button from the palette * Select the resource from the list * Duplicate the resource from the list. Show the copy in the list and on the page * Delete the first resource * Show that the second resource is still on place * Reload the book = Design = ^(Describe your design here.)^ = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = ^(Write comments for this or later revisions here.)