X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2FResourcesOOUI.php;h=c3a287dc8d28bb2b0c5cb12cfebbfaa59b661ede;hb=1855b6ff905c5c848085c8f85756eb046560962b;hp=d3b74f27c92796c3e0acc1b12c550cdcdfc28e27;hpb=23299ca8790bcf1aebcf54e0932b94338e630474;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/ResourcesOOUI.php b/resources/ResourcesOOUI.php index d3b74f27c9..c3a287dc8d 100644 --- a/resources/ResourcesOOUI.php +++ b/resources/ResourcesOOUI.php @@ -32,35 +32,63 @@ return call_user_func( function () { $themes = array_map( 'strtolower', $themes ); $themes['default'] = 'mediawiki'; - $modules = array(); - $modules['oojs-ui'] = array( - 'scripts' => array( - 'resources/lib/oojs-ui/oojs-ui.js', - 'resources/src/oojs-ui-local.js', - ), - 'skinScripts' => array_combine( + // Helper function to generate paths to files used in 'skinStyles' and 'skinScripts'. + $getSkinSpecific = function ( $module, $ext = 'css' ) use ( $themes ) { + return array_combine( array_keys( $themes ), - array_map( function ( $theme ) { + array_map( function ( $theme ) use ( $module, $ext ) { + $module = $module ? "$module-" : ''; // TODO Allow extensions to specify this path somehow - return "resources/lib/oojs-ui/oojs-ui-$theme.js"; + return "resources/lib/oojs-ui/oojs-ui-$module$theme.$ext"; }, array_values( $themes ) ) - ), - 'dependencies' => array( + ); + }; + + $modules = []; + + // Omnibus module. + $modules['oojs-ui'] = [ + 'dependencies' => [ + 'oojs-ui-core', + 'oojs-ui-widgets', + 'oojs-ui-toolbars', + 'oojs-ui-windows', + ], + 'targets' => [ 'desktop', 'mobile' ], + ]; + + // The core JavaScript library. + $modules['oojs-ui-core'] = [ + 'scripts' => [ + 'resources/lib/oojs-ui/oojs-ui-core.js', + 'resources/src/oojs-ui-local.js', + ], + 'skinScripts' => $getSkinSpecific( null, 'js' ), + 'dependencies' => [ 'es5-shim', 'oojs', - 'oojs-ui.styles', + 'oojs-ui-core.styles', 'oojs-ui.styles.icons', 'oojs-ui.styles.indicators', 'oojs-ui.styles.textures', 'mediawiki.language', - ), - 'messages' => array( - 'ooui-dialog-message-accept', - 'ooui-dialog-message-reject', - 'ooui-dialog-process-continue', - 'ooui-dialog-process-dismiss', - 'ooui-dialog-process-error', - 'ooui-dialog-process-retry', + ], + 'targets' => [ 'desktop', 'mobile' ], + ]; + // This contains only the styles required by core widgets. + $modules['oojs-ui-core.styles'] = [ + 'position' => 'top', + 'styles' => 'resources/src/oojs-ui-local.css', // HACK, see inside the file + 'skinStyles' => $getSkinSpecific( 'core' ), + 'targets' => [ 'desktop', 'mobile' ], + ]; + + // Additional widgets and layouts module. + $modules['oojs-ui-widgets'] = [ + 'scripts' => 'resources/lib/oojs-ui/oojs-ui-widgets.js', + 'skinStyles' => $getSkinSpecific( 'widgets' ), + 'dependencies' => 'oojs-ui-core', + 'messages' => [ 'ooui-outline-control-move-down', 'ooui-outline-control-move-up', 'ooui-outline-control-remove', @@ -68,26 +96,38 @@ return call_user_func( function () { 'ooui-selectfile-dragdrop-placeholder', 'ooui-selectfile-not-supported', 'ooui-selectfile-placeholder', + ], + 'targets' => [ 'desktop', 'mobile' ], + ]; + // Toolbar and tools module. + $modules['oojs-ui-toolbars'] = [ + 'scripts' => 'resources/lib/oojs-ui/oojs-ui-toolbars.js', + 'skinStyles' => $getSkinSpecific( 'toolbars' ), + 'dependencies' => 'oojs-ui-core', + 'messages' => [ 'ooui-toolbar-more', 'ooui-toolgroup-collapse', 'ooui-toolgroup-expand', - ), - 'targets' => array( 'desktop', 'mobile' ), - ); - $modules['oojs-ui.styles'] = array( - 'position' => 'top', - 'styles' => 'resources/src/oojs-ui-local.css', // HACK, see inside the file - 'skinStyles' => array_combine( - array_keys( $themes ), - array_map( function ( $theme ) { - // TODO Allow extensions to specify this path somehow - return "resources/lib/oojs-ui/oojs-ui-$theme-noimages.css"; - }, array_values( $themes ) ) - ), - 'targets' => array( 'desktop', 'mobile' ), - ); + ], + 'targets' => [ 'desktop', 'mobile' ], + ]; + // Windows and dialogs module. + $modules['oojs-ui-windows'] = [ + 'scripts' => 'resources/lib/oojs-ui/oojs-ui-windows.js', + 'skinStyles' => $getSkinSpecific( 'windows' ), + 'dependencies' => 'oojs-ui-core', + 'messages' => [ + 'ooui-dialog-message-accept', + 'ooui-dialog-message-reject', + 'ooui-dialog-process-continue', + 'ooui-dialog-process-dismiss', + 'ooui-dialog-process-error', + 'ooui-dialog-process-retry', + ], + 'targets' => [ 'desktop', 'mobile' ], + ]; - $imageSets = array( + $imageSets = [ // Comments for greppability 'icons', // oojs-ui.styles.icons 'indicators', // oojs-ui.styles.indicators @@ -107,16 +147,16 @@ return call_user_func( function () { 'icons-movement', // oojs-ui.styles.icons-movement 'icons-user', // oojs-ui.styles.icons-user 'icons-wikimedia', // oojs-ui.styles.icons-wikimedia - ); + ]; $rootPath = 'resources/lib/oojs-ui/themes'; foreach ( $imageSets as $name ) { - $module = array( + $module = [ 'position' => 'top', 'class' => 'ResourceLoaderOOUIImageModule', 'name' => $name, 'rootPath' => $rootPath, - ); + ]; if ( substr( $name, 0, 5 ) === 'icons' ) { $module['selectorWithoutVariant'] = '.oo-ui-icon-{name}, .mw-ui-icon-{name}:before';