Difference between revisions of "Talk:Lemon8-XML Roadmap"
From PKP Wiki
Jerico.dev (Talk | contribs) m (insert test requirements) |
Jerico.dev (Talk | contribs) m (Moved "additional ideas" to main page.) |
||
| (36 intermediate revisions by 9 users not shown) | |||
| Line 1: | Line 1: | ||
| − | == | + | =GUI specification Citation support in submission/editorial process= |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ==Citation Extraction/Insertion== | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
# must-have: copy & paste<br/>We can use the existing text field in the submission process for "bulk citation insert": | # must-have: copy & paste<br/>We can use the existing text field in the submission process for "bulk citation insert": | ||
| Line 78: | Line 12: | ||
#* show citations in citation editor if citations have been found | #* 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) | * open/close citation details (current bug: opening details for one citation should close all other citations) | ||
* save citation details | * save citation details | ||
| Line 90: | Line 24: | ||
* add citation | * add citation | ||
| − | + | ==Plugin Configuration== | |
* enable/disable L8X citation parsing | * enable/disable L8X citation parsing | ||
* enable/disable automatic citation extraction | * enable/disable automatic citation extraction | ||
| Line 96: | Line 30: | ||
* select/configure lookup services | * select/configure lookup services | ||
| − | + | ==Implementation== | |
# citation insertion | # citation insertion | ||
| Line 128: | Line 62: | ||
#* 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) | #* 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. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | * | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
Latest revision as of 12:42, 3 February 2010
Contents |
[edit] GUI specification Citation support in submission/editorial process
[edit] 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
[edit] 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
[edit] Plugin Configuration
- enable/disable L8X citation parsing
- enable/disable automatic citation extraction
- select/configure parsing services
- select/configure lookup services
[edit] 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)
[edit] 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.