It is indeed very hard to believe that three months of OPW internship have passed already, and it is actually a time to write up the Final Project Report. Well, it is satisfying in some ways.
So, here goes!
My Project: EtherEditor is the MediaWiki extension developed by Mark Holmquist, which allows collaborative editing of wiki pages via Etherpad Lite. Now, the whole idea of Free Software movement, or any other thing, which is believed to be something so meaningful like a movement – gets a little less meaningful without the very idea of collaboration. Collaborative editing is something, which I find cool enough! So, I did on a project, which does mean something to me. 🙂
Things done:
Bug Fixes:
# Bug No.: 39441
Description: Add tooltips to the icons for session and user list
- Added title attributes to the span elements that represent user and session lists in the UI.
- Didn’t add any messages because “User list” and “Session list” were already around from before, when we had text in the buttons.
Gerrit Status: Merged
- Getting rid of the feature of having multiple pad per page needed a lot of work. I started going deep into the flow of the whole structure. Spent a lot of time removing stuff from EtherEditorPad.php, ext.etherEdtior.js etc
- Cleaned the database up and updated the changes to EtherEditorHooks.php. Removed the fields admin_user and public pad from ethereditor_pads, EtherEditorHooks.php was updated accordingly. So, by the end of the third week, I was able to get rid of the two bugs that I was talking about – and a few more ( like, the preview feature was broken too.)
- Alternative construction of the URLS: The shareURL did not need the padID in it anymore, as the feature of having multiple pad per page was removed. The padURL needed to be reconstructed too – Pad URLs need to be built on the server side because of the information involved. The important parts are the URL to the base of the pad directory and the group ID. We get the first from the configuration of the wiki (it’s part of the stuff you configure before you can use the extension), but the group ID is brought over from the Etherpad Lite instance. Groups are the only way we can implement any authentication, so we use them for everything. They also help us by solving the problem of special characters, since hashing the page name gets rid of anything Etherpad Lite might deem inappropriate for pad URLs. We just pass in the literal string “original” as the pad name and be done with it.
![]() |
EtherEditor – User can enable it manually by checking the collaborate check-box |
![]() |
Here’s the checkbox added in the preference section |
- Updated the Client Library in EtherEditor : Forked the etherpad-lite-client from the git-repository and cloned it to core/extensions/EtherEditor/includes/ , well more specifically updated the EtherpadLiteClient.php file with the new php file from the cloned etherpad-lite-client followed by some unit testing.
- The issue with the Format Buttons bug was due to the client-side script in ep_ethereditor (the etherpad plugin we maintain that enables all of the formatting magic) has an incompatibility with the newest release of Etherpad Lite’s API – as we suspected. So a fix there.
Documentations:
- Installing phpunit in ubuntu-11.10 : On some problem I had faced.
- Meet the Functions! : While working with a few bugs and features, finally after quite a bit of struggle with the code, I had kind of felt that a brief introduction to the functions that I am dealing with would be good to be documented.
- So far with EtherEditor: OPW Project Update : Of all the work I had done till February.
- Curious Case of Format Buttons in EtherEditor : A major bug I had faced while working – made my work blocked for a few days. Here’s why!
- User Preference to enable EtherEditor by default: Yay! A new Feature : On how we got the new feature working.
- EtherEditor – How it Works! : A very important documentation of almost all the how’s, you can come up with – related to this extension.
Feedback on Project: I loved it! I would not say I never got frustrated, demotivated or blocked. In fact there was something like that from February End – March Beginning. A very unfortunate and confusing bug, did block my ways. Which is why – although two of my patches fixes the respective bugs and a few more right now, is yet to be merged – we were solving the issues with ep_ethereditor . But, I guess, this is also one of the many lessons I got to learn – to deal with situations like this and get going.
Good stuff! The disclaimer notwithstanding, I'm sure there are enough problems to keep you occupied. The post needs some screenshots – do you have any?
nice and neat report 🙂 and also done fab work 🙂
Sankarshan da,
Thanks! 🙂
Added a few screenshots. The one test instance that we have in our wmflabs, does not seem to be working right now. That would help otherwise.
Hey! Thanks 🙂