Difference between revisions of "Talk:Lemon8-XML Roadmap"
From PKP Wiki
Jerico.dev (Talk | contribs) m (Removed already implemented lookup/parser sources.) |
Jerico.dev (Talk | contribs) m (Moved "additional ideas" to main page.) |
||
Line 72: | Line 72: | ||
* We'll have to create a new citation plugin category if we need additional hooks or have many plug-ins. | * We'll have to create a new citation plugin category if we need additional hooks or have many plug-ins. | ||
* Otherwise we prefer to use existing categories. | * Otherwise we prefer to use existing categories. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Latest revision as of 12:42, 3 February 2010
Contents
GUI specification Citation support in submission/editorial process
Citation Extraction/Insertion
- must-have: copy & paste
We can use the existing text field in the submission process for "bulk citation insert":- enter citations (text-only) -> disable TinyMCE-plugin for citation field
- "parse" button will split up citations (one per line?) and send them to the configured parser services
- new: parsing should be non-blocking if possible - alternatively: a progress bar should appear
- citation editor appears as soon as citations have been recognized
- optional: automatic extraction
Use document parser to extract citations:- recognize .odt file type and try to extract citations
- show citations in citation editor if citations have been found
Citation Parsing/Editing/Lookup
The current citation editor GUI is already very good. It has the following functionality:
- open/close citation details (current bug: opening details for one citation should close all other citations)
- save citation details
- parse/lookup citation
- text field for editing the unparsed text
- moving citations up and down
- new: allow users to move a citation anywhere in the editor
- remove citation
- add citation
Plugin Configuration
- enable/disable L8X citation parsing
- enable/disable automatic citation extraction
- select/configure parsing services
- select/configure lookup services
Implementation
- citation insertion
- use existing text-area for input in submission step 2 (metadata)
- "parse"-button triggers AJAX request that will insert the citation editor on the same page
- open: non-blocking AJAX-request / progress-bar
- citation extraction
- use full-page-request on file upload
- if citations have been found then display a check-box (default: on) to enable citation extraction
- citation editor will automatically appear in step two (metadata) with the extracted citations
- citation editor
- port existing GUI to jQuery
- "edit" triggers an AJAX request that inserts the citation field editor
- "edit" closes other open field editor (if any)
- "edit" for an open citation closes it
- implement dirty-pattern to avoid losing user-data on editor close
- "save details" and "save citation text" will become one single button ("save")
- "save" triggers an AJAX request that persists citation text and citation fields to the database
- "parse citation" and "lookup citation" will become one single button ("lookup")
- "lookup" triggers an AJAX request for parsing and lookup that inserts lookup data into fields and provides the user with feedback for the parsing/lookup score
- unparsed citation is implemented as text area
- citation fields are implemented as input fields
- "move up" and "move down" trigger AJAX requests that update the GUI accordingly (this is different from current implementation which triggers a full-page request that is not really usable)
- "insert before" is a drop-down field that shows all citations by number, it has an entry "at the end..."
- "remove citation" triggers an alert "do you really want to remove ...citation title...?" - if confirmed, an AJAX request will be triggered that persists the removal
- "add citation" triggers an AJAX request that inserts a new citation into the GUI and opens the citation editor with empty fields
- make sure that GUI conforms to PKP's standard design re-using existing CSS wherever possible
- configuration
- check-box in setup - step4: enable/disable L8X citation parsing (if jQuery support is enabled then this will trigger the other options to appear)
- check-box in setup - step4: enable/disable automatic citation extraction (available only if L8X parsing is enabled)
- select/configure parsing/lookup services: use the existing GUI elements from L8X (no AJAX required, if jQuery support is enabled then dependent sub-options will only appear when the main service is enabled)
The Role of Plug-ins
When to do we need plug-ins?
- non-standard installation requirements that need to be isolated
- complex configuration or user-interface requirements that clutter the core interface for first-time users and should be kept out of the way
- performance implications (when switching on a functionality causes a non-avoidable performance onus)
- isolation of application-specific citation adapter code in one place to keep the core code clean -> improved code modularization and maintainability
Where to place citation plug-ins?
- We'll have to create a new citation plugin category if we need additional hooks or have many plug-ins.
- Otherwise we prefer to use existing categories.