Mollywhite has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/80090


Change subject: Bug 52821: Provide link to the JSON page from navbar dropdowns.
......................................................................

Bug 52821: Provide link to the JSON page from navbar dropdowns.

Adds [read|edit] links to the navbar dropdowns. This provides links
to the JSON page in NS_BOOK.

Bug: 52821
Change-Id: Ida0c1d96c05334a4f23f94a8c31a89d418f89b26
---
M BookManagerv2.hooks.php
M BookManagerv2.i18n.php
M modules/ext.BookManagerv2js.css
3 files changed, 66 insertions(+), 6 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/BookManagerv2 
refs/changes/90/80090/1

diff --git a/BookManagerv2.hooks.php b/BookManagerv2.hooks.php
index 0318dfe..b29cfbb 100644
--- a/BookManagerv2.hooks.php
+++ b/BookManagerv2.hooks.php
@@ -256,6 +256,34 @@
                return $output;
        }
 
+       public static function addJsonPageLink( $jsonPageTitle ) {
+               $metadata = Html::openElement( 'div', array(
+                       'class' => 'mw-bookmanagerv2-edit-wrapper' ) )
+                       . Html::openElement( 'span', array(
+                               'class' => 'mw-bookmanagerv2-edit-json-link' ) )
+                       . Html::element( 'span', array(
+                               'class' => 'mw-bookmanagerv2-link-bracket'
+                       ), '[' )
+                       . Linker::link( $jsonPageTitle,
+                               wfMessage( 'bookmanagerv2-read' )->text()
+                       )
+                       . Html::element( 'span', array(
+                               'class' => 'mw-bookmanagerv2-link-divider'
+                       ), '|' )
+                       . Linker::link( $jsonPageTitle,
+                               wfMessage( 'editlink' )->text(),
+                               array(),
+                               array( 'action' => 'edit' ),
+                               array()
+                       )
+                       . Html::element( 'span', array(
+                               'class' => 'mw-bookmanagerv2-link-bracket'
+                       ), ']' )
+                       . Html::closeElement( 'span' )
+                       . Html::closeElement( 'div' );
+               return $metadata;
+       }
+
        /**
         * Generates HTML for the chapter list. All pages except the current one
         * will be linked.
@@ -264,8 +292,14 @@
         * @param string $currentPageTitle Title of the page that's being viewed
         * @return string HTML ordered list element
         */
-       public static function formatChapterList( $sections, $currentPageTitle 
= null ) {
-               $html = Html::openElement( 'ol', array() );
+       public static function formatChapterList( $sections, $jsonPageTitle = 
null,
+               $currentPageTitle = null )
+       {
+               $html = '';
+               if ( $jsonPageTitle !== null ) {
+                       $html .= self::addJsonPageLink( $jsonPageTitle );
+               }
+               $html .= Html::openElement( 'ol', array() );
                foreach ( $sections as $key => $val ) {
                        if ( $val->link !== $currentPageTitle ) {
                                $html .= Html::openElement( 'li', array() )
@@ -288,8 +322,12 @@
         * @param object $jsonBook JSON representation of the book
         * @return string HTML unordered list element
         */
-       public static function formatMetadata( $jsonBook ) {
-               $metadata = Html::openElement( 'ul', array() )
+       public static function formatMetadata( $jsonBook, $jsonPageTitle = null 
) {
+               $metadata = '';
+               if ( $jsonPageTitle !== null ) {
+                       $metadata = self::addJsonPageLink( $jsonPageTitle );
+               }
+               $metadata .= Html::openElement( 'ul', array() )
                . Html::openElement( 'li', array() )
                . wfMessage( 'bookmanagerv2-title',
                        $jsonBook->title )->text()
@@ -363,6 +401,7 @@
                if ( isset( $jsonBook->oclc ) ) {
                        $metadata .= self::addString( "oclc", $jsonBook->oclc );
                }
+
                $metadata .= Html::closeElement( 'ul' );
 
                return $metadata;
@@ -471,12 +510,12 @@
 
                                if ( $wgBookManagerv2ChapterList ) {
                                        $chapterList = self::formatChapterList( 
$jsonBook->sections,
-                                               $currentPageTitle );
+                                               $jsonPageTitle, 
$currentPageTitle );
                                } else {
                                        $chapterList = null;
                                }
                                if ( $wgBookManagerv2Metadata ) {
-                                       $metadata = self::formatMetadata( 
$jsonBook );
+                                       $metadata = self::formatMetadata( 
$jsonBook, $jsonPageTitle );
                                } else {
                                        $metadata = null;
                                }
diff --git a/BookManagerv2.i18n.php b/BookManagerv2.i18n.php
index af9f4dd..4f82599 100644
--- a/BookManagerv2.i18n.php
+++ b/BookManagerv2.i18n.php
@@ -42,6 +42,7 @@
        'bookmanagerv2-isbn' => 'ISBN: $1',
        'bookmanagerv2-lccn' => 'LCCN: $1',
        'bookmanagerv2-oclc' => 'OCLC: $1',
+       'bookmanagerv2-read' => 'read',
 );
 
 /** Message documentation (Message documentation)
@@ -147,6 +148,7 @@
 
 See screenshot for an example of this dropdown.
 [[File:BookManagerv2 navigation bar metadata dropdown.png]]',
+       'bookmanagerv2-read' => 'Text for a link to view the metadata page'
 );
 
 /** Asturian (asturianu)
diff --git a/modules/ext.BookManagerv2js.css b/modules/ext.BookManagerv2js.css
index 0635cf3..1ab7af8 100644
--- a/modules/ext.BookManagerv2js.css
+++ b/modules/ext.BookManagerv2js.css
@@ -26,6 +26,7 @@
        text-align: left;
        padding: 5px 8px;
 }
+
 div.mw-bookmanagerv2-nav-dropdown:after, .mw-bookmanagerv2-nav-dropdown:before 
{
        bottom: 100%;
        border: solid transparent;
@@ -35,6 +36,7 @@
        position: absolute;
        pointer-events: none;
 }
+
 div.mw-bookmanagerv2-nav-dropdown:after {
        border-color: rgba(245, 245, 245, 0);
        border-bottom-color: #f5f5f5;
@@ -42,6 +44,7 @@
        left: 50%;
        margin-left: -140px;
 }
+
 div.mw-bookmanagerv2-nav-dropdown:before {
        border-color: rgba(220, 220, 220, 0);
        border-bottom-color: #dcdcdc;
@@ -54,13 +57,29 @@
        list-style: none;
        margin: 0;
 }
+
 div.mw-bookmanagerv2-nav-toc {
        margin-left: 45px;
 }
+
 div.mw-bookmanagerv2-nav-dropdown .title {
        font-style: italic;
 }
+
 div.mw-bookmanagerv2-nav-scrollable {
        max-height: 300px;
        overflow: auto;
 }
+
+div.mw-bookmanagerv2-nav-dropdown div.mw-bookmanagerv2-edit-wrapper {
+       overflow: hidden;
+}
+
+div.mw-bookmanagerv2-nav-dropdown span.mw-bookmanagerv2-edit-json-link {
+       float: right;
+}
+
+span.mw-bookmanagerv2-link-bracket,
+span.mw-bookmanagerv2-link-divider {
+       margin: 0 2px;
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/80090
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ida0c1d96c05334a4f23f94a8c31a89d418f89b26
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BookManagerv2
Gerrit-Branch: master
Gerrit-Owner: Mollywhite <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to