Mollywhite has uploaded a new change for review. https://gerrit.wikimedia.org/r/71655
Change subject: Initializing repository with BookManagerv2 files. Files taken from https://github.com/mollywhite/BookTest ...................................................................... Initializing repository with BookManagerv2 files. Files taken from https://github.com/mollywhite/BookTest Change-Id: Ic166be026df5d9e97a8b8e5ab8304727aa7b4c57 --- A .gitreview A BookManagerv2.hooks.php A BookManagerv2.php A modules/ext.BookManagerv2.css A modules/ext.BookManagerv2.js 5 files changed, 246 insertions(+), 0 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BookManagerv2 refs/changes/55/71655/1 diff --git a/.gitreview b/.gitreview new file mode 100644 index 0000000..273f196 --- /dev/null +++ b/.gitreview @@ -0,0 +1,5 @@ +[gerrit] +host=gerrit.wikimedia.org +port=29418 +project=mediawiki/extensions/BookManagerv2.git +defaultbranch=master diff --git a/BookManagerv2.hooks.php b/BookManagerv2.hooks.php new file mode 100644 index 0000000..63054e0 --- /dev/null +++ b/BookManagerv2.hooks.php @@ -0,0 +1,100 @@ +<?php +/** + * Hooks for the BookManagerv2 extension + * + * @file + * @ingroup Extensions + */ + +class BookManagerv2Hooks { + + public static function readingInterfaceUX( $out, $prev, $next, $chapterList, $metadata ) { + + $html = Html::openElement( 'div', array( 'class' => 'mw-bookmanagerv2-nav-wrap' ) ) + . Html::openElement( 'div', array( 'class' => 'mw-bookmanagerv2-nav-constrain' ) ) + . Html::openElement( 'div', array( 'class' => 'mw-bookmanagerv2-nav-bar' ) ) + . Html::openElement( 'a', array( + 'class' => array( + 'mw-bookmanagerv2-nav-icon', + 'mw-bookmanagerv2-nav-data' ) + ) + ) + . Html::element( 'img', array( + 'class' => 'mw-bookmanagerv2-nav-data', + 'src' => 'https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Info_sign_font_awesome.svg/20px-Info_sign_font_awesome.svg.png' + ), '' ) + . Html::closeElement( 'a' ) + . Html::openElement( 'a', array( + 'class' => array( + 'mw-bookmanagerv2-nav-icon', + 'mw-bookmanagerv2-nav-toc' ) + ) + ) + . Html::element( 'img', array( + 'class' => 'mw-bookmanagerv2-nav-toc', + 'src' => 'https://upload.wikimedia.org/wikipedia/commons/thumb/5/5e/Ul_font_awesome.svg/20px-Ul_font_awesome.svg.png' + ), '' ) + . Html::closeElement( 'a' ) + . Html::openElement( 'a', array( + 'class' => 'mw-bookmanagerv2-nav-prev', + 'href' => $prev->link ) + ) + . Html::element( 'img', array( + 'class' => 'mw-bookmanagerv2-nav-prev', + 'src' => 'https://upload.wikimedia.org/wikipedia/commons/thumb/2/26/Chevron_left_font_awesome.svg/15px-Chevron_left_font_awesome.svg.png' + ), '' ) + . $prev->title + . Html::closeElement( 'a' ) + . Html::openElement( 'a', array( + 'class' => 'mw-bookmanagerv2-nav-next', + 'href' => $next->link ) + ) + . $next->title + . Html::element( 'img', array( + 'class' => 'mw-bookmanagerv2-nav-next', + 'src' => 'https://upload.wikimedia.org/wikipedia/commons/thumb/b/b7/Chevron_right_font_awesome.svg/15px-Chevron_right_font_awesome.svg.png' + ), '' ) + . Html::closeElement( 'a' ) + . Html::closeElement( 'div' ) + . Html::rawElement( 'div', array( + 'class' => array( + 'mw-bookmanagerv2-nav-dropdown', + 'mw-bookmanagerv2-nav-data' ) + ), + $metadata + ) + . Html::rawElement( 'div', array( + 'class' => array( + 'mw-bookmanagerv2-nav-dropdown', + 'mw-bookmanagerv2-nav-toc' ) + ), + $chapterList + ) + . Html::closeElement( 'div' ) + . Html::closeElement( 'div' ); + + $out->prependHTML( $html ); + } + + public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) { + // Check that the navigation bar is only added to mainspace pages. + if ( $out->getTitle()->getNamespace() == NS_MAIN ) { + if ( $out->getRevisionId() != null ) { + $out->addModules( "ext.BookManagerv2" ); + $prev = (object) array( "link"=>"/prev.html", "title"=>"Previous" ); + $next = (object) array( "link"=>"/next.html", "title"=>"Next" ); + $chapterList = Html::element( 'p', array(), 'Chapter 1' ) + . Html::element( 'p', array(), 'Chapter 2' ) + . Html::element( 'p', array(), 'Chapter 3' ); + $metadata = Html::openElement( 'p', array() ) + . 'Title: ' + . Html::element( 'span', array( 'class' => 'title' ), 'Title' ) + . Html::closeElement( 'p' ) + . Html::element( 'p', array(), 'Author: Author'); + self::readingInterfaceUX( $out, $prev, $next, $chapterList, $metadata ); + } + } + return true; + } + +} diff --git a/BookManagerv2.php b/BookManagerv2.php new file mode 100644 index 0000000..9bc60e8 --- /dev/null +++ b/BookManagerv2.php @@ -0,0 +1,39 @@ +<?php +/** + * BookManagerv2 extension. + * + * @file + * @ingroup Extensions + */ + +if ( version_compare( $wgVersion, '1.20', '<' ) ) { + echo "Extension:BookManagerv2 requires MediaWiki 1.20 or higher.\n"; + exit( 1 ); +} + +$wgExtensionCredits['parserhook'][] = array( + 'path' => __FILE__, + 'name' => 'BookManagerv2', + 'author' => array( 'Molly White', 'Timo Tijhof' ), + 'version' => '0.0.1', + 'url' => '', + 'descriptionmsg' => 'bookmanagerv2-desc', +); + +/* Setup */ + +$dir = __DIR__; + +// Register files +$wgAutoloadClasses['BookManagerv2Hooks'] = $dir . '/BookManagerv2.hooks.php'; + +// Register hooks +$wgHooks['BeforePageDisplay'][] = 'BookManagerv2Hooks::onBeforePageDisplay'; + +// Load resources +$wgResourceModules['ext.BookManagerv2'] = array( + 'scripts' => 'ext.BookManagerv2.js', + 'styles' => 'ext.BookManagerv2.css', + 'localBasePath' => dirname(__FILE__) . '/modules', + 'remoteExtPath' => 'BookManagerv2/modules' +); diff --git a/modules/ext.BookManagerv2.css b/modules/ext.BookManagerv2.css new file mode 100644 index 0000000..b59c61d --- /dev/null +++ b/modules/ext.BookManagerv2.css @@ -0,0 +1,88 @@ +div.mw-bookmanagerv2-nav-wrap { + width: 100%; + text-align: center; +} +div.mw-bookmanagerv2-nav-constrain { + display:inline-block; + position: relative; +} +div.mw-bookmanagerv2-nav-bar { + display: inline-block; + background-color: #f5f5f5; + border: 1px solid #dcdcdc; + border-radius: 5px; + padding: 3px 5px; +} +.mw-bookmanagerv2-nav-bar p { + margin: 5px 0; + padding: 0; +} +.mw-bookmanagerv2-nav-bar ol { + padding-left: 30px; +} +.mw-bookmanagerv2-nav-bar li { + margin: 7px 0; + list-style-type: upper-roman; +} +a.mw-bookmanagerv2-nav-icon, a.mw-bookmanagerv2-nav-icon img { + display: inline; + vertical-align: middle; + cursor: pointer; +} +.mw-bookmanagerv2-nav-bar img { + margin: 0 10px 2px 10px; +} +img.mw-bookmanagerv2-nav-data { + margin-left: 5px; +} +img.mw-bookmanagerv2-nav-next { + margin-right: 5px; +} +a.mw-bookmanagerv2-nav-prev { + margin-right: 20px; +} + +div.mw-bookmanagerv2-nav-dropdown { + position: absolute; + width: 300px; + min-height: 100px; + background-color: #f5f5f5; + border: 1px solid #dcdcdc; + border-radius: 5px; + margin-top: 8px; + text-align: left; + padding: 5px 8px; +} +div.mw-bookmanagerv2-nav-dropdown:after, .mw-bookmanagerv2-nav-dropdown:before { + bottom: 100%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; +} +div.mw-bookmanagerv2-nav-dropdown:after { + border-color: rgba(245, 245, 245, 0); + border-bottom-color: #f5f5f5; + border-width: 5px; + left: 50%; + margin-left: -140px; +} +div.mw-bookmanagerv2-nav-dropdown:before { + border-color: rgba(220, 220, 220, 0); + border-bottom-color: #dcdcdc; + border-width: 6px; + left: 50%; + margin-left: -141px; +} + +div.mw-bookmanagerv2-nav-toc { + margin-left: 45px; +} +div.mw-bookmanagerv2-nav-dropdown { + display: none; +} +div.mw-bookmanagerv2-nav-dropdown .title { + font-style: italic; +} diff --git a/modules/ext.BookManagerv2.js b/modules/ext.BookManagerv2.js new file mode 100644 index 0000000..09e1b1a --- /dev/null +++ b/modules/ext.BookManagerv2.js @@ -0,0 +1,14 @@ +$(function () { + $('a.mw-bookmanagerv2-nav-data').click( function() { + if ( $('div.mw-bookmanagerv2-nav-toc').is(':visible') ) { + $('div.mw-bookmanagerv2-nav-toc').hide(); + } + $('div.mw-bookmanagerv2-nav-data').toggle(); + }); + $('a.mw-bookmanagerv2-nav-toc').click( function() { + if ( $('div.mw-bookmanagerv2-nav-data').is(':visible') ) { + $('div.mw-bookmanagerv2-nav-data').hide(); + } + $('div.mw-bookmanagerv2-nav-toc').toggle(); + }); +}); -- To view, visit https://gerrit.wikimedia.org/r/71655 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic166be026df5d9e97a8b8e5ab8304727aa7b4c57 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/BookManagerv2 Gerrit-Branch: master Gerrit-Owner: Mollywhite <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
