Commit graph

72 commits

Author SHA1 Message Date
Derk-Jan Hartman 0161e37e6e Modules: Protect against loading modules twice
Bug: T189029
Change-Id: Ie0dff9c1dfa8e3a0927f2915a9a237dff739289a
2018-11-14 20:24:15 +00:00
Ed Sanders 4fa41179e8 Remove obsolete aliases from closures
Bug: T208951
Change-Id: I0b2993912de221e810414e46708c19be163922f6
2018-11-12 22:28:40 +00:00
James D. Forrester e75284e528
Fork autoMsg() with escaped autoSafeMsg(), replace where appropriate
The only use of raw HTML messages is in the help panel, which is the only user
of `layout: 'table'`, so we can replace all other callers.

Bug: T154891
Change-Id: I2df3ec8c05d4daaa094378354566356a822c081f
2018-10-12 01:27:52 -07:00
jenkins-bot ac1db705fa Merge "Remove dummy isSupported function, deprecated in REL1_31" 2018-04-18 10:32:20 +00:00
Ed Sanders 72e48c26e0 Convert remaining tools to OOUI
Replaces the insert and advanced-insert groups, which
are currently multi-colour icons.

Drops the button-sprite + offset mode, according to
mwgrep there are no other users of this.

Bug: T191031
Bug: T143508
Change-Id: I7032f98908a591ea5c9d3dbbb7616e2c10bbfc80
2018-04-11 15:50:23 +01:00
Jforrester 436a0aa1fa Remove dummy isSupported function, deprecated in REL1_31
This reverts commit a92c99cd45.

Change-Id: I2567fbf5a41efb1242b690dd23e4b59b166c0251
2018-01-18 18:19:46 +00:00
Ed Sanders a92c99cd45 Restore isSupported as deprecated dummy function
Bug: T185143
Change-Id: I0be5d09390b70ee581262b4ba6421f5f51f2e696
2018-01-18 11:24:10 +00:00
Ed Sanders 17cf175e78 Save/restore selection in all browsers
Previously this wasn't required due to an iFrame mode.

Change-Id: Ib89af27d5ab6b9b1b05046b32b05ce368ff47a5f
2018-01-02 21:46:31 +00:00
Ed Sanders 84926bbd33 Remove browser compatibility checks
WikiEditor works in all browsers that MW supports,
and should do going forward.

Change-Id: I189516917d805dff3819e742a9fd8ad96a161159
2018-01-02 21:44:59 +00:00
James D. Forrester be36244c70 Radically simplify this extension now there's only one config option
On or off. Pick your apples.

Change-Id: I7677f0b597c33f236192aea1aaa347a36216fbb7
2018-01-02 21:25:16 +00:00
Ed Sanders ca87c9020e Remove rest of partially-removed IE hack
Bug: T123219
Change-Id: I3b900116ce2dc44338451c07ecdc419bad82014b
2017-10-12 16:02:48 +01:00
Ed Sanders d400102c38 Remove IE8 hacks
Change-Id: I23e33e3498487bedcc50d95e2162175e940882c4
2017-05-22 11:50:04 +02:00
Ed Sanders 1b0bd60ee8 build: Update eslint to 0.4.0 and make pass
Change-Id: Ib0ac14fb53479eb964a5d51066661b4771b1f72e
2017-05-04 22:38:47 +00:00
Fomafix 25d64833dd Remove workarounds for IE8
Since MediaWiki 1.27 JavaScript is disabled on Internet Explorer 8.

Bug: T123219
Change-Id: If8e36d5cf39531ca9c599131847f612d17c31166
2017-04-26 18:28:25 +02:00
Fomafix 24ee938095 Replace deprecated jQuery.isArray with Array.isArray
jQuery.isArray was deprecated in jQuery 3.2.0. [1]

Array.isArray is part of ES5 and MediaWiki 1.29+ which ensures that
JavaScript is only used when the browser supports ES5. (T128115)

Performed using:
find . -type f -name \*.js -exec sed -i -e 's/\$\.isArray/Array.isArray/g' {} \;

[1] https://blog.jquery.com/2017/03/16/jquery-3-2-0-is-out/
[2] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Browser_compatibility

Change-Id: Ia1a118fefb23761fe297647442f0a598a9488968
2017-04-26 16:04:51 +00:00
Ed Sanders 7eed707a48 Replace jshint/jscs with eslint/stylelint
Change-Id: Ife5e782bd5513e0496e384655b9b203de5c841a5
2016-11-21 21:02:38 +00:00
Ramunas Geciauskas ddda9c0c13 Fix spelling mistakes and clarify code comments
No functional changes

Change-Id: I395f97640931d7902cb468d62187d6d8fd10c0b7
2016-03-31 10:28:32 -04:00
Timo Tijhof f583469ece Use mw.Message#text() instead of plain() in wikiEditor.autoMsg()
* Follows-up 6a73d06 by removing the hardcoded SITENAME regex.
* Follows-up 1b797b7f6a which introduced this regression in the first
  place. This is exactly the reason why mw.msg() defaults to format
  'text' instead of 'plain' without transformations.

Change-Id: I7f1b877710fb6baa45b83054d1e30a24979b37b4
2015-12-25 21:33:47 +01:00
Fomafix de74cc81f5 Use mw. instead of mediaWiki. in code
Change-Id: Ib7905bbbb8954cf8e268acac45e00ceba959b00b
2015-12-13 12:44:49 +00:00
paladox bdb67f719c build: Test JS code with jshint and jscs via npm
Change-Id: I039bc4c17fbba3c74a5050066b20af05434ca482
2015-11-18 12:06:36 +00:00
Fomafix a27f478bf5 Remove unused parameter lang from $.wikiEditor.auto* functions
Change-Id: I71680155b668b6e87be909d2b765f9cbed064bbf
2015-06-22 07:08:54 +00:00
Fomafix edbee613fc Support fallback languages for icons
Use mw.language.getFallbackLanguageChain() to get the
fallback language chain. This chain currently always contains 'en'
as last element. Remove the last element to prevent a fallback to 'en'.

Reimplement autoIconOrOffset to correctly prefer sprite before icon.

Bug: T87247
Change-Id: I452dd45d20ea4dd542d63274b7aad0272e20ea12
2015-06-21 15:42:18 +00:00
Alex Monk 596a790d00 Try to unbreak WikiEditor modules
Some very weird issues going on involving multiple wikiEditor instances being
set up on the same textarea element. It's probably a race condition of some
sort and I'm hoping that restoring the modules like this will fix it.

Bug: T93384
Change-Id: I44c9c013993220ab709893d239614552d7b25d46
2015-04-07 19:51:58 +01:00
Alex Monk 2b914eeddf Don't try to do event logging if we don't have a stats ID
I found that pages like:
https://pl.wikipedia.org/w/index.php?title=Wikipedia:Strona_g%C5%82%C3%B3wna&action=edit
which load WE dynamically don't have this.

Change-Id: Ib3952f4efbf265dbb0d1e25b2059e1be934565a7
2015-03-20 01:26:31 +00:00
Alex Monk bf15f72dc7 Try to prevent crazy EventLogging entries with no session ID etc.
Seems to be causing errors on view (!) on plwiki, and I would not expect this
to work on non-wikitext pages.

Bug: T93242
Change-Id: I0336a85a2ab4bef1d20086382012047688ffa909
2015-03-19 21:29:57 +00:00
Alex Monk 4d54fa4471 Only do client-side instrumentation on action=edit/action=submit
So we don't break the tests

Bug: T93119
Change-Id: Ib0545f581fd2a845b893a046ab7aa7161e27180e
2015-03-18 23:59:24 +00:00
Fomafix 83c079ceb6 Reuse variable profile instead of $.client.profile()
Change-Id: I66543bd0838b062bea08ca4b5f4fded41ff835cc
2015-03-14 18:01:58 +00:00
Fomafix d16dfb0ad5 Style code
* Fix errors and warnings from phpcs.
* Add commas at end of lines for arrays in PHP.
* Add space between // and comment.
* Add space between ) and {.
* Use tabs instead of spaces for indenting.
* Break lines in PHP with more than 100 characters.
* Remove double spaces and spaces at end of line.
* Remove spaces before comma.
* Fix some typos.

Change-Id: I9c014bdfa9832fa6a20d0190fe2fc668983d0fb9
2015-03-14 15:49:04 +00:00
Alex Monk 74da530f2d Schema:Edit instrumentation
Depends on Ib8612626

Bug: T88027
Change-Id: I67f1000d23cb257df29d5d4be8ae85764458e6c1
2015-03-10 14:56:45 +01:00
Brion Vibber ab2c7e3ce6 Skip an old IE 8 bug workaround in WikiEditor on IE 11/Spartan
An early version of WikiEditor added a workaround for a reported
bug with IE 8 where textarea scroll and selection state was lost
when the contents were modified.

This doesn't seem to be needed on modern versions of IE such as 11
and above and the newer 'Edge' HTML engine mode in Windows 10.

Actually, I can't reproduce it in Windows 7 or XP with IE 8 either
from the original bugs, but just in case it's needed on some particular
version that we don't know about I've only added a check for modern
IEs, which is already in use on other old-IE workarounds in the
module.

Bug: T88875
Change-Id: I25b667a8d8378c417441adee5d97571c71a1c8c7
2015-02-19 21:01:21 +00:00
Matthew Flaschen 736b94f827 Update autoMsg doc for plain call
* Reflect that we're now calling mw.message( ... ).plain()
* Remove vague statement about "may eventually become a wrapper for
  some kind of core MW functionality."

Change-Id: Ibe743162c1f72bb3977ec16e2ba4b023a66e3907
2015-02-14 22:32:35 -05:00
Fomafix 78bdeffcc6 Use "obj.hasOwnProperty( prop )" instead of "prop in obj"
'constructor' in {}; // true
Object.prototype.hasOwnProperty( {}, 'constructor' ); // false

Bug: T86643
Change-Id: I4356608956d722dc086e6876a53fdd93435c6f0a
2015-02-05 13:34:03 +01:00
Fomafix 790a1af231 Fix whitespaces in JavaScript
* Use a singe space as whitespace.
* Remove space before colon when not used as ternary operator

Change-Id: I6391bbcf10d26fadf82686d7ff226b773868415c
2015-01-14 07:14:44 +00:00
Fomafix bfe2fc6c4e Workaround for a scrolling bug in IE8 on resize
Bug: T63910
Change-Id: I6dacc1ed2f2fdf4ea615a477b711dc78667bae68
2014-12-06 12:40:50 +00:00
Derk-Jan Hartman f64a3c26c6 Enable WikiEditor toolbar on iOS
Since we now have a full fledged mobile solution, I think we should
strive to have the site 'proper' work as much on any platform as
possible.

WikiEditor traditionally was not loaded on iOS.
No one really knows why this was not loaded. It can have been bugs or
just to 'slim down'. It works on iOS 6 and iOS 7, so for that reason
I'm now changing the blacklist in this respect. It might work with
earlier versions, but I can't really test that right now.

Bug: 63277
Change-Id: I605eb0e093b84203f1157d9e20788eaa0040ddbf
2014-05-26 14:34:17 +00:00
Fomafix cfcfa69fe4 Apply coding conventions for JavaScript
Change-Id: Ibae64ca7aa52c2283ff81bd942be80c83a4089f7
2014-04-30 10:59:01 +00:00
jenkins-bot c964783792 Merge "Revert "Revert "Preserve textarea state when building WikiEditor UI""" 2014-04-29 22:45:57 +00:00
Mwalker b5696dc435 Revert "Revert "Preserve textarea state when building WikiEditor UI""
Ib97f47ef1d66420682bd429c9c12e66c3392e77d Didn't cause
problems so this is now safe to reapply (to wmf2).

This reverts commit 908e7cc56c.

Change-Id: I510536959b58ff0adacd7908f6150c95bfdb3ec1
2014-04-29 22:43:32 +00:00
jenkins-bot 38b2328296 Merge "Revert "Preserve textarea state when building WikiEditor UI"" 2014-04-25 20:12:25 +00:00
Mwalker 908e7cc56c Revert "Preserve textarea state when building WikiEditor UI"
Sadly this caused bug 64289; so we're going to revert this for now;
then redeploy this and Ib97f47ef1d66420682bd429c9c12e66c3392e77d
in one of the swats next week.

This reverts commit effd98be7e.

Change-Id: Idde3e51e894f8c92f47fb06f0cf08d01e82ccb48
2014-04-25 20:12:09 +00:00
jenkins-bot 3bd860d220 Merge "Cleanup borders of wikiEditor" 2014-04-16 19:50:20 +00:00
Derk-Jan Hartman effd98be7e Preserve textarea state when building WikiEditor UI
When we are wrapping the textarea in the Editor UI, the focus state,
cursor position and the scrollposition might get lost. This is
especially annoying on slower machines, where users might have started
using the textarea before the WikiEditor UI was constructed.

Bug: 41911
Change-Id: Ie472c6c88d98f7ba89873a2db73463ef01bd995a
2014-04-16 08:40:19 +02:00
Derk-Jan Hartman 12e5de632e Cleanup borders of wikiEditor
We had some crazy stuff here with negative margins, border boxes and
what not. There were some problems with IE versions, zooming in and out
in pages and with the side by side preview.

This should take care of those. Mostly it moves the borders inside the
elements that are 100%. This was also required because of the
side-by-side preview which was using a dirty trick to hide the border at
the top

Bug: 26828
Change-Id: I3c3466fac53df3e79de6f12f404005e55409fa7c
2014-04-08 15:32:00 +00:00
Derk-Jan Hartman 952d6b9d8f WikiEditor: Remove unmaintained beta iframe mode
Change-Id: I2d7369116b92d674d791e420750a906a17a46bac
2014-04-03 17:20:49 +02:00
Fomafix 895f737b87 Workaround for a scrolling bug in IE8
Bug: 61908
Change-Id: I69dbfa267b26916628181553b213f05add909c99
2014-02-25 12:41:12 +00:00
Ori Livneh f5b2b18a01 mw.loader#version -> mw.loader#getVersion
mw.loader#version was removed in I57d340015.

Change-Id: Icb8e591c379b083cfc5f05a1a24320e0f13f7d12
2014-02-18 14:54:29 -08:00
umherirrender 37a1deb799 document.selection is undefined in IE11
IE11 replaced document.selection by window.getSelection, which breaks
dialogs in WikiEditor, because document.selection.createRange was
accessed without check. Inserting this check unbreaks the dialogs.

Bug: 57489
Change-Id: I70d49fb43bbf7602f43e9a8086ecd32027cb6d6f
2014-01-05 17:49:54 +01:00
Timo Tijhof 1a2daca06a Kranitor: Make JSHint pass
eqeqeq:
* Change loose comparisons to strict comparisons where
  it seems safe to use a strict comparision instead.
  Mostly comparisons to strings or objects, and comparisons to
  numbers where the other value is known to be a number, too.
  E.g. foo == 'string', bar == node, indexOf() != -1.
* Add eqeqeq:false to files where there are non-obvious usages
  left.

onevar, quotmark:
* Disabled in files with lots of style violations.

unused:
* Remove unused variables that have no side-effects in their
  assigned expression.

Coding style cleanups on affected lines where trivial.

Change-Id: I5db155a632740e24cb52dba2177c7fc35d5aebd5
2013-11-10 07:36:03 +00:00
Helder.wiki 1b797b7f6a Use mediaWiki.message( ... ).plain()
Bug: 42107
Change-Id: Ic17aa1ff18528cec402bef08cace6987529f2782
2013-09-28 09:10:11 -03:00
Timo Tijhof 7721909f9f WikiEditor: Linting and conventions
* Code clean up in preparation for enabling linting in the future

* Update code to use latest code conventions and best practices:
 - Make use of jQuery.Event (e.g. no need to check both e.keyCode
   and e.which)
 - jQuery: .size() -> .length
 - jQuery: (where appropiate) .attr() -> .prop()
   Setting properties like 'checked' via attr() has been deprecated
   in jQuery.
 - Whitespace
 - Single quotes instead of double quotes
 - Use literal keys in object literals instead of strings
 - Pass mediaWiki to closure, use mw. locally instead of "mediaWiki"
   global directly.
 - Fix indentation
 - Brackets around if, else and for bodies
 - Strict comparison to 0, null, false, true etc.
 - Fix missing radix parameter in parseInt
 - Use local $ instead of global $
 - Use `foo || bar` instead of `foo ? foo : bar`
 - Variable scope hoisting
 - Double/redundant variable declarations
 - ['foo'] is better written in dot notation
 - New line at EOF
 - Consistency in jQuery construction:
   Tag name for element creation $( '<div>' )
   Valid html for html parsing $( '<div foo="bar"></div>' )
 - Fix regex escape warnings per JSLint/JSHint.
   Do escape ][, don't escape ><
 - ..

* Add .jshintrc / .jshintignore

* Updated most files, but not all. Too much at once.

Change-Id: I445639b25a9688b3cdf9e5449e3d31cbcfa9c7ae
2012-07-17 13:27:27 -07:00