Revamp classic edit toolbar not to hardcode paths in HTML
authorBartosz Dziewoński <matma.rex@gmail.com>
Wed, 20 Aug 2014 13:13:43 +0000 (15:13 +0200)
committerBartosz Dziewoński <matma.rex@gmail.com>
Sat, 13 Sep 2014 21:16:23 +0000 (23:16 +0200)
commit285c52039bf4d2f9ba78f07656400dac7ba0fef7
tree3801f696bf037e46cc85e7aa34a07625db567101
parentd1b6cd35d4aa117c454994b4a7896fee8abf17d2
Revamp classic edit toolbar not to hardcode paths in HTML

Also, try out a way to have per-module LESS variables defined in PHP.
This might come in handy in the future… Maybe for skin theme support?

(I recommend reviewing the file changes in the order below. :D)

includes/resourceloader/ResourceLoaderFileModule.php
  * Pass the context (ResourceLoaderContext) deeper down via
    readStyleFiles() and readStyleFile(). We need it to compile the
    .less files for the right language.
  * Extract LESS compiler creation to getLessCompiler().
  * Allow passing a LESS compiler instance to compileLessFile(), rather
    than getting one after the method is called.

  All of the changes are backwards-compatible.

includes/resourceloader/ResourceLoaderEditToolbarModule.php
  * New module to support getting the language data and passing it to
    LESS variables.

  It might be a good idea to factor out a reusable class for a LESS
  module with additional variables, but that would require more
  attention to design than I gave it.

resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less
  * Glue code to use the language data defined by the module above and
    put it in final CSS.

includes/EditPage.php
  * Do not hardcode image URLs in output HTML, as they are provided in
    CSS now. This gets rid of some usage of globals.

  In fact, we should be able to finally move the inline JavaScript
  calls out of getEditToolbar(), but I'm already introducing too many
  changes for one patch. That can be done later.

languages/Language.php
  * Add getImageFiles() to complement existing getImageFile() method.
    Misleadingly named, it returns paths for images for the toolbar
    only (and no other ones at all).

skins/common/ → resources/src/mediawiki.action/mediawiki.action.edit.toolbar/
  * Moved all of the button images to new location.

  Also, boring cleanup that was harder before because we treated the
  paths as public API:
  * Placed default ones in en/ subdirectory.
  * Renamed cyrl/ to ru/.
  * Renamed ksh/button_S_italic.png → ksh/button_italic.png.

languages/messages/
  * Adjusting paths and filenames for the changes above.

resources/src/mediawiki.action/mediawiki.action.edit.css
resources/src/mediawiki.action/mediawiki.action.edit.js
  * Added styles and updated the script to make it possible to have
    non-<img> elements as toolbar buttons.
  * Consolidated styles that were already required, but defined
    somewhere else:
    * `cursor: pointer;` (from shared.css)
    * `vertical-align: middle;` (from commonElements.css)

Bug: 69277
Change-Id: I39d8ed4258c7da0fe4fe4c665cdb26c86420769c
76 files changed:
includes/AutoLoader.php
includes/EditPage.php
includes/resourceloader/ResourceLoaderEditToolbarModule.php [new file with mode: 0644]
includes/resourceloader/ResourceLoaderFileModule.php
languages/Language.php
languages/messages/MessagesEn.php
languages/messages/MessagesKsh.php
languages/messages/MessagesRu.php
resources/Resources.php
resources/src/mediawiki.action/mediawiki.action.edit.css [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.js
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_headline.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_link.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ar/button_nowiki.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/be-tarask/button_link.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/de/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_extlink.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_headline.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_hr.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_image.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_link.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_media.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_nowiki.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/en/button_sig.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_headline.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_link.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/fa/button_nowiki.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/LICENSE [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ksh/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/LICENSE [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_bold.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_italic.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/images/ru/button_link.png [new file with mode: 0644]
resources/src/mediawiki.action/mediawiki.action.edit.toolbar/mediawiki.action.edit.toolbar.less [new file with mode: 0644]
resources/src/mediawiki.legacy/shared.css
skins/common/images/ar/button_bold.png [deleted file]
skins/common/images/ar/button_headline.png [deleted file]
skins/common/images/ar/button_italic.png [deleted file]
skins/common/images/ar/button_link.png [deleted file]
skins/common/images/ar/button_nowiki.png [deleted file]
skins/common/images/be-tarask/button_bold.png [deleted file]
skins/common/images/be-tarask/button_italic.png [deleted file]
skins/common/images/be-tarask/button_link.png [deleted file]
skins/common/images/button_bold.png [deleted file]
skins/common/images/button_extlink.png [deleted file]
skins/common/images/button_headline.png [deleted file]
skins/common/images/button_hr.png [deleted file]
skins/common/images/button_image.png [deleted file]
skins/common/images/button_italic.png [deleted file]
skins/common/images/button_link.png [deleted file]
skins/common/images/button_media.png [deleted file]
skins/common/images/button_nowiki.png [deleted file]
skins/common/images/button_sig.png [deleted file]
skins/common/images/cyrl/LICENSE [deleted file]
skins/common/images/cyrl/button_bold.png [deleted file]
skins/common/images/cyrl/button_italic.png [deleted file]
skins/common/images/cyrl/button_link.png [deleted file]
skins/common/images/de/button_bold.png [deleted file]
skins/common/images/de/button_italic.png [deleted file]
skins/common/images/fa/button_bold.png [deleted file]
skins/common/images/fa/button_headline.png [deleted file]
skins/common/images/fa/button_italic.png [deleted file]
skins/common/images/fa/button_link.png [deleted file]
skins/common/images/fa/button_nowiki.png [deleted file]
skins/common/images/ksh/LICENSE [deleted file]
skins/common/images/ksh/button_S_italic.png [deleted file]
tests/phpunit/LessFileCompilationTest.php