Robmoen has uploaded a new change for review.
https://gerrit.wikimedia.org/r/77248
Change subject: Create ve MWModal interstitial
......................................................................
Create ve MWModal interstitial
For configured wikis, show MWModal on the first load of VisualEditor.
Change-Id: I8e7c4dc2c63b36594378a543b9d66291395eebcf
---
M VisualEditor.hooks.php
M VisualEditor.i18n.php
M VisualEditor.php
M modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
A modules/ve-mw/ui/dialogs/ve.ui.MWModalDialog.js
M modules/ve-mw/ui/styles/ve.ui.MWDialog.css
M modules/ve/ui/styles/ve.ui.Dialog.css
M modules/ve/ui/ve.ui.Dialog.js
8 files changed, 108 insertions(+), 1 deletion(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor
refs/changes/48/77248/1
diff --git a/VisualEditor.hooks.php b/VisualEditor.hooks.php
index 7b1153a..c1813fd 100644
--- a/VisualEditor.hooks.php
+++ b/VisualEditor.hooks.php
@@ -122,7 +122,7 @@
* Adds extra variables to the page config.
*/
public static function onMakeGlobalVariablesScript( array &$vars,
OutputPage $out ) {
- global $wgStylePath, $wgContLang;
+ global $wgStylePath, $wgContLang, $wgVisualEditorShowBetaModal;
$vars['wgVisualEditor'] = array(
'isPageWatched' => $out->getUser()->isWatched(
$out->getTitle() ),
// Same as in Linker.php
@@ -131,6 +131,7 @@
( $wgContLang->isRTL() ? '-rtl' : '' ) . '.png',
'pageLanguageCode' =>
$out->getTitle()->getPageLanguage()->getHtmlCode(),
'pageLanguageDir' =>
$out->getTitle()->getPageLanguage()->getDir(),
+ 'showBetaModal' => $wgVisualEditorShowBetaModal
);
return true;
diff --git a/VisualEditor.i18n.php b/VisualEditor.i18n.php
index f4aacde..8d53369 100644
--- a/VisualEditor.i18n.php
+++ b/VisualEditor.i18n.php
@@ -86,6 +86,9 @@
'visualeditor-dialog-transclusion-remove-param' => 'Remove parameter',
'visualeditor-dialog-transclusion-remove-template' => 'Remove template',
'visualeditor-dialog-transclusion-title' => 'Transclusion',
+ 'visualeditor-dialog-ve-modal-title' => 'VisualEditor is in beta',
+ 'visualeditor-dialog-ve-modal-content' => 'This is our new editor to
make editing easier, VisualEditor. It\'s still in "beta", which means you might
be unable to edit some parts of the page, or encounter issues that need to be
fixed. You can keep using our old editor by clicking the "$1" tab instead.',
+ 'visualeditor-dialog-ve-modal-action-get-started' => 'Let\'s get
started',
'visualeditor-dialogbutton-media-tooltip' => 'Media',
'visualeditor-dialogbutton-meta-tooltip' => 'Page settings',
'visualeditor-dialogbutton-reference-tooltip' => 'Reference',
@@ -341,6 +344,9 @@
'visualeditor-dialog-transclusion-remove-param' => 'Label for button
that removes a parameter from a template',
'visualeditor-dialog-transclusion-remove-template' => 'Label for button
that removes a template from a transclusion.
{{Identical|Remove template}}',
+ 'visualeditor-dialog-ve-modal-title' => 'Title of the ve warning modal',
+ 'visualeditor-dialog-ve-modal-content' => 'Text explaining visual
editor is in beta. Parameters: $1 is the text for #ca-edit',
+ 'visualeditor-dialog-ve-modal-action-get-started' => 'Text to close the
dialog and continue using visual editor',
'visualeditor-dialog-transclusion-title' =>
'{{Identical|Transclusion}}',
'visualeditor-dialogbutton-media-tooltip' => '{{Identical|Media}}',
'visualeditor-dialogbutton-meta-tooltip' => '{{Identical|Page
Settings}}',
diff --git a/VisualEditor.php b/VisualEditor.php
index bc68d57..bfc332d 100644
--- a/VisualEditor.php
+++ b/VisualEditor.php
@@ -491,6 +491,7 @@
've/ui/dialogs/ve.ui.PagedDialog.js',
've-mw/ui/dialogs/ve.ui.MWMetaDialog.js',
+ 've-mw/ui/dialogs/ve.ui.MWModalDialog.js',
've-mw/ui/dialogs/ve.ui.MWMediaInsertDialog.js',
've-mw/ui/dialogs/ve.ui.MWMediaEditDialog.js',
've-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js',
@@ -622,6 +623,9 @@
'visualeditor-dialog-transclusion-remove-template',
'visualeditor-dialog-transclusion-title',
'visualeditor-dialog-transclusion-wikitext-label',
+ 'visualeditor-dialog-ve-modal-title',
+ 'visualeditor-dialog-ve-modal-content',
+ 'visualeditor-dialog-ve-modal-action-get-started',
'visualeditor-dialogbutton-media-tooltip',
'visualeditor-dialogbutton-meta-tooltip',
'visualeditor-dialogbutton-reference-tooltip',
diff --git a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
index d88678c..bf5c154 100644
--- a/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
+++ b/modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js
@@ -323,6 +323,9 @@
this.setupBeforeUnloadHandler();
this.$document[0].focus();
this.activating = false;
+ if ( mw.config.get( 'wgVisualEditor' ).showBetaModal ){
+ this.showWarningModal();
+ }
mw.hook( 've.activationComplete' ).fire();
}, this ) );
}
@@ -2230,6 +2233,19 @@
};
/**
+ * Show VE Warning modal if first load.
+ *
+ */
+ve.init.mw.ViewPageTarget.prototype.showWarningModal = function () {
+ if ( $.cookie( 've-warning-modal' ) !== null ) {
+ return ;
+ }
+ this.surface.getDialogs().open( 'mwModal' );
+ $.cookie( 've-warning-modal', 1, { 'path': '/', 'expires': 365 } );
+
+};
+
+/**
* Handle page show event.
*
* @method
diff --git a/modules/ve-mw/ui/dialogs/ve.ui.MWModalDialog.js
b/modules/ve-mw/ui/dialogs/ve.ui.MWModalDialog.js
new file mode 100644
index 0000000..ff4d90f
--- /dev/null
+++ b/modules/ve-mw/ui/dialogs/ve.ui.MWModalDialog.js
@@ -0,0 +1,64 @@
+/*!
+ * VisualEditor user interface MWModalDialog class.
+ *
+ * @copyright 2011-2013 VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * Dialog for inserting MediaWiki media objects.
+ *
+ * @class
+ * @extends ve.ui.MWDialog
+ *
+ * @constructor
+ * @param {ve.ui.Surface} surface
+ * @param {Object} [config] Config options
+ */
+ve.ui.MWModalDialog = function VeUiMWModalDialog( surface, config ) {
+ // Configuration initialization
+ config = ve.extendObject( {}, config, { 'small': true, 'footless':
false } );
+
+ // Parent constructor
+ ve.ui.MWDialog.call( this, surface, config );
+ // TODO: Modal needs generalized
+ this.contentMessage = ve.msg( 'visualeditor-dialog-ve-modal-content'
).replace( '$1', $( '#ca-edit' ).text() );
+};
+
+/* Inheritance */
+
+ve.inheritClass( ve.ui.MWModalDialog, ve.ui.MWDialog );
+
+/* Static Properties */
+
+ve.ui.MWModalDialog.static.titleMessage = 'visualeditor-dialog-ve-modal-title';
+
+ve.ui.MWModalDialog.static.icon = 'window';
+
+/* Methods */
+
+/** */
+ve.ui.MWModalDialog.prototype.initialize = function () {
+ // Parent method
+ ve.ui.MWDialog.prototype.initialize.call( this );
+
+ // Properties
+ this.$content = this.$$( '<div>' ).addClass(
've-ui-mwModalDialog-content' ).text( this.contentMessage );
+
+ this.getStartedBtn = new ve.ui.ButtonWidget( {
+ '$$': this.$$,
+ 'label': ve.msg(
'visualeditor-dialog-ve-modal-action-get-started' ),
+ 'flags': ['primary']
+ } );
+
+ // Events
+ this.getStartedBtn.connect( this, { 'click': [ 'close', 'close' ] } );
+
+ // Initialization
+ this.$body.append( this.$content );
+ this.$foot.append( this.getStartedBtn.$ );
+};
+
+/* Registration */
+
+ve.ui.dialogFactory.register( 'mwModal', ve.ui.MWModalDialog );
diff --git a/modules/ve-mw/ui/styles/ve.ui.MWDialog.css
b/modules/ve-mw/ui/styles/ve.ui.MWDialog.css
index 63b1fff..69636b1 100644
--- a/modules/ve-mw/ui/styles/ve.ui.MWDialog.css
+++ b/modules/ve-mw/ui/styles/ve.ui.MWDialog.css
@@ -72,6 +72,12 @@
background: #F8F8F8;
}
+.ve-ui-mwModalDialog-content {
+ padding: 1.5em;
+ line-height: 1.25em;
+ font-size: 1.1em;
+}
+
/* ve.ui.MWMediaInsertDialog */
.ve-ui-mwMediaInsertDialog-select {
diff --git a/modules/ve/ui/styles/ve.ui.Dialog.css
b/modules/ve/ui/styles/ve.ui.Dialog.css
index 68049ce..a79f677 100644
--- a/modules/ve/ui/styles/ve.ui.Dialog.css
+++ b/modules/ve/ui/styles/ve.ui.Dialog.css
@@ -52,6 +52,12 @@
animation: ve-ui-zoom-in 250ms ease-in-out 0 1 normal;
}
+.ve-ui-dialog .ve-ui-window-frame.ve-ui-window-frame-small {
+ width: 600px;
+ min-height: 200px;
+ height: 200px;
+}
+
.ve-ui-dialog-closing .ve-ui-window-frame {
-webkit-animation: ve-ui-zoom-in 250ms ease-in-out 0 1 reverse;
-moz-animation: ve-ui-zoom-in 250ms ease-in-out 0 1 reverse;
diff --git a/modules/ve/ui/ve.ui.Dialog.js b/modules/ve/ui/ve.ui.Dialog.js
index 5c0ca60..95e88e4 100644
--- a/modules/ve/ui/ve.ui.Dialog.js
+++ b/modules/ve/ui/ve.ui.Dialog.js
@@ -27,6 +27,7 @@
// Properties
this.visible = false;
this.footless = !!config.footless;
+ this.small = !!config.small;
this.onWindowMouseWheelHandler = ve.bind( this.onWindowMouseWheel, this
);
this.onDocumentKeyDownHandler = ve.bind( this.onDocumentKeyDown, this );
@@ -154,6 +155,9 @@
if ( this.footless ) {
this.frame.$content.addClass( 've-ui-dialog-content-footless' );
}
+ if ( this.small ) {
+ this.$frame.addClass( 've-ui-window-frame-small' );
+ }
this.closeButton.$.addClass( 've-ui-window-closeButton' );
this.$head.append( this.closeButton.$ );
};
--
To view, visit https://gerrit.wikimedia.org/r/77248
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e7c4dc2c63b36594378a543b9d66291395eebcf
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Robmoen <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits