Difference between revisions of "Talk:Lemon8-XML Roadmap"
From PKP Wiki
Jerico.dev (Talk | contribs) m (Alec has already commented.) |
Jerico.dev (Talk | contribs) m (Moved "additional ideas" to main page.) |
||
| (43 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": | |
| + | #* 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<br/>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. | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | * | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | * | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
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.