/*! * VisualEditor UserInterface MediaWiki EducationPopupTool class. * * @copyright 2011-2020 VisualEditor Team and others; see AUTHORS.txt * @license The MIT License (MIT); see LICENSE.txt */ /** * UserInterface education popup tool. Used as a mixin to show a pulsating blue dot * which, when you click, reveals a popup with useful information. * * @class * * @constructor * @param {Object} [config] Configuration options */ ve.ui.MWEducationPopupTool = function VeUiMwEducationPopupTool( config ) { var popupCloseButton, $popupContent, $shield, // For logged in users, only check their preferences, not local storage. // For anon users, who can't change preferences, check local storage. // (But also check preferences in case default values are overridden.) checkLocalStorage = !!mw.user.isAnon(), hiddenUsingPreferences = mw.user.options.get( 'visualeditor-hideusered' ), hiddenUsingLocalStorage = mw.storage.get( 've-hideusered' ) || $.cookie( 've-hideusered' ), tool = this; config = config || {}; // Do not display on platforms other than desktop if ( !( ve.init.mw.DesktopArticleTarget && ve.init.target instanceof ve.init.mw.DesktopArticleTarget ) ) { return; } // Do not display if the user already acknowledged the popups if ( hiddenUsingPreferences || ( hiddenUsingLocalStorage && checkLocalStorage ) ) { return; } if ( !( this.toolGroup instanceof OO.ui.BarToolGroup ) ) { // The popup gets hideously deformed in other cases. Getting it to work would probably be // difficult. Let's just not show it. (T170919) return; } popupCloseButton = new OO.ui.ButtonWidget( { label: ve.msg( 'visualeditor-educationpopup-dismiss' ), flags: [ 'progressive', 'primary' ], classes: [ 've-ui-educationPopup-dismiss' ] } ); popupCloseButton.connect( this, { click: 'onPopupCloseButtonClick' } ); $popupContent = $( '
' ).text( config.text ), popupCloseButton.$element ); this.popup = new OO.ui.PopupWidget( { $floatableContainer: this.$element, $content: $popupContent, padded: true, width: 300 } ); this.shownEducationPopup = false; this.$pulsatingDot = $( '