From version < 4.2 >
edited by Ecaterina Moraru (Valica)
on 2018/05/04 11:36
To version < 5.2 >
edited by Vivek Iyer
on 2018/05/05 14:04
< >
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -xwiki:XWiki.evalica
1 +xwiki:XWiki.Remorax
Content
... ... @@ -1,35 +1,27 @@
1 1  ==== **USE CASES** ====
2 2  
3 -====== **__Main use case:__** ======
3 +====== ======
4 4  
5 -
6 -* The user enters his credentials.
7 -* If authenticated, he is redirected to the dashboard.
8 -* The user navigates to the page he wishes to edit.
9 -* He selects the edit option and if he's an advanced user, he sees the Blockly editor and selects it
5 +* Add a Blockly editor to the list of available editors (Wiki, WYSIWYG, etc) so that users can edit a page using the Blockly editor
6 +* Ability to define the Blockly editor as the default editor in the Admin and in the user’s profile
10 10  * The Blockly editor contains various blocks for performing common XWiki scripting actions
11 -* The user selects the appropriate blocks which show up as code on the side div
12 -* Once the user is done with the scripting, he clicks on the save and continue button
13 -* He is then redirected and is able to view his changes.
8 +* Ability to generate any scripting language output when saving the page, and starting with Velocity.
9 +* Ability to convert scripts writing in any scripting language into a visual Blockly view, starting with Velocity. This needs to be explored and if this is not possible then it means saving the Blockly data into a XObject of the pages and offering a custom Edit Sheet to use that when editing the page with the Blockly Editor.
10 +* Provide several Blocks by default that allow to do things in XWiki. Review common actions that need to be done in scripting and offer blocks for them. For example: Ability to write XWQL queries to return a list of pages and ability to execute actions on them: replace content, copy, rename, delete. Send email. Etc
11 +* Add ability for developers to create/edit new Blockly Blocks inside wiki pages. All the provided blocks by default should be using this strategy so they can be modified.
14 14  
15 15  (((
16 -====== **__Alternative use cases:__** ======
17 -
18 -
19 -* If the user is unable to authentinicate, the user is shown an error message saying invalid credentials
20 -* If the user is not an advanced user, he won't see the Blockly editor option and would need to go to Settings and enable Advanced User in Preferences.
21 -
22 22  (((
23 -
24 -
25 25  ==== **ARCHITECTURE** ====
26 26  
27 -* The Blockly editor: This is the topmost layer, and contains custom made blocks for the most commonly used scripting actions
28 -* The converter: This is the middle layer, and converts the blocks to code, which gets displayed in the div
29 -* The interpreter: This is the lowermost layer and interprets the converted code, this is similar to the source editor
17 +* The Blockly editor: This contains custom made blocks for the most commonly used scripting actions
18 +* The compiler: This converts the blocks to code for various programming languages, starting with Velocity
19 +* The decompiler: This converts code to the Blockly blocks while editing scripts. This needs to be evaluated and it needs to be decided whether it would be out of scope of our project
30 30  
21 +(((
31 31  
32 32  )))
24 +)))
33 33  
34 34  (((
35 35  ==== **PROS/CONS** ====

 Requirements
 Idea
 

https://xwiki.markmail.org/search/?q=vivek+iyer

 

http://dev.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/BlocklyEditor
https://developers.google.com/blockly/

Description

USE CASES

Main use case:
  • The user enters his credentials.
  • If authenticated, he is redirected to the dashboard.
  • The user navigates to the page he wishes to edit.
  • He selects the edit option and if he's an advanced user, he sees the Blockly editor and selects it
  • The Blockly editor contains various blocks for performing common XWiki scripting actions
  • The user selects the appropriate blocks which show up as code on the side div
  • Once the user is done with the scripting, he clicks on the save and continue button
  • He is then redirected and is able to view his changes.
  • Add a Blockly editor to the list of available editors (Wiki, WYSIWYG, etc) so that users can edit a page using the Blockly editor
  • Ability to define the Blockly editor as the default editor in the Admin and in the user’s profile
  • The Blockly editor contains various blocks for performing common XWiki scripting actions
  • Ability to generate any scripting language output when saving the page, and starting with Velocity.
  • Ability to convert scripts writing in any scripting language into a visual Blockly view, starting with Velocity. This needs to be explored and if this is not possible then it means saving the Blockly data into a XObject of the pages and offering a custom Edit Sheet to use that when editing the page with the Blockly Editor.
  • Provide several Blocks by default that allow to do things in XWiki. Review common actions that need to be done in scripting and offer blocks for them. For example: Ability to write XWQL queries to return a list of pages and ability to execute actions on them: replace content, copy, rename, delete. Send email. Etc
  • Add ability for developers to create/edit new Blockly Blocks inside wiki pages. All the provided blocks by default should be using this strategy so they can be modified.
Alternative use cases:
  • If the user is unable to authentinicate, the user is shown an error message saying invalid credentials
  • If the user is not an advanced user, he won't see the Blockly editor option and would need to go to Settings and enable Advanced User in Preferences.

ARCHITECTURE

  • The Blockly editor: This is the topmost layer, and contains custom made blocks for the most commonly used scripting actions
  • The converter: This is the middle layer, and converts the blocks to code, which gets displayed in the div
  • The interpreter: This is the lowermost layer and interprets the converted code, this is similar to the source editor

ARCHITECTURE

  • The Blockly editor: This contains custom made blocks for the most commonly used scripting actions
  • The compiler: This converts the blocks to code for various programming languages, starting with Velocity
  • The decompiler: This converts code to the Blockly blocks while editing scripts. This needs to be evaluated and it needs to be decided whether it would be out of scope of our project

PROS/CONS

Pros:
  • Its easier to code, especially for the inexperienced users
  • Even for the experienced users, its easier since more code is achieved in less keystrokes
  • Encourages inexperienced coders to start coding too
Cons:
  • Since the blocks are tailor-made for certain common scripting actions, other actions would probably me more difficult to code and would become complicated
  • Google Blockly only supports a limited number of languages, so extending support for other programming languages would be a problem.


 

Get Connected