Yurik has uploaded a new change for review.

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


Change subject: New warning page
......................................................................

New warning page

Instead of a red banner, show a full page warning user of either
navigating to an external site or to a non-free image.

Change-Id: Ie668ecbdf69842d409623b985f08d71fff6e7064
---
M ZeroRatedMobileAccess.i18n.php
M ZeroRatedMobileAccess.php
M includes/PageRenderingHooks.php
M includes/ZeroSpecialPage.php
A modules/special.css
5 files changed, 192 insertions(+), 5 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ZeroRatedMobileAccess 
refs/changes/81/90881/1

diff --git a/ZeroRatedMobileAccess.i18n.php b/ZeroRatedMobileAccess.i18n.php
index a983783..fe17639 100644
--- a/ZeroRatedMobileAccess.i18n.php
+++ b/ZeroRatedMobileAccess.i18n.php
@@ -29,7 +29,8 @@
        'zero-rated-mobile-access-home-page-selection-text' => 'Or go to the 
home page in the following language:',
        'zero-rated-mobile-access-banner-text' => 'Free {{SITENAME}} from $1',
        'zero-rated-mobile-access-banner-text-data-charges' => 'Standard data 
charges may apply. Do you want to continue? $1 / $2',
-       'zero-rated-mobile-access-charge-auth' => 'Standard data charges may 
apply. Do you want to continue?',
+       'zero-rated-mobile-access-charge-auth' => 'You are about to leave 
Zero-rated (free) {{SITENAME}}. Standard data charges may apply.',
+       'zero-rated-mobile-access-file-auth' => 'You are about to view an 
image. Images have not been made free by your mobile carrier. Standard data 
charges may apply.',
        'zero-rated-mobile-access-banner-text-data-charges-yes' => 'Yes',
        'zero-rated-mobile-access-banner-text-data-charges-no' => 'No',
        'zero-rated-mobile-access-go-back' => 'Go back',
@@ -81,7 +82,8 @@
        'zero-rated-mobile-access-banner-text-data-charges' => 'Data charges 
notice to user before images are displayed. Parameters:
 * $1 is {{Msg-mw|zero-rated-mobile-access-banner-text-data-charges-yes}}
 * $2 is {{Msg-mw|zero-rated-mobile-access-banner-text-data-charges-no}}',
-       'zero-rated-mobile-access-charge-auth' => 'Data charges authorization 
question to user before images are displayed or redirects followed.',
+       'zero-rated-mobile-access-charge-auth' => 'Data charges authorization 
question to user before following redirect to an external site.',
+       'zero-rated-mobile-access-file-auth' => 'Data charges authorization 
question to user before images are displayed.',
        'zero-rated-mobile-access-banner-text-data-charges-yes' => 'Text for 
accepting charges.
 {{Identical|Yes}}',
        'zero-rated-mobile-access-banner-text-data-charges-no' => 'Text for 
rejecting charges.
diff --git a/ZeroRatedMobileAccess.php b/ZeroRatedMobileAccess.php
index 32329d5..e3d77b1 100644
--- a/ZeroRatedMobileAccess.php
+++ b/ZeroRatedMobileAccess.php
@@ -63,6 +63,13 @@
        'styles' => array( 'modules/banner.css' ),
 );
 
+$wgResourceModules['mobile.zero.special'] = array(
+       'localBasePath' => $localBasePath,
+       'remoteExtPath' => $remoteExtPath,
+       'targets' => array( 'mobile' ),
+       'styles' => array( 'modules/special.css' ),
+);
+
 $wgResourceModules['mobile.zero.scripts'] = array(
        'dependencies' => array( 'mobile.startup' ),
        'localBasePath' => $localBasePath,
diff --git a/includes/PageRenderingHooks.php b/includes/PageRenderingHooks.php
index e400928..cc92eca 100644
--- a/includes/PageRenderingHooks.php
+++ b/includes/PageRenderingHooks.php
@@ -431,9 +431,7 @@
                } else {
                        if ( $this->isZeroSpecial ) {
                                $redir = $this->getRedirectInfo();
-                               if ( array_key_exists( 'warn', $redir ) ) {
-                                       return self::renderWarning( $redir, 
$wap );
-                               } elseif ( array_key_exists( 'redirect', $redir 
) ) {
+                               if ( array_key_exists( 'warn', $redir ) || 
array_key_exists( 'redirect', $redir ) ) {
                                        return '';
                                }
                        }
diff --git a/includes/ZeroSpecialPage.php b/includes/ZeroSpecialPage.php
index c8fef00..8120d30 100644
--- a/includes/ZeroSpecialPage.php
+++ b/includes/ZeroSpecialPage.php
@@ -64,6 +64,10 @@
                                        $out->addHTML( $output );
                                }
                        }
+               } else {
+                       $html = $this->renderWarning( $redir );
+                       $out->addModuleStyles( 'mobile.zero.special' );
+                       $out->addHTML( $html );
                }
        }
 
@@ -148,4 +152,47 @@
                $output .= Html::closeElement( 'select' );
                return $output;
        }
+
+       /**
+        * Create HTML warning of navigation to a paid resource
+        * @param array $redir that describes how redirect should be rendered
+        * @return string HTML
+        */
+       private function renderWarning( $redir )
+       {
+               // Show warning text (navigating away from the free site)
+               $from = $redir['from'];
+               $reject = wfMessage( 'zero-rated-mobile-access-go-back' );
+               $reject = <<<END
+<span class="ve-ui-pushButtonWidget ve-ui-buttonWidget ve-ui-pushButtonWidget">
+       <a class="ve-ui-buttonWidget-button" role="button" href="$from">
+               <span class="ve-ui-labeledElement-label">$reject</span>
+       </a>
+</span>
+END;
+               $to = $redir['to'];
+               $accept = wfMessage( 'zero-rated-mobile-access-accept' );
+               $accept = <<<END
+<span class="ve-ui-flaggableElement-primary ve-ui-buttonWidget 
ve-ui-pushButtonWidget">
+       <a class="ve-ui-buttonWidget-button" role="button" href="$to" 
tabindex="0">
+               <span class="ve-ui-labeledElement-label">$accept</span>
+       </a>
+</span>
+END;
+               $lang = $this->getLanguage();
+               if ( $lang->isRTL() ) {
+                       $buttons = $accept . $reject;
+               } else {
+                       $buttons = $reject . $accept;
+               }
+               $dir = $lang->getDir();
+               $msg = wfMessage( $redir['warn'] === 'file'
+                       ? 'zero-rated-mobile-access-file-auth'
+                       : 'zero-rated-mobile-access-charge-auth' );
+               $html = <<<END
+<div dir='$dir'>$msg</div>
+<div dir='$dir' 
class="ve-init-mw-viewPageTarget-toolbar-actions">$buttons</div>
+END;
+               return $html;
+       }
 }
diff --git a/modules/special.css b/modules/special.css
new file mode 100644
index 0000000..6543e31
--- /dev/null
+++ b/modules/special.css
@@ -0,0 +1,133 @@
+.ve-init-mw-viewPageTarget-toolbar-actions {
+       display: inline-block;
+       vertical-align: middle;
+       line-height: 1em;
+}
+
+.ve-init-mw-viewPageTarget-toolbar-actions > .ve-ui-pushButtonWidget {
+       margin-left: 0.25em;
+       margin-right: 0.25em;
+       margin-top: 0.2em;
+}
+
+.ve-ui-pushButtonWidget .ve-ui-buttonWidget-button {
+       display: inline-block;
+       font-size: 1em;
+       margin: 0.1em 0;
+       padding: 0.2em 0.8em;
+       border-radius: 0.3em;
+       vertical-align: top;
+       text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+       box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
+       text-align: center;
+
+       /* Animation */
+       -webkit-transition: border-color 100ms;
+       -moz-transition: border-color 100ms;
+       -o-transition: border-color 100ms;
+       transition: border-color 100ms;
+
+       /* Gray */
+       border: 1px #c9c9c9 solid;
+       background-color: #ffffff;
+       filter: progid:DXImageTransform.Microsoft.gradient(
+               GradientType=0,startColorstr=#ffffff, endColorstr=#f0f0f0
+       );
+       background-image: -webkit-gradient(
+               linear, right top, right bottom, color-stop(0%,#ffffff), 
color-stop(100%,#f0f0f0)
+       );
+       background-image: -webkit-linear-gradient(top, #ffffff 0%, #f0f0f0 
100%);
+       background-image: -moz-linear-gradient(top, #ffffff 0%, #f0f0f0 100%);
+       background-image: -ms-linear-gradient(top, #ffffff 0%, #f0f0f0 100%);
+       background-image: -o-linear-gradient(top, #ffffff 0%, #f0f0f0 100%);
+       background-image: linear-gradient(top, #ffffff 0%, #f0f0f0 100%);
+}
+
+.ve-ui-pushButtonWidget .ve-ui-buttonWidget-button:hover,
+.ve-ui-pushButtonWidget .ve-ui-buttonWidget-button:focus {
+       border-color: #aaa;
+}
+
+.ve-ui-pushButtonWidget .ve-ui-buttonWidget-button:active {
+       border-color: #ddd;
+       box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+       color: black;
+}
+
+.ve-ui-pushButtonWidget .ve-ui-buttonWidget-button > 
.ve-ui-labeledElement-label {
+       display: inline-block;
+       vertical-align: middle;
+       line-height: 1.9em;
+}
+
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-destructive 
.ve-ui-buttonWidget-button {
+       /* Red text */
+       color: #d45353;
+}
+
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-constructive 
.ve-ui-buttonWidget-button {
+       /* Green */
+       border: solid 1px #c3e59a;
+       background-color: #f0fbe1;
+       filter: progid:DXImageTransform.Microsoft.gradient(
+               GradientType=0,startColorstr=#f0fbe1, endColorstr=#c3e59a
+       );
+       background-image: -webkit-gradient(
+               linear, right top, right bottom, color-stop(0%,#f0fbe1), 
color-stop(100%,#c3e59a)
+       );
+       background-image: -webkit-linear-gradient(top, #f0fbe1 0%, #c3e59a 
100%);
+       background-image: -moz-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image: -ms-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image: -o-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+       background-image: linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+}
+
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-constructive 
.ve-ui-buttonWidget-button:hover,
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-constructive 
.ve-ui-buttonWidget-button:focus {
+       border-color: #a6cf74;
+}
+
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-primary 
.ve-ui-buttonWidget-button {
+       /* Blue */
+       border: solid 1px #b0d9ee;
+       background-color: #eaf4fa;
+       filter: progid:DXImageTransform.Microsoft.gradient(
+               GradientType=0,startColorstr=#eaf4fa, endColorstr=#b0d9ee
+       );
+       background-image: -webkit-gradient(
+               linear, right top, right bottom, color-stop(0%,#eaf4fa), 
color-stop(100%,#b0d9ee)
+       );
+       background-image: -webkit-linear-gradient(top, #eaf4fa 0%, #b0d9ee 
100%);
+       background-image: -moz-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image: -ms-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image: -o-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+       background-image: linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+}
+
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-primary 
.ve-ui-buttonWidget-button:hover,
+.ve-ui-pushButtonWidget.ve-ui-flaggableElement-primary 
.ve-ui-buttonWidget-button:focus {
+       border-color: #84b9d4;
+}
+
+.ve-ui-buttonWidget {
+       display: inline-block;
+       vertical-align: middle;
+}
+
+a.ve-ui-buttonWidget-button {
+       color: #333;
+       cursor: pointer;
+       display: inline-block;
+       vertical-align: middle;
+       -webkit-touch-callout: none;
+       -webkit-user-select: none;
+       -moz-user-select: none;
+       -ms-user-select: none;
+       user-select: none;
+}
+
+.ve-ui-dialog-content .ve-ui-window-foot 
.ve-ui-pushButtonWidget.ve-ui-flaggableElement-primary,
+.ve-ui-dialog-content .ve-ui-window-foot 
.ve-ui-pushButtonWidget.ve-ui-flaggableElement-constructive,
+.ve-ui-dialog-content .ve-ui-window-foot 
.ve-ui-pushButtonWidget.ve-ui-flaggableElement-destructive {
+       float: right;
+}

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie668ecbdf69842d409623b985f08d71fff6e7064
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ZeroRatedMobileAccess
Gerrit-Branch: master
Gerrit-Owner: Yurik <[email protected]>

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

Reply via email to