XWebIDE Application Improvements

Last modified by Vincent Massol on 2024/11/19 16:15

 XWiki
 Requirements
 Idea
 

Description

Introduction

This application aims to create a Web IDE in XWiki and to provide to the developers all the tools they need to write code in XWiki.
The first version allows the user to create a project, and it is composed of a menu with the project's content and an editor. The current editors are the one XWiki already provide (wiki, object, class), but with the ability to use in a more structured environement.

The goal of this document is to determine the work that has to be done now in order to transform the current application and create the best XWiki-based Web IDE posible.

Next steps

Here are the features that have been considered for the future of the application, and we'd like you to vote to order them based on their priority :
You can also add other features in that list if you think something is missing.

List of features

  • TABS Ability to use several tabs in the Web IDE
  • HIDE_EDIT_MODES Change the tree so that the actions for each page (edit wiki, object, class) do not take vertical space (one possibility is with a right click on the page name or some menu/icons/etc but it shouldn't be limited to this).
  • LOGICAL_TREE In addition to providing a Physical tree view of the spaces/pages, also provide a Logical tree view of all the elements of an application (sheets, JSX, SSX, Macros, Translations, etc)
  • PAGE_RELATED_ELEMENTS Show links to related elements in the tree: jsx, ssx, macros, sheet and includes used in the edited page. When viewing a page, provide helpers to the user: view which sheet is applied (and ability to edit it), view applied translation (and ability to edit it), view included pages, etc
  • WIKI_WIDE_ELEMENTS Display wiki-wide elements (macro, ssx, jsx) in a wiki directory -VMA: I don't understand what this has to do with WebIDE. This seems more something that should be in the Index Application. The WebIDE app should limit itself to the project IMO
  • GIT SVN / Git integration
  • AWM Integrate the Web IDE in AppWithinMinutes to create an "Advanced" edition mode
  • FS_EXPORT Integration with XFF Filter to be able to export/import from the local filesystem.
  • MOBILE_DEVICES/TOUCHSCREENS Explicitly support use of the IDE on mobile devices such as iPad.
Information

The current application uses a custom tree to display the elements in the menu. Using the Document Tree Macro would break the compatibility with XWiki 5.4.x

Votes

List of features YannVincentMariusThomasGuillaume DLudovicAncaRaluca...
TABS 11121
  - (done) 22
HIDE_EDIT_MODES 36476
  2 45
LOGICAL_TREE 42212
  1 11
PAGE_RELATED_ELEMENTS 23333
  5 -3
WIKI_WIDE_ELEMENTS 58588
  - -8
GIT 77744
  3 34
AWM 64665
  4 57
FS_EXPORT 
5856
  6 -6
MOBILE_DEVICES 



7  -9

1 = most important, 8 = least important

The current application (v0.7)

WikiEditor.png

Available features:

  • Create a project
    • Add/remove a entire space in the project
    • Add/remove a single page from a space in the project
  • View the project content in a menu (at the left of the page)
  • Edit a page with the project content displayed
    • Wiki and object editor loaded with JavaScript
    • Class editor from XWiki where the project menu has been added
  • Check for unsaved content when the user leaves a page (wiki and object editors)
  • Rename a page or a space with has been added in the project
  • Export the project as a .xar file
  • Ability to work with the Syntax Highlighting and/or Auto-completion applications
  • Ability to work with Nested spaces

TABS (v0.8)

The tabs received the best result during the poll and thus tabs have been implemented in the version 0.8

LOGICAL_TREE proposal

The tree is broken up into:

  • Classes
  • Pages
  • JavaScript
  • CSS
  • Macros
  • Translations

Proposal about the implementation of the Logical tree view :

  • 6 categories : Classes, Pages, JavaScript, CSS, Macros, Translations
  • Classes
    • "Edit fields" in a class opens an AWM class editor
    • Templates and Sheets will be displayed as sub-items of the class, not as separate pages
  • Pages
    • 2 types of pages : "Item page" and "Content page"
    • Item page : Page with an object which uses a sheet, the user can only select "Edit fields" which leads to the object editor
    • Content page : Classic XWiki page with the possibility to edit the content or a JavaScript/CSS object with "On this page or on demand" scope
  • JavaScript/CSS/Macros/Translations
    • All the elements added from these categories will be created with a "Wiki" scope
    • Each new element will be placed in a new page in the "Code" space (e.g.: A new "MyAPI" JavaScript object will be placed in MyAppCode.JS_MyAPI)
  • Everything other than "pages" will be represented in the wiki model as pages inside of the project's "Code Space".

This view will be available in addition to the Wiki Model view which exists now.

LogicalView.png


 

Get Connected