Feature Wiki

Information about planned and released features

Tabs

ILIAS Page Editor

1 General

Maintainer and Tester

  • ILIAS Page Editor
    • Authority to Sign off on Conceptual Changes: akill
    • Authority to Sign off on Code Changes: akill
    • Authority to Curate Test Cases: ezenzen
    • Authority to (De-)Assign Authorities: akill
    • Tester: FH Aachen
    • Assignee for Security Reports: akill
    • Assignee for Security Issues: akill
    • Unit-specific Guidelines, Rules, and Regulations: LINK MISSING

 

Additional

Roadmap

Without Priority

The following issues are mostly usability issues, that could be tackled as part of the ongoing PER project. - Action to edit translations is hard to find: https://mantis.ilias.de/view.php?id=33957 - Creating instance link areas for new media objects is cumbersome, see README.md

Short Term

Remove jQuery / unmaintained lib dependencies

  • Migrate from jQueryUI draggable to a non jQuery lib, e.g. https://shopify.github.io/draggable/
  • Migrate from Owl.Carousel to a better maintained lib. Suggested is https://github.com/ganlanyuan/tiny-slider, but there might be a better alternative.

Improve/avoid error messages

  • If tags are incorrectly nested in text editing (see e.g. https://mantis.ilias.de/view.php?id=37044), XML errors are presented to the user which are hard to interpret ("Opening and ending tag mismatch..."). We either implement a mechanism that fixes simple XML errors (e.g. adding missing closing tags) or transform these messages to something more readable (e.g. by removing the technical parts and focus on the faulty tag type, e.g. kw, iln, ...)

Continue Page Editor Refactoring (started with ILIAS 7)

https://docu.ilias.de/goto_docu_wiki_wpage_6254_1357.html

Major Goals

  • Increase Client side code quality. (JS coding style, use common patterns, bundling techniques, client-server-communication)
  • Adapt to PLR layout, make use of tool slate.
  • Increase usability, reduce clicks, auto-save.

Increase Robustness of Link Handling / User Input Processing

Link formattings lead to subtle issues (e.g. #30906) sometimes, since they are not part of the DOM structure on the client side and added later via PHP. This may result in invalid XML. There are different possible ways to handle this, e.g. make links part of DOM already on the client side will allow Tiny to tidy up the structure. In PHP the replacement of [xln] ans similar tags could be improved, by processing pairs of opening and closing tags and check their inner content for validity before replacing them with XML counterparts.

In general the old string manipulations should be replaced by DOM manipulations whenever possible when transforming the client side data.

Clarify dependency/relation with Style/Content component

See roadmap in Content Style.

Similar to the system style concepts the small less dependency (css/content.less) should be migrated to sass.

Page Content Integration

Relocate the classes to have all necessary files for a PC in one subfolder. Remove the special case conditionals for using the slate implementation. Simplify the ctrl flow and reuse of create/edit forms.

Mid Term

Performance

Large pages, especially with a high number of elements, e.g. data tables with lots of cells decrease the performance. This is mainly due to the way the model is retrieved in the "all" command ($o->pcModel = $this->getPCModel()). An alternative would be to use an xml -> xslt -> json approach at least for paragraphs and to "bulk-query" them. See https://mantis.ilias.de/view.php?id=29680

Replace or refactor mediawiki word-level-diff code

This code is copied from an older mediawiki version. I compares two versions of page HTML outputs and marks differences. The code should either be replaced by a lib that provides the same functionality, refactored and integrated into own code or at least replaced by an up-to-date code excerpt from mediawiki.

Accordions and Media

Currently media players continue to play if accordions are being closed. A generalised event handling should allow components to act on show/hide events.

Lower Cyclomatic Complexity (Ongoing)

This component suffers from record high cyclomatic complexity numbers. Refactorings should target and split up methods and classes to gain better maintainability.

E.g.

  • XSL processing should be outfactored to a separate class
  • Rendering should b outfacored to a separate class

Apr. 2019:

> phploc components/ILIAS/COPage
...
Cyclomatic Complexity
  Average Complexity per LLOC                     0.25
  Average Complexity per Class                   28.46
    Minimum Class Complexity                      1.00
    Maximum Class Complexity                    492.00
  Average Complexity per Method                   2.95
    Minimum Method Complexity                     1.00
    Maximum Method Complexity                   114.00
...

Refactor Update Listeners

If i18n is enabled and a page is copied (e.g. because of a new translation), it is currently not possible to attach an update listener to that page. Because \ilPageObject::copyPageToTranslation statically creates a new instance for the copied page, listeners attached to the source page instance are not copied/executed on update. Of course just copying the update listeners is maybe not sufficient (because copying their arguments could create new issues).

See also https://mantis.ilias.de/view.php?id=29057

Long Term

Internal Links for More Contexts

Internal links are not supported in all contexts. The behaviour of the different link targets is not well defined and thus a general usability issue. A separate activation of these (e.g. only in the learning module) might be feasible. If possible the link concepts should be revised completely.

Integration of new question service

The new questions service should be integrated into the page editor. Especially the client side "self-assessment" player part should be implemented (and factored out into a separate component).

Refactor page question handling

Note this is an older entry. Should be done with integration of the question service.

Render page questions

  • ilPCQuestion::getJavascriptFiles loads
    • components/ILIAS/Scorm2004/scripts/questions/pure.js
    • components/ILIAS/Scorm2004/scripts/questions/question_handling.js
    • components/ILIAS/TestQuestionPool/js/ilAssMultipleChoice.js
    • components/ILIAS/TestQuestionPool/js/ilMatchingQuestion.js
    • (components/ILIAS/COPage/js/ilCOPageQuestionHandler.js)
  • ilPCQuestion::getJSTextInitCode loads
    • ilias.question.txt... strings
  • ilPCQuestion::getQuestionJsOfPage
    • uses components/ILIAS/COPage/templates/default/tpl.question_export.html
    • returns basix HTML of question (qtitle content)
    • adds function renderILQuestion
    • this function is declared early here, BUT not called yet
    • it contains jQuery('div#container').autoRender call (pure.js rendering)
  • ilPCQuestion::getOnloadCode
    • adds calls for all renderers renderILQuestion
    • inits question answers and callback

Saving page questions

Saving of page question answers is quite strange and includes dependencies to the SCORM component. This should be refactored.

Page Rendering

  • ilPCQuestion->getOnloadCode()
  • -> ilCOPageQuestionHandler.initCallback('".$url."');

Clicking Answer

  • components/ILIAS/Scorm2004/scripts/questions/question_handling.js
    • ilias.questions.checkAnswers
    • calls ilias.questions.(), e.g. ilias.questions.assMultipleChoice()
  • -> ilCOPageQuestionHandler.js
    • ->processAnswer
    • -> sendAnswer sends async request to
  • -> ilPageObjectGUI->processAnswer
    • ->ilPageQuestionProcessor->saveQuestionAnswer

Long Term

 

2 Projects

The following projects are planned or have been realised for this component:

NEW Projects

Ongoing Projects

Completed Projects

3 Suggested Features

List of suggested features - please add new requests below in alphabetical order [1] )
 

  1. ...

Suggested for 11

ALREADY SUGGESTED

  1. (Project) Splitting-up Tools
  2. Abandon Global Switch for Page Editor
  3. Add comments to single text-/media elements
  4. Anchor-Links for Content Pages
  5. animation for pictures
  6. Basic Rich Text Editing
  7. block activation by learning progress
  8. Chart
  9. Choose Text color
  10. colored blocks in editing mode
  11. Content Quick-Filter (learning progress controlled)
  12. Content Quick-Filter (user controlled)
  13. Context-dependent paragraph styles in advanced lists and tables
  14. Contexts of the editor and entering
  15. Copy Content from Media Pool via Page Editor
  16. Copyright, Artist and License for Media in Page Editor
  17. device orientation controlled section
  18. Drill Down Menu for Page Editor
  19. Full Screen mode for images as a greybox
  20. Further Improvement of Content Style Editor
  21. ILIAS page editor for info page - advanced implementation
  22. ILIAS page editor for starting page
  23. Improve Content Style
  24. Improve Page Element »Certificate«
  25. Improved arranging/sorting of data
  26. Improved Footnote Handling
  27. Improving File List Presentation
  28. Insert HTML5 Code
  29. Interactive images - change state depending on learning progress
  30. Internal Links in Content Snippets
  31. Internal links to Data Collection entries
  32. Introducing a undo and redo button in ILIAS Page Editor
  33. Language Settings in User Content
  34. Linking in ILIAS Editor
  35. Manual Carousel / Slider Content Element for Page Editor
  36. New Page Element »My Badges« for Portfolios
  37. Nudging user who blocks page editor
  38. Page Editor as Mode
  39. Page Editor » Accordion Editing (outdated)
  40. Page Editor » Accordion Presentation
  41. Page Editor » Advanced Table
  42. Page Editor » Calling Advanced Settings of Page Elements
  43. Page Editor » Carousel Revision
  44. Page Editor » Column Layout Part II
  45. Page Editor » Content Snippet Editing
  46. Page Editor » Data Table Editing » Rearranging Rows and Columns
  47. Page Editor » Editing Advanced Lists
  48. Page Editor » Employing Column Layout
  49. Page Editor » Making the Advanced Table responsive
  50. Page Editor » Media Editing » Part II
  51. Page Editor » New Create Menu for Page Elements
  52. Page Editor » Page Editing Improvements
  53. Page Editor » Page Element Question
  54. Page Editor » Page Elements of Portfolios
  55. Page Editor » Page-Element-PlugIns
  56. Page Editor » Presentation of Object Sets in Page Editor
  57. Page Editor » Shortcuts in Editing Text
  58. Page Editor » Specify Target Attribute for External Weblinks
  59. Page Editor » Text Editing on small devices
  60. Page Editor » Use Anchor with Internal Links
  61. Page Editor » Visual Editing of Links
  62. Page Editor » Reorganise Setting Text Content Menu in Editor Administration
  63. Page element Chart
  64. PDF-Printing Page Editor Content
  65. Poll as Page Editor Element
  66. Present calendar block on container content page
  67. Quick-SignUp-Page-Element
  68. Regulation of individual styles via RBAC / via Edit Settings
  69. Revision of Clipboard
  70. Save a page modification automatically
  71. SCORM player as page object in ILIAS page editor
  72. Seamless developping instructional material
  73. Section Editing: Multi-selection of style classes
  74. Set height of an advanced table row
  75. Simplify Interaction Between Page Editor and Creation of Objects in Container Objects
  76. Sortable List
  77. Suggestions for an Improved ILIAS Page Editor (outdated)
  78. Switching between content styles
  79. Tabbed Content Element for Page Editor
  80. Tools for reactive learning
  81. Tooltip Links
  82. Use ILIAS page editor in exercise instructions and assignments

4 Scheduled Features

The following features have been scheduled / published in ILIAS Release 11:

The following features have been scheduled / published in ILIAS Release 10:

The following features have been scheduled / published in ILIAS Release 9:

The following features have been scheduled / published in ILIAS Release 8:

The following features have been scheduled / published in ILIAS Release 7:

The following features have been scheduled / published in ILIAS Release 6:

The following features have been scheduled / published in ILIAS Release 5.4:

The following features have been scheduled / published in ILIAS Release 5.3:

The following features have been scheduled / published in ILIAS Release 5.2:

The following features have been scheduled / published in ILIAS Release 5.1:

The following features have been developed and published in Release 5.0:

The following features have been developed and published in Release 4.4:

 
The following features have been developed and published in Release 4.3:
  • none
 
The following features have been developed and published in Release 4.2:The following features have been developed and published in Release 4.1:
The following features have been developed and published in Release 4.0:

5 Abandoned, Redundant and Rejected Feature Requests

Suggested to be Abandoned

Accepted to be Abandoned

Removed from Code

Requests that are redundant / already implemented in other requests

Rejected Feature Requests


[1] To force a decision about your request, add the page title to the Jour Fixe agenda at the main page of this wiki.

Last edited: 21. Oct 2024, 15:31, Gruber, Ann-Christin [acgruber]