Sumit has uploaded a new change for review. https://gerrit.wikimedia.org/r/267281
Change subject: [WIP] Enable no-js editing in mobile ...................................................................... [WIP] Enable no-js editing in mobile Bug: T125174 Change-Id: I4b14c390aefd38b63edbc8e4d671da82e39b0fd9 --- M includes/MobileFrontend.hooks.php M includes/Resources.php M includes/skins/SkinMinerva.php M resources/skins.minerva.base.styles/pageactions.less M resources/skins.minerva.base.styles/ui.less M resources/skins.minerva.editor/init.js R resources/skins.minerva.icons.images/edit.svg R resources/skins.minerva.icons.images/editLocked.svg 8 files changed, 62 insertions(+), 42 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MobileFrontend refs/changes/81/267281/1 diff --git a/includes/MobileFrontend.hooks.php b/includes/MobileFrontend.hooks.php index 65c0256..4f24fce 100644 --- a/includes/MobileFrontend.hooks.php +++ b/includes/MobileFrontend.hooks.php @@ -103,16 +103,31 @@ // log whether user is using beta/stable $mobileContext->logMobileMode(); - $skinName = $mobileContext->getMFConfig()->get( 'MFDefaultSkinClass' ); - $betaSkinName = $skinName . 'Beta'; - // Force beta for test mode to sure all modules can run - $name = $context->getTitle()->getDBkey(); - $inTestMode = - $name === SpecialPage::getTitleFor( 'JavaScriptTest', 'qunit' )->getDBkey(); - if ( $mobileContext->isBetaGroupMember() && class_exists( $betaSkinName ) ) { - $skinName = $betaSkinName; + // Allow overriding of skin by useskin e.g. useskin=vector&useformat=mobile + if ( $context->getRequest()->getVal( 'useskin' ) ) { + $userSkin = $mobileContext->getUser()->getOption( 'mobileskin' ); + $userSkin = $mobileContext->getRequest()->getVal( 'useskin', $userSkin ); + + // Normalize the key in case the user is passing gibberish + // or has old preferences (bug 69566). + $normalized = Skin::normalizeKey( $userSkin ); + + // Skin::normalizeKey will also validate it, so + // this won't throw an exception + $factory = SkinFactory::getDefaultInstance(); + $skin = $factory->makeSkin( $normalized ); + } else { + $skinName = $mobileContext->getMFConfig()->get( 'MFDefaultSkinClass' ); + $betaSkinName = $skinName . 'Beta'; + // Force beta for test mode to sure all modules can run + $name = $context->getTitle()->getDBkey(); + $inTestMode = + $name === SpecialPage::getTitleFor( 'JavaScriptTest', 'qunit' )->getDBkey(); + if ( $mobileContext->isBetaGroupMember() && class_exists( $betaSkinName ) ) { + $skinName = $betaSkinName; + } + $skin = new $skinName( $context ); } - $skin = new $skinName( $context ); return false; } @@ -805,22 +820,6 @@ * @return bool */ public static function onCustomEditor( $article, $user ) { - $context = MobileContext::singleton(); - - // redirect to mobile editor instead of showing desktop editor - if ( $context->shouldDisplayMobileView() && !$context->getRequest()->wasPosted() ) { - $output = $context->getOutput(); - $data = $output->getRequest()->getValues(); - // Unset these to avoid a redirect loop but make sure we pass other - // parameters to edit e.g. undo actions - unset( $data['action'] ); - unset( $data['title'] ); - - $output->redirect( SpecialPage::getTitleFor( 'MobileEditor', $article->getTitle() ) - ->getFullURL( $data ) ); - return false; - } - return true; } diff --git a/includes/Resources.php b/includes/Resources.php index e5619b1..71ed316 100644 --- a/includes/Resources.php +++ b/includes/Resources.php @@ -82,6 +82,8 @@ // T97410 is resolved. 'notifications' => 'resources/skins.minerva.icons.images/bell.svg', 'mainmenu' => 'resources/skins.minerva.icons.images/hamburger.svg', + 'edit' => 'resources/skins.minerva.icons.images/editLocked.svg', + 'edit-enabled' => 'resources/skins.minerva.icons.images/edit.svg' ) ), @@ -1425,8 +1427,6 @@ 'talk' => 'resources/skins.minerva.icons.images.scripts/talk.svg', 'watch' => 'resources/skins.minerva.icons.images.scripts/watch.svg', 'watched' => 'resources/skins.minerva.icons.images.scripts/watched.svg', - 'edit' => 'resources/skins.minerva.icons.images.scripts/editLocked.svg', - 'edit-enabled' => 'resources/skins.minerva.icons.images.scripts/edit.svg', // User 'user' => 'resources/skins.minerva.icons.images.scripts/userNormal.svg', diff --git a/includes/skins/SkinMinerva.php b/includes/skins/SkinMinerva.php index 955113f..bb0f10b 100644 --- a/includes/skins/SkinMinerva.php +++ b/includes/skins/SkinMinerva.php @@ -138,7 +138,7 @@ $message = wfMessage( 'mobile-frontend-editor-edit' )->inLanguage( $lang )->text(); $html = Html::openElement( 'span' ); $html .= Html::element( 'a', array( - 'href' => '#/editor/' . $section, + 'href' => '?action=edit§ion=' . $section, 'title' => wfMessage( 'editsectionhint', $tooltip )->inLanguage( $lang )->text(), 'data-section' => $section, // Note visibility of the edit section link button is controlled by .edit-page in ui.less so @@ -812,7 +812,13 @@ if ( $this->isAllowedPageAction( 'edit' ) ) { $menu['edit'] = array( 'id' => 'ca-edit', 'text' => '', 'itemtitle' => $this->msg( 'mobile-frontend-pageaction-edit-tooltip' ), - 'class' => MobileUI::iconClass( 'edit', 'element', 'hidden' ), + 'class' => MobileUI::iconClass( 'edit-enabled', 'element' ), + 'links' => array( + 'edit' => array( + 'href' => '?action=edit§ion=0', + 'class' => 'nojs-edit' + ) + ) ); } diff --git a/resources/skins.minerva.base.styles/pageactions.less b/resources/skins.minerva.base.styles/pageactions.less index 5404c3b..da8411f 100644 --- a/resources/skins.minerva.base.styles/pageactions.less +++ b/resources/skins.minerva.base.styles/pageactions.less @@ -8,7 +8,6 @@ // hide menu items when not possible to use .client-nojs #ca-watch, -.client-nojs #ca-edit, #ca-talk.selected { display: none; } diff --git a/resources/skins.minerva.base.styles/ui.less b/resources/skins.minerva.base.styles/ui.less index ae21792..3bb298e 100644 --- a/resources/skins.minerva.base.styles/ui.less +++ b/resources/skins.minerva.base.styles/ui.less @@ -124,6 +124,11 @@ padding: .5em .1em; } } + + .edit-page { + display: inline-block; + float: right; + } } input.search { @@ -139,9 +144,26 @@ } } +textarea.mw-ui-input { + max-height: 14em; +} + // FIXME: remove when micro.tap in stable and rule from common-js.less too .search-box { -webkit-tap-highlight-color: rgba(255, 255, 255, 0); +} + +.client-js { + .edit-page { + display: none; + } + + .open-block { + // Restrict to child so that child section edit links do not get revealed. + .edit-page { + display: inline-block; + } + } } .content { @@ -165,18 +187,7 @@ .edit-page { font-size: 1 / @fontSizeH3; } - } - - .edit-page { - display: none; - } - - .open-block { - // Restrict to child so that child section edit links do not get revealed. - .edit-page { - display: inline-block; - } - } + } .section-heading, .in-block { diff --git a/resources/skins.minerva.editor/init.js b/resources/skins.minerva.editor/init.js index e0f2399..bcd5e18 100644 --- a/resources/skins.minerva.editor/init.js +++ b/resources/skins.minerva.editor/init.js @@ -124,6 +124,10 @@ window.alert( mw.msg( 'mobile-frontend-editor-undo-unsupported' ) ); } + page.$( '.edit-page' ).on( 'click', function () { + router.navigate( '#/editor/' + $( this ).data( 'section' ) ); + return false; + } ); overlayManager.add( /^\/editor\/(\d+)$/, function ( sectionId ) { var $content = $( '#mw-content-text' ), @@ -247,6 +251,7 @@ // FIXME: split the selector and cache it if ( $caEdit.find( '.edit-page' ).length === 0 ) { // FIXME: unfortunately the main page is special cased. + $( '.nojs-edit' ).remove(); if ( mw.config.get( 'wgIsMainPage' ) || isNewPage || page.getLeadSectionElement().text() ) { // if lead section is not empty, open editor with lead section addEditButton( 0, '#ca-edit' ); diff --git a/resources/skins.minerva.icons.images.scripts/edit.svg b/resources/skins.minerva.icons.images/edit.svg similarity index 100% rename from resources/skins.minerva.icons.images.scripts/edit.svg rename to resources/skins.minerva.icons.images/edit.svg diff --git a/resources/skins.minerva.icons.images.scripts/editLocked.svg b/resources/skins.minerva.icons.images/editLocked.svg similarity index 100% rename from resources/skins.minerva.icons.images.scripts/editLocked.svg rename to resources/skins.minerva.icons.images/editLocked.svg -- To view, visit https://gerrit.wikimedia.org/r/267281 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4b14c390aefd38b63edbc8e4d671da82e39b0fd9 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MobileFrontend Gerrit-Branch: master Gerrit-Owner: Sumit <asthana.sumi...@gmail.com> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits