User:Renepick/todos/Mooc Scripte

The following is a list of Todos for the MOOC lua scripts maintained by User:Sebschlicht they can be found at:
 * Entrypoint for lua: Module:Mooc
 * Module:Exception
 * Module:Inheritance
 * Module:Mooc/Data/Item
 * Module:Mooc/TypeHandler
 * Module:Mooc/IndexParser
 * Module:Mooc/Data/Unit
 * Module:Mooc/Data/Lesson
 * Lesson Template: Template:Mooc/Lesson, Unit Template: Template:Mooc/Unit, Overview Template: Template:Mooc/Overview, Navigation Template: Template:Mooc/Navigation
 * current introduction (outdated) Mooc-Module
 * Design: User:Sebschlicht/mooc.css, interactive javascript: User:Sebschlicht/mooc.js, User:Sebschlicht/moocDiscussions.js, User:Sebschlicht/moocEditor.js, Resource loader: User:Sebschlicht/common.js

due: august 5th - start a new mooc
There is a Button that can start the creation of a new MOOC. The user will be asked to enter a name e.g MOOC-Tutorial there will be two new pages created MOOC-Tutorial/MoocIndex and MOOC-Tutorial.

due: august 5th - overview page and navigation

 * overview pahe should be able to rename and change the order of lessons

due: august 5th - point and click to create a MOOC

 * use javascript to create link like +create lesson / +create Unit buttons (in the best case during hover) in the sections of the MoocIndex
 * deprecated

due: august 12th - discussions

 * We need to be able to display the talk page in a better way within a box of the MOOC.
 * We need to take effort away from users of using wikisyntax like ::: or --~ (detect :: ~ )
 * We need to be able to allow users to answer to each comment directly. I guess mouse over effects and white space will be nice
 * be able to start discussions from any content and not only from within the discussion box (e.g. quizquestion number 2) (aggregate content on the lesson unit page, but leave the question on the discussion page which semantically belongs to the content e.g. Script, Quiz, video (going to commons or sometimes wikiversity - this is tricky), and the rest on unit or lesson page)
 * be compatible with the standards of discussion pages
 * TODO: we need to discuss again from which pages we make collections for discussions and how discussions should be displayed. e.g. on a lesson page it might make sense to aggregate all the discussions from the units but this would take a lot of data base queries in the backend and slow down the page (on the other side this could be asynch javascript) another option to consider: as soon as there are more than 3 or 4 quesions on a page or aggregated it might make sense to only show the title of the question and use a light box or opening up the question to give people the chance or reading it. where in wikis (due to tree answering) the culture is to append new questions at the bottom of the page in discussion fora they are appended at the top. Even when having a list one could have the first question alsways open... there are just some decisions which we have to make
 * open end goal: be able to display user avatars and be more human.
 * on the long term: up and down voting of answers

DONE - in place edits

 * BUG: saving further reading needs refresh of the page to be displayed. this should be triggered after saving. (maybe this is a problem of async http requests? in this sense there could be a small block of 200 ms?)
 * Done - To append  did the trick. not yet migrated from User:Sebschlicht/common.js to User:Sebschlicht/mooc.js


 * BUG: when clicking save the display should freeze and a loading gif should be displayed.
 * https://en.wikiversity.org/w/index.php?title=Web_Science/Part2:_Emerging_Web_Properties/MoocIndex&action=history the commit message could display the path of the edited section. such that one kows where the edit was
 * Done - Edit summaries now contain section id, type and title plus a note what has changed for this item. not yet migrated from User:Sebschlicht/common.js to User:Sebschlicht/mooc.js

bar
 * BUG?: something like
 * 1) foo

should work and render correctly
 * BUG: do not save parameter values starting any line with '*'
 * content on the lesson and unit pages needs to be editable in place
 * Done - not yet migrated from User:Sebschlicht/common.js to User:Sebschlicht/mooc.js


 * parsing the mooc index for in place edits can be done with &section paramter. Still there are some problems left
 * if the in place edit box opens up everything else should be hidden with an overlay (aka lightbox)
 * Done - not yet migrated from User:Sebschlicht/common.js to User:Sebschlicht/mooc.js


 * on the longterm: if in place editing is just the video or so don't show the entire section of MOOC index.
 * Done - not yet migrated from User:Sebschlicht/common.js to User:Sebschlicht/mooc.js

due: august 19th - usability / script loader / discussions

 * make navigation bar scrollable in viewport
 * use anchors instead of pointing to where content is (such as #quiz instead of /quiz)
 * edit buttons of script and quiz should also use modal box
 * there should be a pretty dominant link visible in the model boxes saying: "edit externally" for content with own pages
 * design / layout the modal box (is there a template for the modal box?) there should also be some links to the help section.
 * The boxes' HTML code gets generated using two JS functions in addition to very few code specific to a particular box type. The MOOC stylesheet contains the design for the boxes.


 * modal boxes should close upon saving
 * Could you please explain this? A save triggers a reload which makes it unnecessary to close boxes. In case an error occurs there is no reload and the box stays open indeed, which is a less subtile error indicator than console log entries.


 * is it possible to allow editing of model boxes with tab browsing. currently it is not possible
 * It is now also possible to browse to the save button using tab


 * This needs to be safer in the sense that the script loader should only load scripts in the protected namespace common.js (here the question is if those are included anyway (I don't think so)).

26th of august - categories / discussion box / UI

 * all pages that are automatically created should be tagged with category Category:MOOC-$MOOCTITLE$
 * Category:MOOC-$MOOCTITLE$ should also be created while $MOOCTITLE$ is created it should have some text explaining that the mooc was automatically created and it should especially include Category:MOOC in order to have the MOOC listed as a subcategory.
 * put redirects at talk pages to item page
 * think about moving pages
 * content should only be displayed if it is available (there are two ways: one having a add content box at the side and be able to select "script, quiz, learning goals, video, furtherReadings,..." the other one would be to give content creators a gadget which is java script and displays the full page design with empty boxes but learners will not see them)
 * edit buttons must be possible if logged out / and or java script blocked (this is currently not working)
 * how do we handle moving of pages and subpages? (one way would have been not making subpages but putting the content in the same page where the mooc lua script is invoked and parsing everything. but I guess this yields other problems besides rewriting a lot of code)
 * show discussion statistics
 * for current item
 * for child items
 * display news feed per lesson and per MOOC
 * collapse sections and threads to a fix height and place a "show more" div below
 * anchors must work for all item sections e.g. after quiz sent (this is something we do when the page is already designed, to safe time by limiting to what is necessary) and expand respective section
 * be able to embed youtube videos? placing I frames should be possible with the help of javascript.
 * use localization, we can do that easily by using mw.language in combination with separate wiki pages containing entries for a specific language
 * discussion system. if a user is not logged in display a big warning in the modal box explaining that this will be linked to his ip address.
 * modal boxes which have links to original edit pages should pay close attention to what happens when content was already edited in the textbox and then the link to source editing is clicked
 * BUG: transparent layer for collapsed elements catches mouse events. We want to delegate them to underlying elements instead.

2nd september - documentation

 * Category:MOOC seems like a good place to start new moocs and to start documentation Category:MOOC/documentation
 * discuss with a custodian if the Category system is really good to store all the documentation.
 * check error cases (correcting typos, moving pages, not invoking lua correctly, not having the MOOC index) and catch the lua errors for those cases and state really helpful solutions on what is going on.
 * have a little example mooc on how to create your own mooc
 * redo the documentation of the lua scripts (how to use them is more important then how to extend them)
 * create documentation for JS and CSS
 * create a picture and/or text that describes how lua, mediawiki, css and js work together.

migration
* contact a custodian as early as middle of august to show him the system and talk about deployment.
 * done cantacted dave braunschweig


 * ask custodians to update common.js by adding resource loader
 * Move all templates to Template: namespace
 * Done


 * find a good spot for mooc.js and mooc.css probably as subpages of MediaWiki:Common.js and MediaWiki:Common.css id est: MediaWiki:Common.js/mooc.js and MediaWiki:Common.css/mooc.css
 * check that the course can still be displayed and used completely without use of javascript and that just the presentation is lacking (even editing should work)

9th september - design

 * make templates / views (on paper)
 * define a fixed height div in which to display video previews
 * define user processes (almost done (we have click and see)).
 * implement the design

list of bugs found from migration

 * https://etherpad.wikimedia.org/p/Mooc-Issues

errors in mooc index
Module:Exception:2: failed to render item @ "Web Search Ecosystem/Understanding the problems with Web SPAM": item not found stack traceback: Module:Mooc:88: in function  (tail call): ? [C]: in function 'pcall' Module:Mooc:107: in function  (tail call): ? mw.lua:518: in function  ''' we have several options. If there is an error in parsing moocindex we could just revert to a version that is parsable (data would not really be lost since people have version history it might bring people into trouble while concurrent editing) another option is to catch error messages in a much better way and suggest to have a look at MoocIndex maybe even point out which versions are stable... we have to discuss this
 * we must be able to catch errors in the MoocIndex format. they can easily be implemented. like the following: '''

oerde14

 * Define a structure for the talk
 * decide which technical issues are important
 * decide which legal issues are important
 * decide how much documentation an creation of moocs to show

at robs
we need some graphics for a better usability:
 * next prev unit / lesson graphic (which can transparently be displayed over the videos)
 * maybe some icons for actions like edit / add course / start new course / help / documentation
 * icon add course
 * icon edit item