Commit graph

113 commits

Author SHA1 Message Date
Siddharth VP 1b52f36c7b Configure JSHint to recognize MediaWiki environment globals
Bug: T373068
Change-Id: Ifaa994b4c844ec29aa77182af7159c9bdcdc2441
2024-10-20 13:48:58 +05:30
Siddharth VP 8b7b17f9ee Support dark mode in CodeEditor
This uses JS to figure out if the user is currently in dark mode and set
the Ace theme accordingly. This means the theme doesn't reconfigure if
the user or the OS switches dark mode on/off while CodeEditor is open,
but this is better than nothing.

Ace theme 'monokai' is used for dark mode, and 'textmate' is used for
light mode, as before.

Bug: T375982
Change-Id: Icd683ee51cb86b3352d8f23f652b4ce7a6174b4d
2024-09-30 00:26:39 +05:30
libraryupgrader faf23a2fa3 build: Updating npm dependencies
* eslint-config-wikimedia: 0.28.0 → 0.28.2
  The following rules are failing and were disabled:
  * modules:
    * es-x/no-object-assign

* grunt-stylelint: 0.20.0 → 0.20.1
* stylelint-config-wikimedia: 0.17.1 → 0.17.2

Change-Id: Ic603e46d510db344805408a972355249455a177e
2024-06-20 05:06:27 +00:00
libraryupgrader 7a396da3a1 build: Updating npm dependencies
* eslint-config-wikimedia: 0.27.0 → 0.28.0
  The following rules are failing and were disabled:
  * modules:
    * no-jquery/no-extend

* grunt-stylelint: 0.19.0 → 0.20.0
* stylelint-config-wikimedia: 0.16.1 → 0.17.1

Change-Id: Ifbde191e4d9155dbecc9c395dd89ec06c91c356a
2024-06-06 05:33:43 +00:00
James D. Forrester 46ee5c493b Register Ace as a foreign resource, move credits link to that library
Also move to modules/lib/ like in other repos. As we're using the build
step rather than a direct release, let's leave it as doc-only, but this
at least makes the process more clear.

Also add the README.md and CHANGELOG.md files like we do for others.

Change-Id: I3566e8271ce37807f7d24867680d8229aa97302b
2024-03-15 16:32:36 -04:00
Nardog 1e646acfdb Avoid FOUCs more flexibly
Style the textbox to mimic when CodeEditor is enabled only if
"usecodeeditor" is set, and only before CodeEditor is loaded (I0ce663e
added a gutter even when CodeEditor was turned off, which no one asked
for).

.wikiEditor-ui-text is added client-side, so there's no point in styling
it.

Bug: T351487
Change-Id: I3918e1c120805ca007e8e7eb7e29304ddbb6af56
2024-02-22 18:33:14 +00:00
Ed Sanders 1528c7740f build: Update linters
Change-Id: Idaed1bf627d8d92968b422ad428acd29a179d94a
2023-12-18 17:09:57 +00:00
Sam Wilson f7a7c7afea Add change handler for Edit Recovery
When the Edit Recovery loading process is finished, add an Ace
editor change handler so that the Edit Recovery fields are saved
whenever there's a change to the CodeEditor data.

This is similar to the change made for CodeMirror:
I352470752130c7b9b2dfc55a066cecf785d40067

Bug: T344406
Change-Id: I2c7826379108a88be7956d84bbfd3200b5ad542f
2023-09-20 16:15:52 +08:00
Máté Szabó a6030db858 Follow-up Ie3ed681b: Unstub getCaretPosition() as well
It was pointed out in the review of Ie3ed681b that the naive fallback
for replaceSelection() was not working because CodeEditor only had a
stub getCaretPosition() implementation. So, let's implement that as well
in case people want to use it. It seems to work reasonably well locally
with the native replaceSelection() disabled.

Bug: T342127
Change-Id: I8d3683808394faefa56c7cdff31dc18978c4dd92
2023-07-21 14:45:41 +02:00
Máté Szabó 2f7ce4dd50 Add explicit replaceSelection() implementation
The $.textSelection() facade in CodeEditor is missing a
replaceSelection() implementation. This causes $.textSelection() to
fall back to a naive implementation, which does not work, thus breaking
any gadget or extension that tries to interact with CodeEditor using
this method. As a fix, provide a native replaceSelection()
implementation that calls the appropriate ACE editor method:

Bug: T342127
Change-Id: Ie3ed681b39c5d4d2bed50030a397a2b1c877c9fb
2023-07-18 16:38:55 +02:00
Jon Harald Søby 075cfc12e4 Remove use of autoMsg in favour of using mw.message directly
Use mw.message directly instead of relying on WikiEditor's
<key>Msg feature.

Bug: T154891
Change-Id: Ifc9016ecd35cb0d8bbbf858b704cb0b574e38f56
2023-07-05 02:03:55 +02:00
Bartosz Dziewoński 62c3d99a7f Use core behaviour regarding saving options for non-registered users
mw.Api#saveOptions will skip the API call and return a 'notloggedin'
error when the current user is not registered.

To handle temporary users as well, just fall back to that behaviour
instead of being explicit, and the right thing will also happen
(probably it will return an error, although the behaviour may change).

Bug: T332430
Change-Id: I4aafd6f74b74971c52b6222f8ec97a4963bb6a7b
2023-03-17 20:33:43 +01:00
Nardog a2199fe310 Configure JS linter without overriding safe options
I263e08a397 overrode linter options set by Ace worker, such as ES6 and
browser globals. Using changeOptions instead of setOptions avoids this.

Bug: T1092
Change-Id: I31ba98a7a04063df175ed3188fed3a8ef1a2dab0
2022-12-19 12:45:35 +09:00
Derk-Jan Hartman 177142940d Configure JS linter to handle more lines
The linter would bail after 100 detected issues (alerting or not) and
would report the warning 'too many errors (xx% scanned)'

Set a higher limit. 1000 seems enough for navigation popups gadget.

Bug: T1092
Change-Id: I263e08a39712279a06b12cd75ebedcccaf191b58
2022-05-30 21:12:19 +00:00
Ed Sanders 17e04cab5e Move var declarations inline
Change-Id: Iccad0c3bf194f8fa418181283ac3b2a037fabe5f
2021-10-06 18:00:20 +01:00
Nardog 86e79cdaf3 Improve accuracy of the search/replace toggle
Now toggleSearchReplace() actually looks at the visibility of the search
box, instead of keeping a boolean, to decide whether to show or hide the
box, in case it was opened by Ctrl-F or closed by Esc or clicking X. So
the button itself is no longer a toggle, but a simple action button. In
addition, it now uses Ace's native replace command instead of
reinventing the wheel. Ace no longer hijacks Ctrl-R and with this Ctrl-H
now works.

Bug: T102486
Change-Id: I6bead1b3209e08a46e31ed3f30c61ca52152b688
2021-03-25 20:11:52 +00:00
Timo Tijhof c0c70a2312 Remove use of jquery.ui module aliases
Bug: T219604
Change-Id: Ia639ca6728ac23c14fa5b1a21317ddd3220c3727
2019-11-26 20:06:59 +00:00
Ed Sanders c4bc2c7d36 build: Update linters
Change-Id: I0c7b153461300840deb75c695f893b3b4a778dcf
2019-11-15 16:40:39 +00:00
Ed Sanders 5cac43ddd3 build: Update eslint-config-wikimedia to 0.11.0
Change-Id: I99fd10fbcce5d5e6b87b6e3faeb7b18c4e573ef7
2019-03-13 22:38:54 +00:00
Ed Sanders 4ad54da406 build: Update linters
Change-Id: I9baecb9fd4b9d9bf86897ccec8289614b136c3a2
2018-12-10 13:31:37 +00:00
Ed Sanders 8c6473826a Remove obsolete aliases from closures
Bug: T208951
Change-Id: Ib3502d54c39e65c2aed38f7e630a8b8286d522c2
2018-11-12 13:16:11 +00:00
Derk-Jan Hartman e8fbe62ef0 Make use of new WikiEditor 2010 toggle tool
Set a specific WikiEditor version dependency of 0.5.2.

Bug: T198781
Change-Id: I6664a7ff2383d83c7d0fa1fd45e2539fad40c1d0
Depends-On: I8b7fd41571a48fa4f6560790d94bb966972e740f
2018-08-17 11:22:36 -07:00
Volker E 75d8b4c112 Replace deprecated OOUI 'find' icon with 'articleSearch' of 'content' pack
Depends-on: I41c3d5502ff58f72bf7441811eaf17702468469b
Bug: T183645
Change-Id: I0535b667084771ecff3a4c0e14616fc9ee586895
2018-04-02 14:26:48 -07:00
Ed Sanders 819c6e1c82 Use OOUI icons
* Use upstream icons where available
* Move extra icons into a ResourceLoaderImageModule

Depends-On: I3e6f65f6f290778d3fbfa22f5d212c26fee12a86
Change-Id: I61cd750613922e58cec18a2886609f20e73f4a61
2018-03-23 22:51:35 +00:00
Ed Sanders 3d8950e7b7 Remove unused browser matrix
Since 84926bbd33, WikiEditor doesn't check browser support (because all
supported browsers by MediaWiki exceed these requirements).

Change-Id: I778dcfa75bb0b8a5a530c164e5b908b213d59afe
2018-02-13 19:13:27 +00:00
James D. Forrester 7629004d05 build: Bump various devDependencies to latest
eslint-config-wikimedia   0.4.0  →   0.5.0
 grunt-banana-checker      0.5.0  →   0.6.0
 grunt-eslint             19.0.0  →  20.1.0
 grunt-stylelint           0.6.0  →   0.8.0

Change-Id: Ia01949112243c5a496896c0a3a5eda261e0f66bd
2017-10-25 10:54:00 -07:00
Ed Sanders bbe14dbc2b Remove deprecated methods
Change-Id: Ib81592b4a13528a5ecf30d8a5cebbacae20be189
Depends-On: I3b900116ce2dc44338451c07ecdc419bad82014b
2017-10-12 16:03:54 +01:00
Ed Sanders 3b4ffe089f build: Update eslint to 0.4.0 and make pass
Change-Id: I764892179b136b8a4ae6940611ba8b4ecb672957
2017-05-04 21:09:35 +00:00
Brad Jorsch fe072480d3 Check for numeric 0 when checking 'usecodeeditor' pref in JS
A recent core change caused zero-valued preferences to start being
returned as numeric 0 rather than string 0. See the linked bug for
details.

Bug: T161875
Change-Id: I183fd9944e65041b0a330725c41fec2b59ca8379
2017-03-31 19:57:08 +00:00
Ed Sanders 7148dfcf3f Use OOUI for prompt dialog
Depends on latest OOUI, and therefore MW 1.29.

Change-Id: I91594f534a2dca657785357a1dcb39e86d072bac
2017-01-09 15:39:27 -08:00
Ed Sanders 6042898fcf Use OOUI for confirm dialog
Would be nice to do this for the goto line prompt,
but such a OO.ui.prompt doesn't exist yet.

Change-Id: I6b24e51b5b106ece80e265ff5417878f108619b7
2016-12-24 22:49:21 +00:00
Ed Sanders 1818ed4bea Add missing i18n for 'go to line' prompt
Change-Id: If4f7c243f23fc809c95cf671d5b47ec978a9fdb9
2016-12-09 13:49:46 +00:00
Ed Sanders 7fddf35aa8 build: Remove jshint/jscs, add eslint/stylelint
Change-Id: I4304ca95de7dd395676f40bcbb35a447c039ba21
2016-12-09 13:31:08 +00:00
Derk-Jan Hartman c9d4d7663e Simplify modeloading
Analogous to I82d278920695be12aa80a79548abf8b8ce5445fd, make sure that
we can lazy load any language that Ace supports. Not because we need
it, but because it's the nicer way to do it.

Change-Id: I19b8a31041814ac1273d62a24b5ed622fd91a7a8
2016-10-21 14:13:26 +02:00
Derk-Jan Hartman 46d76471e1 Use slice instead of substring per code conventions
Change-Id: Id9b08270c377f2b31486dbdb9492b77860f436e7
2016-09-26 21:36:53 +02:00
Derk-Jan Hartman c158ae5602 Update Ace and use scoped require / define
This brings Ace to upstream commit
4a55188fdb0eee9e2d3854f175e67408a1e47655

Bug: T127643
Change-Id: I7699e842d7b561b8a35cf7a4ea048f4126eaf856
2016-03-14 00:26:27 +01:00
jenkins-bot e10ed30111 Merge "Replace toolbar with OOUI/OOUI-style SVGs" 2016-02-29 23:33:18 +00:00
Ed Sanders b5312f1d4c Replace toolbar with OOUI/OOUI-style SVGs
* Use resource loader embedding for better performance
  (uses a slightly hacky method to achieve this, the only
  alternative would be to fix the WikiEditor API, but that
  would introduce a version dependency)
* Use SVGs from OOUI where available or create new ones where not.
  These are used and available under the OOjs UI MIT licence.
* Provide PNG fallbacks using LESS mixin
* Remove unused icons

Change-Id: If38d51d24958716e2617c4cb515e7c0575cdfeba
2016-02-29 13:00:15 -08:00
Ed Sanders 41e9cee298 GotoLine: Don't throw an exception if the user cancels the prompt
Change-Id: I540ba492cf3acda01ad61800561cda0276f36c76
2016-02-27 22:39:39 +00:00
jenkins-bot 0a7dc634fc Merge "Adapt toolbar icon change to change 19789d76 in WikiEditor" 2016-02-23 22:01:27 +00:00
Fomafix ecfc6514d3 Remove check for existence of mw.hook
mw.hook was introduced with 2e970257 in MediaWiki core for REL 1.22.

Change-Id: Ib81ba150c4056be19ede2145308489d0b286aea0
2016-01-29 12:32:14 +00:00
Fomafix d4a5b7eddf Adapt toolbar icon change to change 19789d76 in WikiEditor
Bug: T125201
Change-Id: I58c1d246d3fbb8031e3be482f349a0538c44152c
2016-01-29 11:07:47 +00:00
Fomafix 135716727d Abort previous unfinished API request before sending new request
This change requires 81171ab3 from core included in MediaWiki 1.27.

Change-Id: I8dec32bf49e412510cf5d98f2f946bfd337f47a1
2016-01-27 11:07:38 +00:00
jenkins-bot 49f5843e65 Merge "Use module "mediawiki.api.options" to save options" 2015-11-30 19:01:06 +00:00
Fomafix aeb072ce8a Avoid accessing undefined context
The delayed update of the status bar fails when the CodeEditor is disabled
in the meantime.

Bug: T119869
Change-Id: I6b23148f7a3d79021b87ad5f0f537eda9b68970f
2015-11-30 12:49:30 +00:00
Fomafix 370b597b79 Enable the "Go to line nummer" button on read-only pages
Bug: T114618
Change-Id: I17b5c05673489935a80db2e115d211695c17bde5
2015-11-30 09:09:53 +00:00
Fomafix c59add0448 Use $.map from jQuery
This requires jQuery >= 1.6. This is included in MediaWiki >= 1.18.
This change drops support for MediaWiki 1.17.

Change-Id: I12f3f3e22d9bc47a0a2d9a9d201af4e44012e0a2
2015-11-29 20:16:03 +00:00
Fomafix eacbcd828a Use module "mediawiki.api.options" to save options
This change requires MediaWiki 1.25.

Change-Id: Id476b7422bd47751813f671982ceecd6d9844718
2015-11-29 16:00:13 +00:00
Paladox b6e9f6cca4 Add jshint and jscs to npm, Also add composer.json
Instead of running the jshint test through jenkins, Run it through npm
instead.

Also add composer.json for running php code sniffer and phplint instead of
running phplint through jenkins.

Also update grunt-jsonlint to 1.0.6

Change-Id: Icd9aa1b1c7213d056aa5294a804341053141b0bd
2015-11-29 12:03:16 +01:00
jenkins-bot 52ef9085a9 Merge "Do not try to save options for anonymous user" 2015-11-29 10:38:09 +00:00