GSoC'19 Coding Period Week #4

GSoC'19 Coding Peroid Week #4

It will be last week before the first evaluation of the Google Summer of Code 2019.

Project Abstract

My project is "Collaborative Editors" which provide a plugin for various Real-Time Collaborative Editors. It also allows integration of those Real-Time Collaborative Editors.

 

Previous Progress

  1. "Collaborative Editors" module with the completed plugin manager.
  2. Partially completed "Etherpad Editors" plugin which allows integration of Etherpad in Drupal 8.
  3. And 2 PHP Unit Tests to check the presence of "collaborative_editors.overview" route and to check availability of "EtherpadEditor" Plugin

 

Week 4 Progress

To complete the "Etherpad Editor" plugin which includes the following:-

  1. Add methods to create group, pad, author etc in Etherpad.
  2. Using these methods to develop a restful route.
  3. Complete "Drupal.editor.attach" JavaScript function which hides the Drupal's default editor and place Etherpad in place of it.
  4. Complete "Drupal.editor.detach" JavaScript function which transfers the Etherpad's data to the default editor when the user submits (save or publish) the node.

Codes can be found here. And below is the video to explain the installation.

 

Difficulties

  1. In Etherpad HTTP Client library setHTML() method was missing, so I need to reaised Pull Request for it.
  2. Since Etherpad loads inside iFrame, Hence it was a challenge to transfer its data into hidden default editor using JavaScript and jQuery
  3. Etherpad HTTP Client API's object has data as its private member. So it was challenge to access private members outside the class.