Actions

Developer Area/MochiKit in Mahara: Difference between revisions

From Mahara Wiki

< Developer Area
No edit summary
No edit summary
Line 1: Line 1:
MochiKit needs to be removed from Mahara since it's unmaintained and unnecessary alongside jQuery (https://bugs.launchpad.net/mahara/+bug/1323920). This page lists the places it's still used, grouped by function to (hopefully) make it easier to refactor nicely.
MochiKit needs to be removed from Mahara since it's unmaintained and unnecessary alongside jQuery (https://bugs.launchpad.net/mahara/+bug/1323920). This page lists the places it is still used, both as a basic list and grouped by function to (hopefully) make it easier to refactor nicely.
 
The list, for the most part, has been automatically generated by [https://github.com/binary-koan/state-of-mahara this tool], which detects Mochikit function names. It has been manually reviewed for false positives, and other Mochikit patterns that the tool does not detect such as $() have been added manually.
 
== MochiKit in PHP files ==
 
Picked up via automated tool:
* admin/groups/groupcategories.php
* admin/groups/groups.php
* admin/site/fonts.php
* admin/site/menu.php
* admin/site/views.php
* admin/upgrade.php
* admin/users/addauthority.php
* admin/users/institutions.php
* admin/users/institutionusers.php
* admin/users/pendingregistrations.php
* admin/users/progressbar.php
* admin/users/statistics.php
* artefact/blog/index.php
* artefact/blog/view/index.php
* auth/lib.php
* blocktype/creativecommons/lib.php
* blocktype/wall/lib.php
* group/members.php
* group/view.php
* index.php
* lib/form/elements/artefactchooser.php
* lib/form/elements/checkboxes.php
* lib/form/elements/filebrowser.php
* lib/institution.php
* tags.php
* user/find.php
* user/myfriends.php
* user/view.php
* view/access.php
* view/blocks.php
* view/choosetemplate.php
* view/groupviews.php
* view/index.php
* view/institutionviews.php
* view/view.php
* search/elasticsearch/index.php
 
Picked up manually:
* account/index.php
* admin/extensions/plugins.php
* admin/users/suspended.php
* artefact/file/profileicons.php - should have been picked up in scanner (insertSiblingNodesAfter)
* artefact/internal/blocktype/textbox/lib.php - should have been picked up in scanner (signal)
* artefact/resume/lib.php - should have been picked up in scanner (insertSiblingNodesBefore)
* interaction/forum/lib.php
* lib/form/elements/color.php
* lib/form/elements/wysiwyg.php
* lib/form/renderers/maharatable.php - should have been picked up in scanner (getFirstElementByTagAndClassName)
* lib/pieforms/pieform/elements/date.php
* lib/pieforms/pieform/elements/expiry.php
* lib/pieforms/pieform/elements/select.php
* lib/pieforms/pieform/elements/textarea.php
* selfsearch.php
 
== MochiKit in JS files ==
 
Picked up via automated tool:
* artefact/blog/blocktype/taggedposts/js/taggedposts.js
* artefact/file/js/filebrowser.js
* artefact/plans/blocktype/plans/js/plansblock.js
* blocktype/creativecommons/js/creativecommons.js
* blocktype/openbadgedisplayer/js/configform.js
* js/adminadduser.js
* js/adminexportqueue.js
* js/adminsiteoptions.js
* js/adminsitepages.js
* js/adminuploadcsv.js
* js/adminusersearch.js
* js/export.js
* js/keyboardNavigation.js
* js/mahara.js
* js/paginator.js
* js/searchtable.js
* js/tablerenderer.js
* js/viewmenu.js
* js/views.js
* lib/pieforms/static/core/elements/textarea.js
* lib/pieforms/static/core/pieforms.js
 
Picked up manually:
* artefact/annotation/blocktype/annotation/js/annotation.js
 
== Custom MochiKit modules ==
 
* js/Pager.js - only used in /htdocs/js/tablerenderer.js. /htdocs/js/paginator.js is an alternate pagination method.


== Similar components/snippets ==
== Similar components/snippets ==
Line 12: Line 103:
** user/find.php
** user/find.php
** user/myfriends.php
** user/myfriends.php
== JS in PHP (MochiKit usage only; there's also a lot of jQuery) ==
* Reloading the page on select box change (bad for accessibility!)
* Reloading the page on select box change (bad for accessibility!)
** admin/users/institutionusers.php
** admin/users/institutionusers.php
Line 38: Line 126:
* Login form JS (auth/lib.php:get_login_form_js)
* Login form JS (auth/lib.php:get_login_form_js)
* Adding wall posts (blocktype/wall/lib.php)
* Adding wall posts (blocktype/wall/lib.php)
* Hide homepage info boxes (index.php)
* Tags page (tags.php)
* Choose view template (view/choosetemplate.php)
== MochiKit in JS files ==
* artefact/blog/blocktype/taggedposts/js/taggedposts.js
* artefact/file/js/filebrowser.js
* artefact/plans/blocktype/plans/js/plansblock.js
* blocktype/creativecommons/js/creativecommons.js
* blocktype/openbadgedisplayer/js/configform.js
* js/adminadduser.js
* js/adminexportqueue.js
* js/adminsiteoptions.js
* js/adminsitepages.js
* js/adminuploadcsv.js
* js/adminusersearch.js
* js/export.js
* js/keyboardNavigation.js
* js/mahara.js
* js/paginator.js
* js/searchtable.js
* js/tablerenderer.js
* js/viewmenu.js
* js/views.js (getViewportDimensions)
* lib/pieforms/static/core/elements/textarea.js
* lib/pieforms/static/core/pieforms.js
== MochiKit modules ==
* js/MochiKit/*
* js/Pager.js

Revision as of 12:35, 26 Mayıs 2016

MochiKit needs to be removed from Mahara since it's unmaintained and unnecessary alongside jQuery (https://bugs.launchpad.net/mahara/+bug/1323920). This page lists the places it is still used, both as a basic list and grouped by function to (hopefully) make it easier to refactor nicely.

The list, for the most part, has been automatically generated by this tool, which detects Mochikit function names. It has been manually reviewed for false positives, and other Mochikit patterns that the tool does not detect such as $() have been added manually.

MochiKit in PHP files

Picked up via automated tool:

  • admin/groups/groupcategories.php
  • admin/groups/groups.php
  • admin/site/fonts.php
  • admin/site/menu.php
  • admin/site/views.php
  • admin/upgrade.php
  • admin/users/addauthority.php
  • admin/users/institutions.php
  • admin/users/institutionusers.php
  • admin/users/pendingregistrations.php
  • admin/users/progressbar.php
  • admin/users/statistics.php
  • artefact/blog/index.php
  • artefact/blog/view/index.php
  • auth/lib.php
  • blocktype/creativecommons/lib.php
  • blocktype/wall/lib.php
  • group/members.php
  • group/view.php
  • index.php
  • lib/form/elements/artefactchooser.php
  • lib/form/elements/checkboxes.php
  • lib/form/elements/filebrowser.php
  • lib/institution.php
  • tags.php
  • user/find.php
  • user/myfriends.php
  • user/view.php
  • view/access.php
  • view/blocks.php
  • view/choosetemplate.php
  • view/groupviews.php
  • view/index.php
  • view/institutionviews.php
  • view/view.php
  • search/elasticsearch/index.php

Picked up manually:

  • account/index.php
  • admin/extensions/plugins.php
  • admin/users/suspended.php
  • artefact/file/profileicons.php - should have been picked up in scanner (insertSiblingNodesAfter)
  • artefact/internal/blocktype/textbox/lib.php - should have been picked up in scanner (signal)
  • artefact/resume/lib.php - should have been picked up in scanner (insertSiblingNodesBefore)
  • interaction/forum/lib.php
  • lib/form/elements/color.php
  • lib/form/elements/wysiwyg.php
  • lib/form/renderers/maharatable.php - should have been picked up in scanner (getFirstElementByTagAndClassName)
  • lib/pieforms/pieform/elements/date.php
  • lib/pieforms/pieform/elements/expiry.php
  • lib/pieforms/pieform/elements/select.php
  • lib/pieforms/pieform/elements/textarea.php
  • selfsearch.php

MochiKit in JS files

Picked up via automated tool:

  • artefact/blog/blocktype/taggedposts/js/taggedposts.js
  • artefact/file/js/filebrowser.js
  • artefact/plans/blocktype/plans/js/plansblock.js
  • blocktype/creativecommons/js/creativecommons.js
  • blocktype/openbadgedisplayer/js/configform.js
  • js/adminadduser.js
  • js/adminexportqueue.js
  • js/adminsiteoptions.js
  • js/adminsitepages.js
  • js/adminuploadcsv.js
  • js/adminusersearch.js
  • js/export.js
  • js/keyboardNavigation.js
  • js/mahara.js
  • js/paginator.js
  • js/searchtable.js
  • js/tablerenderer.js
  • js/viewmenu.js
  • js/views.js
  • lib/pieforms/static/core/elements/textarea.js
  • lib/pieforms/static/core/pieforms.js

Picked up manually:

  • artefact/annotation/blocktype/annotation/js/annotation.js

Custom MochiKit modules

  • js/Pager.js - only used in /htdocs/js/tablerenderer.js. /htdocs/js/paginator.js is an alternate pagination method.

Similar components/snippets

  • Editable list (admin/groups/groupcategories.php, admin/site/menu.php)
  • User search (js/adminexportqueue.js, js/adminusersearch.js)
  • Connecting pagination to search box
    • admin/groups/groups.php
    • admin/users/institutions.php
    • group/members.php
    • search/elasticsearch/index.php
    • user/find.php
    • user/myfriends.php
  • Reloading the page on select box change (bad for accessibility!)
    • admin/users/institutionusers.php
    • admin/users/pendingregistrations.php
    • admin/users/progressbar.php
    • admin/users/statistics.php
    • lib/institution.php
  • Focus element on load
    • admin/site/fonts.php
    • admin/site/views.php
    • view/groupviews.php
    • view/institutionviews.php
  • Form element hiding/showing
    • admin/users/addauthority.php - SSO and auth login message
    • admin/users/institutions.php - institution theme settings
    • view/access.php
  • Pagination initialization (artefact/blog/index.php, probably others)
  • Showing/hiding content of an expander (artefact/resume/lib.php:get_showhide_composite_js)
  • Blocktype inlinejs initialization (group/view.php, user/view.php, view/blocks.php, view/view.php)
  • Pieforms elements (lib/form/elements/{artefactchooser,checkboxes,filebrowser}.php)
  • Show upgrade progress (admin/upgrade.php)
  • Changing blog post status (artefact/blog/view/index.php)
  • Login form JS (auth/lib.php:get_login_form_js)
  • Adding wall posts (blocktype/wall/lib.php)