From b5312f1d4c3095ed2debae8ea4a576ade471cad4 Mon Sep 17 00:00:00 2001 From: Ed Sanders Date: Sat, 27 Feb 2016 22:39:07 +0000 Subject: [PATCH] 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 --- .gitignore | 1 + extension.json | 2 +- images/LICENSE-MIT | 20 ++++++ images/clear.png | Bin 4747 -> 0 bytes images/code-progressive.png | Bin 0 -> 433 bytes images/code-progressive.svg | 7 ++ images/code.png | Bin 0 -> 283 bytes images/code.svg | 7 ++ images/editor-off.png | Bin 4569 -> 0 bytes images/editor.png | Bin 4569 -> 0 bytes images/find.png | Bin 0 -> 333 bytes images/find.svg | 7 ++ images/gotoLine.png | Bin 0 -> 241 bytes images/gotoLine.svg | 4 ++ images/gotoline.png | Bin 4747 -> 0 bytes images/help.png | Bin 2857 -> 0 bytes images/indent.png | Bin 4747 -> 259 bytes images/indent.svg | 4 ++ images/markup-off.png | Bin 4747 -> 0 bytes images/markup.png | Bin 4747 -> 0 bytes images/outdent.png | Bin 4747 -> 244 bytes images/outdent.svg | 4 ++ images/pilcrow-progressive.png | Bin 0 -> 288 bytes images/pilcrow-progressive.svg | 4 ++ images/pilcrow.png | Bin 0 -> 255 bytes images/pilcrow.svg | 4 ++ images/search-replace.png | Bin 2928 -> 0 bytes images/shortcuts.png | Bin 4747 -> 0 bytes images/wrapping-off.png | Bin 2866 -> 0 bytes images/wrapping-progressive.png | Bin 0 -> 347 bytes images/wrapping-progressive.svg | 8 +++ images/wrapping.png | Bin 2865 -> 269 bytes images/wrapping.svg | 8 +++ modules/jquery.codeEditor.css | 55 --------------- modules/jquery.codeEditor.js | 38 ++++++----- modules/jquery.codeEditor.less | 117 ++++++++++++++++++++++++++++++++ 36 files changed, 216 insertions(+), 74 deletions(-) create mode 100644 images/LICENSE-MIT delete mode 100644 images/clear.png create mode 100644 images/code-progressive.png create mode 100644 images/code-progressive.svg create mode 100644 images/code.png create mode 100644 images/code.svg delete mode 100644 images/editor-off.png delete mode 100644 images/editor.png create mode 100644 images/find.png create mode 100644 images/find.svg create mode 100644 images/gotoLine.png create mode 100644 images/gotoLine.svg delete mode 100644 images/gotoline.png delete mode 100644 images/help.png create mode 100644 images/indent.svg delete mode 100644 images/markup-off.png delete mode 100644 images/markup.png create mode 100644 images/outdent.svg create mode 100644 images/pilcrow-progressive.png create mode 100644 images/pilcrow-progressive.svg create mode 100644 images/pilcrow.png create mode 100644 images/pilcrow.svg delete mode 100644 images/search-replace.png delete mode 100644 images/shortcuts.png delete mode 100644 images/wrapping-off.png create mode 100644 images/wrapping-progressive.png create mode 100644 images/wrapping-progressive.svg create mode 100644 images/wrapping.svg delete mode 100644 modules/jquery.codeEditor.css create mode 100644 modules/jquery.codeEditor.less diff --git a/.gitignore b/.gitignore index a8e1003f..5bb8f99c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ node_modules/ vendor/ ace-git/ +composer.lock diff --git a/extension.json b/extension.json index 92913184..41a91ded 100644 --- a/extension.json +++ b/extension.json @@ -48,7 +48,7 @@ }, "jquery.codeEditor": { "scripts": "jquery.codeEditor.js", - "styles": "jquery.codeEditor.css", + "styles": "jquery.codeEditor.less", "dependencies": [ "jquery.wikiEditor", "ext.codeEditor.ace", diff --git a/images/LICENSE-MIT b/images/LICENSE-MIT new file mode 100644 index 00000000..4c2c2531 --- /dev/null +++ b/images/LICENSE-MIT @@ -0,0 +1,20 @@ +Copyright 2011-2016 OOjs UI Team and other contributors. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/images/clear.png b/images/clear.png deleted file mode 100644 index f7029119161f2c519d599bfb034c1fd78e2572be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 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 diff --git a/images/code-progressive.png b/images/code-progressive.png new file mode 100644 index 0000000000000000000000000000000000000000..89b8f1daf7166e07e6d707ea27cfe2dcb9dbd3b4 GIT binary patch literal 433 zcmV;i0Z#sjP)eN|E!sjMGCSeM zAP&0m7?kI6fciVwMq;^zNaECQyE(bvf6i%op`zkn@O*Vzp^ox%E7XzatFz19gRSyF zJ;69#G6NaN(j_y&*bCI#E1=;klIQ}d!84e^gz*HdB)Uysqdx^S1BC|nnf!7-u$R1+ z#P*JH3M_#eFVLgQV=g)30ayvn76W^8OxQM<0(Fcii7nh3uqIC>E*3+Zy1D~s`Z@+) zfkQJ!^Vn|J>xC8RlaDfC0sCok)7?VAVrV0b2&kDcY4~cp+znrC^xZv1lngB@<~vwl z)$fm-)lV{cebZ{36XYbZh500ciFc>-4V{ + + + + + + diff --git a/images/code.png b/images/code.png new file mode 100644 index 0000000000000000000000000000000000000000..574168a36b5fb2178bf4af9feb64e4e72e43ac67 GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TMc)B=- zcyzvxz0m0jm2Y42llK9HaA{>ZYf z`~#|o_A6iTEEf3CvDU@Fa^tk7@Gmn}Oj7jc**saSVxD?^YI=8dmz|0K#r2DVI6t#( YJ!FzLA?oE6pc@%HUHx3vIVCg!05GLxaR2}S literal 0 HcmV?d00001 diff --git a/images/code.svg b/images/code.svg new file mode 100644 index 00000000..8188e4ff --- /dev/null +++ b/images/code.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/images/editor-off.png b/images/editor-off.png deleted file mode 100644 index 05a38e8665038b1b7be6e61c4e9b84e781baaad6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4569 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 OBs12x&?|vEUjIL|_=7?K diff --git a/images/find.png b/images/find.png new file mode 100644 index 0000000000000000000000000000000000000000..80706265b1d9477efca6ea2b1f02a604e1052e05 GIT binary patch literal 333 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1S}dAc}; zcyzwKv@p-fQK0o9ze + + + + + + diff --git a/images/gotoLine.png b/images/gotoLine.png new file mode 100644 index 0000000000000000000000000000000000000000..f3c61bcf2414e5a430918bc6bb3adadb6139c356 GIT binary patch literal 241 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U@JY5_^ zJUWvTBv_jz|FkE~igprASk$J?cBP4t`M+d=`zFJ!x=oCFY;0|OKx}`-Na7~@J{}$( z{)FVdQ&MBb@0J7&uPXGV_ literal 0 HcmV?d00001 diff --git a/images/gotoLine.svg b/images/gotoLine.svg new file mode 100644 index 00000000..cb1a91f2 --- /dev/null +++ b/images/gotoLine.svg @@ -0,0 +1,4 @@ + + + + diff --git a/images/gotoline.png b/images/gotoline.png deleted file mode 100644 index 4da9dfacdc54e0ea1d4a9220ee66861f67964738..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 zcmcJR2{_c-8^_N?#!l8GT_RidH9Ir*HH?h3SYnifC|hLTFG==BB>R%6(S)+E86oRf zvL#&nvqV|uZ+iZE-0pqu^VIEsp6563Ilpt>&- z_Lr~P0pK}=Hbo&!XIYfiM^|Bb;r{pZoK2X?IZa?u{!DSaf?O2zy5U@zgUrUYhcq-u z*;_KgNn&FBqnV9`s3R!{pi^8AV}i26BilB|eX<<;s@C6k>^$pNo+(;Emv=&I$f*;x zC5@&1sqXAHXoiyY&} z>9C$;lCeHuovJEQ=as@H5gN7G9Dc-D@V+0a&hdu6@f-PU7znG~Ve!SW?;6$~Xc1?RDtpth!Vf>*Tr5u7* zqHk3>q-u;ELgQU%Me59+(<-^peX%A_ujQ`_pdeLiA!oGa8VZNlL?XFk$XQcDHn?iF zNg1MeI9tP+jF0QZNo$LnL?SrNv^kcQt{;#KJE!>~PN4-z1a5^^X^GzpC^J@iOZ^Ov z&67P6toe}Y%_Vp7)L52`v^UqE9#M*x$((sp=s-6Vs|;@ztNCykD%o&VOr)tE_T-ch zMZ9hMljB9yg-u6F&lHhVMy%O(KJg%B2+*jZkRkPeaatc!(?;qe4F|OIIFIs39U7vL zr6375uH!o%pQrbf_r;;l4To(c#KVx9G1r@bt6@-BZx&uFT40*LeCKg zR)_V=k3YD-I5d)Q%rNPVd3XD))`z4IB�OG@;Bv&EY71wzR|0!zeb7!;h2obJ%*K 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 Hu0mjfkgQ28 diff --git a/images/indent.png b/images/indent.png index 7ca196028cd1e094f2460e13f39fb9201a0adffd..d2f43a622fd187a7f65c6dc7cf8b4e6bdba2c813 100644 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1SVJY5_^ zJUZV_*~r;oAmBP*tV#LCj`q3HmfdT2-`LsK+sn)`FI0g=NLWbFkUywJ`TzgNeGboZ zxgP7SEIsYgWS_*8B`pZ5x;+>zZCK(*AGX=VZ!PC{xWt~$(69DLGSBd}t literal 4747 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 + + + diff --git a/images/markup-off.png b/images/markup-off.png deleted file mode 100644 index b0f14a8425b39ccd90799ed413ab428be8a08023..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 zcmeHJcTm(x7VZ%wCy4^Wl9S{p8D_{)V2~k6W>7?eC`k}RlDHru*+EdrK?E5bf|3Lz z3<45|AX#96TY{j3Ij|1Tb?eTu_U^y!s{Vcb`n~u4UVrtfx?|27X;YH1kO2TFb#*jM z50LS2k`Ntyo1b4&JOENJ9m^{KkkcJb2uOc$5&$ye3ozK(vu>Wgo>$yFy*PAXFb*#t zPuB~VTmbMNL75@pW($nUTjLv0{pis9`ktl?BpjyD*iiZeJ|Rw08og-F>|q9zh7+2a zgsg2@(FAdEp?4Tegeh*54H3_9K8g!}9DTceXENxq`#|m1T-Sc(pvrvlI;x_ZxSoU} zSx3r5CX}K8%6{T~cx!XZ>WN-(GxkgNp2LFW>!0o)Wpare2~ngAgV=w0=j<-w2$5ZASE)d6KypdL#@ zUJghofVfF?gdiXc0`_g(-2UKJ8lcx&vrzi|bScfe(1B8EVI5_S4oaqWbcZJaHJbBjDtytG`YPCv`wJ>6_?sce*X7*jo z@bK)+%#dC))Y_rlB6uI!XjgBscj;4z((cyg`s^S5^14vv@(MtL{B-0M2Xhh{D?| zR9i^^(8vlCDpP0OXgDccPjsr`_-F(9uD$FnC{J@Elm<%X9D2&fUaZO#TA zLfTj!jyKWtCS3XnGCC5bx8WS-I&5poKF8#vY_zHq6x)F0&E3daZHfC~a8}&%M3anMU{=-RPspd=KqAg9(XJ>>- z6P-GqaTQY(wXl?(D<-Ik*>viD=0`{yrddxaOXvsXa9~&0K^P#6hIH~dPVq>e7$KD- zCAekM$j_CSum7B{`oyQ^la7)SQ3xGj?g83(Ix(7{Xjrox4{Z!gk{@&TnC`PD@Lt+p zt=`L~+zY}58PYl|+=*{SoZZWbBnB@i%q<)*BsX6-?|{b_oHq+D)iRed zn=T-Imt16Ch&sDu#%hKvP|S}iMCNmj$t=~o4(1X**X4KNZeHtvPVDanW;og$MW?WH=|(&aocD0ql)6xfqWuVuVFmDt2ualf0uY@5_zISxqTvE~sKIn;jy;m7+b+!461ACS=v?(x#Qfy2Rk>;9vKYi7BIosfyUF*g~#6_n}uf zr!bz5eXyb${CXpKK@5rLrs*D%nnu%g2sU3pnPv28BbktxE8*+Wu`&8LJ491dL^D`h z#@gy;^n5qHZ6^bJH&GcC8I8;NxTh@6@=?X-;k3%MlH9oDxTRgETzyqrRflnt zXQo}m1ndSk-WeZ=?*VzCybvToOqhC@^|77p!0Vi^;#3uIE+5N>m(}lNVbmGa<8PMS zoNXxKbZh(VZVBhsd@42pdx0wAY{-X!x5N%}4zW!k6#NlU5f+iEabD2~mL7=|8NZ%U z*p&&5&l<@Z;~7W^WBI2ddNM*Pg`yXgM&zoct5sV>T`fEN5h#T2CH+(KqC%yzmoL4X z*j-+annF#HPX{rjinZB#1!Q9zHzM*F3q)y!6_V8qqK(en|A#t_P(I@w-ZeTu-Z-*= zMz%&ImspQ%PxKJXMu^>LO-INu@ZN6;wK4%bucdN?XEC?<3+~n$P#TP7C}c9GU*qtQ zR92{y2)~zb*Be^MX_$ycE+Xe#uXPl=M3nEpz8qU6#-2p{#=YWh@o`HLGBh;z1Kdhr zP>8r3>0;sfsw<{lKDj9Kbk}lcMLX`U+=JDJ_+{Eg+R1z9oJf5O5jMnJUGYWvawYEo z9N9F(@zas#h>De7+(rv|^cxo~TcnhR)bRxxx`&-_XusJ|32|Q{Hz%8o2woZ;T(&hv zh*?flI(&{qv8ph{+%BcZF{Lov7!nxupJk2mY=4zDdjEMrQ8UK5+qKtqVQyR`)0!%| zFl8=<>N4f<$aBhxbI+GIKWgH{Qo00iHQ{I&=J6|~7qu>VZ?Ij8s_-Z94ftoc>`L!g zrNiL%<(?JRpxTepzxCs+Yq$1P-n_(_L(C2PUHe^jbayJYR7+zD7q*jkJZwvhJiM1% z33>_kh`FiIgP3>yY`w~G)A)hYOWIVezr5T>t@?>j%2JyD`k-Zs+e;&0W?_qTVvC(p zVdUDKpyEm5zF)4fA=$((LetmMwKB}ocdQ+)tBpHVdIlE919!D?zfeDrR~+E45=ZmoGxlU|CkamTC#)>Q_%ZY{88%3;Sg>H>ae#1Hgm$}5l6 ztp|E;z24fKU>pna;ork{)C~Lauawjp*V=8UEvpa1#-jRFt@lTVR!47KtoO@W?-|wJ zB8mv_-cQ(!r-mJmPmAw}q>Nn3Jfk8nKc(ukx3HTB>vrzu%VgSrwBJ$6#3&ZB-M=)5 z?Mdy)PFYJyeC2UHXK%57iTNq6rLl$mF7e<40>=zonv^6%%7@2BwFihnBcN5Ov+e^uyjDZWZUc(nSamyfo-;K3#E z1&{pS+kXiD#`sEnl<Joq)`gB Gzxhx9SyUMS diff --git a/images/markup.png b/images/markup.png deleted file mode 100644 index c6cd56f9e23fcc6c53094f1cabb09eee5b34720e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 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 diff --git a/images/outdent.png b/images/outdent.png index 2bc8a19e389df686481f7debdf357a9de062ed2b..9eb83f730f2943322883d13b82fed84285e922d2 100644 GIT binary patch literal 244 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 diff --git a/images/outdent.svg b/images/outdent.svg new file mode 100644 index 00000000..c004db0f --- /dev/null +++ b/images/outdent.svg @@ -0,0 +1,4 @@ + + + + diff --git a/images/pilcrow-progressive.png b/images/pilcrow-progressive.png new file mode 100644 index 0000000000000000000000000000000000000000..858763bbc2f453668f25685b77543081b596bf84 GIT binary patch literal 288 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1U%db&7< zcyzv74-p5(2qQ`UMU1-&*ae(Y%$ZpJoaaOJC8YuZ%)JQ0LO}y3A@LvG*+*<0dy#Xr>mdKI;Vst00$jop8x;= literal 0 HcmV?d00001 diff --git a/images/pilcrow-progressive.svg b/images/pilcrow-progressive.svg new file mode 100644 index 00000000..d878111d --- /dev/null +++ b/images/pilcrow-progressive.svg @@ -0,0 +1,4 @@ + + + + diff --git a/images/pilcrow.png b/images/pilcrow.png new file mode 100644 index 0000000000000000000000000000000000000000..c5ebcdb12a0d851a31571eb872602af3edd170c9 GIT binary patch literal 255 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TQJY5_^ zJUZWAG~_zuAkg|y|B+~L6(6_sK{fFYV)qV&9juPHSQto$_ vaV_%CD}1r+{Nm2I55hqo>K!N5oM(QxUFygFjZaL0?qKkA^>bP0l+XkKmk(ah literal 0 HcmV?d00001 diff --git a/images/pilcrow.svg b/images/pilcrow.svg new file mode 100644 index 00000000..771e0f80 --- /dev/null +++ b/images/pilcrow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/images/search-replace.png b/images/search-replace.png deleted file mode 100644 index a41ec53cd4b19c6ecea97eaff9e719a6b955ad31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2928 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 diff --git a/images/wrapping-off.png b/images/wrapping-off.png deleted file mode 100644 index e26c092b7163a10c59ab12daf57c8dc62083a72a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2866 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 diff --git a/images/wrapping-progressive.png b/images/wrapping-progressive.png new file mode 100644 index 0000000000000000000000000000000000000000..a1cbfbdcae004f54ac572a232983519313d0749e GIT binary patch literal 347 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1TUc)B=- zcyzvS5L;yKpTK%EP*%Qu;~Hhs=oKSglX%uQU%YiAsq z%`AS%Lpyv1mr2Ns+~7>xt@AA+_@2I)n!(%=WNvys@86VzX&U-{eo-ndA~U)gpX=tl-mS3j3^P6 + + + + + + + diff --git a/images/wrapping.png b/images/wrapping.png index 6ff90153a22effb29c57fba5181386b9f378ae59..1ada587478bbd86fad3e8c8abecf3db35dacedd1 100644 GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf4nJ z@ErkR#;MwT(m+AU64!{5;QX|b^2DN4hVt@qz0ADq;^f4FRK5J7^x5xhq=1ULJY5_^ zJUZV_+{oErAmA#W^q6Pk6-k-1*RBP+tSylV7dXPYrBmR`1qnfsPY=3e?0=TqKlu1( z($R%!3s^60=h-I3__e~7k+tO3lB&ZD3fI^s-{fI=7|Bx2HQh6Zmus;&^Ip5_ddsS} z9bfA2=d(~`BDe7c21$dM&RpeFt@j!~JX@lsDqy?g{l}VC(SN($A0Jpba|O^<44$rj JF6*2UngE2iUw!}p literal 2865 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 + + + + + + + diff --git a/modules/jquery.codeEditor.css b/modules/jquery.codeEditor.css deleted file mode 100644 index 3c339c50..00000000 --- a/modules/jquery.codeEditor.css +++ /dev/null @@ -1,55 +0,0 @@ -.group-codeeditor-format, -.group-codeeditor-style, -.codeEditor-ui-toolbar .group-insert, -.codeEditor-ui-toolbar .group-format, -.codeEditor-ui-toolbar .tabs span.tab-advanced, -.codeEditor-ui-toolbar .tabs span.tab-characters, -.codeEditor-ui-toolbar .tabs span.tab-help, -.codeEditor-ui-toolbar .sections { - display: none; -} - -.codeEditor-ui-toolbar .group-codeeditor-format, -.codeEditor-ui-toolbar .group-codeeditor-style { - display: block; -} - -.codeEditor-status { - clear: both; - width: 100%; - background-color: #F0F0F0; - border-top: 1px solid silver; - display: table; -} - -.codeEditor-status .codeEditor-status-worker-cell.ace_gutter-cell { - background-position: 0 center; -} - -.codeEditor-status-worker { - padding: 0 0.3em; - user-select: none; - cursor: pointer; - display: table-cell; - *float: left; - *width: 10em; -} - -.codeEditor-status-message { - border-left: 1px solid silver; - border-right: 1px solid silver; - padding: 0 0.3em; - width: 100%; - display: table-cell; - *float: left; - *width: auto; -} - -.codeEditor-status-line { - padding: 0 0.3em; - text-align: right; - white-space: nowrap; - display: table-cell; - *float: right; - *width: 4em; -} diff --git a/modules/jquery.codeEditor.js b/modules/jquery.codeEditor.js index b3a5457a..8b491c7a 100644 --- a/modules/jquery.codeEditor.js +++ b/modules/jquery.codeEditor.js @@ -48,7 +48,6 @@ selectedLine = 0, cookieEnabled, returnFalse = function () { return false; }, - extIconPath = mw.config.get( 'wgCodeEditorAssetsPath', mw.config.get( 'wgExtensionAssetsPath' ) ) + '/CodeEditor/images/', api = new mw.Api(); // Initialize state @@ -103,14 +102,14 @@ * Internally used functions */ context.fn = $.extend( context.fn, { - codeEditorToolbarIcon: function () { - return extIconPath + ( context.codeEditorActive ? 'editor.png' : 'editor-off.png' ); + isCodeEditorActive: function () { + return context.codeEditorActive; }, - invisibleCharsToolbarIcon: function () { - return extIconPath + ( context.showInvisibleChars ? 'markup.png' : 'markup-off.png' ); + isShowInvisibleChars: function () { + return context.showInvisibleChars; }, - lineWrappingToolbarIcon: function () { - return extIconPath + ( context.lineWrappingActive ? 'wrapping.png' : 'wrapping-off.png' ); + isLineWrappingActive: function () { + return context.lineWrappingActive; }, changeCookieValue: function ( cookieName, value ) { mw.cookie.set( @@ -202,7 +201,7 @@ codeEditor: { labelMsg: 'codeeditor-toolbar-toggle', type: 'button', - icon: context.fn.codeEditorToolbarIcon(), + offset: [ 0, 0 ], action: { type: 'callback', execute: toggleEditor @@ -215,7 +214,7 @@ indent: { labelMsg: 'codeeditor-indent', type: 'button', - icon: extIconPath + 'indent.png', + offset: [ 0, 0 ], action: { type: 'callback', execute: indent @@ -224,7 +223,7 @@ outdent: { labelMsg: 'codeeditor-outdent', type: 'button', - icon: extIconPath + 'outdent.png', + offset: [ 0, 0 ], action: { type: 'callback', execute: outdent @@ -238,7 +237,7 @@ invisibleChars: { labelMsg: 'codeeditor-invisibleChars-toggle', type: 'button', - icon: context.fn.invisibleCharsToolbarIcon(), + offset: [ 0, 0 ], action: { type: 'callback', execute: toggleInvisibleChars @@ -247,7 +246,7 @@ lineWrapping: { labelMsg: 'codeeditor-lineWrapping-toggle', type: 'button', - icon: context.fn.lineWrappingToolbarIcon(), + offset: [ 0, 0 ], action: { type: 'callback', execute: toggleLineWrapping @@ -256,7 +255,7 @@ gotoLine: { labelMsg: 'codeeditor-gotoline', type: 'button', - icon: extIconPath + 'gotoline.png', + offset: [ 0, 0 ], action: { type: 'callback', execute: gotoLine @@ -265,7 +264,7 @@ toggleSearchReplace: { labelMsg: 'codeeditor-searchReplace-toggle', type: 'button', - icon: extIconPath + 'search-replace.png', + offset: [ 0, 0 ], action: { type: 'callback', execute: toggleSearchReplace @@ -275,6 +274,9 @@ } } } ); + context.fn.updateCodeEditorToolbarButton(); + context.fn.updateInvisibleCharsButton(); + context.fn.updateLineWrappingButton(); $( '.group-codeeditor-style' ).prependTo( '.section-main' ); $( '.group-codeeditor-format' ).prependTo( '.section-main' ); $( '.group-codeeditor-main' ).prependTo( '.section-main' ); @@ -282,16 +284,16 @@ updateButtonIcon: function ( targetName, iconFn ) { var target = '.tool[rel=' + targetName + ']', $icon = context.modules.toolbar.$toolbar.find( target ); - $icon.css( 'background-image', 'url(' + iconFn() + ')' ); + $icon.toggleClass( 'icon-active', iconFn() ); }, updateCodeEditorToolbarButton: function () { - context.fn.updateButtonIcon( 'codeEditor', context.fn.codeEditorToolbarIcon ); + context.fn.updateButtonIcon( 'codeEditor', context.fn.isCodeEditorActive ); }, updateInvisibleCharsButton: function () { - context.fn.updateButtonIcon( 'invisibleChars', context.fn.invisibleCharsToolbarIcon ); + context.fn.updateButtonIcon( 'invisibleChars', context.fn.isShowInvisibleChars ); }, updateLineWrappingButton: function () { - context.fn.updateButtonIcon( 'lineWrapping', context.fn.lineWrappingToolbarIcon ); + context.fn.updateButtonIcon( 'lineWrapping', context.fn.isLineWrappingActive ); }, setCodeEditorPreference: function ( prefValue ) { // Do not try to save options for anonymous user diff --git a/modules/jquery.codeEditor.less b/modules/jquery.codeEditor.less new file mode 100644 index 00000000..c131f80a --- /dev/null +++ b/modules/jquery.codeEditor.less @@ -0,0 +1,117 @@ +@import "mediawiki.mixins"; + +.group-codeeditor-format, +.group-codeeditor-style, +.codeEditor-ui-toolbar .group-insert, +.codeEditor-ui-toolbar .group-format, +.codeEditor-ui-toolbar .tabs span.tab-advanced, +.codeEditor-ui-toolbar .tabs span.tab-characters, +.codeEditor-ui-toolbar .tabs span.tab-help, +.codeEditor-ui-toolbar .sections { + display: none; +} + +.codeEditor-ui-toolbar .group-codeeditor-format, +.codeEditor-ui-toolbar .group-codeeditor-style { + display: block; +} + +.group-codeeditor-main, +.group-codeeditor-format, +.group-codeeditor-style { + .tool { + opacity: 0.7; + background-position: 1px 1px!important; + &.icon-active { + opacity: 1; + } + } +} + +// TODO: Use this icon from OOUI +.group-codeeditor-main .tool[rel=codeEditor] { + .background-image-svg( '../images/code.svg', '../images/code.png' ); + &.icon-active { + .background-image-svg( '../images/code-progressive.svg', '../images/code-progressive.png' ); + } +} + +// TODO: Use this icon from OOUI +.codeEditor-ui-toolbar .tool[rel=indent] { + .background-image-svg( '../images/indent.svg', '../images/indent.png' ); +} + +// TODO: Use this icon from OOUI +.codeEditor-ui-toolbar .tool[rel=outdent] { + .background-image-svg( '../images/outdent.svg', '../images/outdent.png' ); +} + +// TODO: Upstream this icon to OOUI and use it from there +.codeEditor-ui-toolbar .tool[rel=invisibleChars] { + .background-image-svg( '../images/pilcrow.svg', '../images/pilcrow.png' ); + &.icon-active { + .background-image-svg( '../images/pilcrow-progressive.svg', '../images/pilcrow-progressive.png' ); + } +} + +// TODO: Upstream this icon to OOUI and use it from there +.codeEditor-ui-toolbar .tool[rel=lineWrapping] { + .background-image-svg( '../images/wrapping.svg', '../images/wrapping.png' ); + &.icon-active { + .background-image-svg( '../images/wrapping-progressive.svg', '../images/wrapping-progressive.png' ); + } +} + +// TODO: Upstream this icon to OOUI and use it from there +.codeEditor-ui-toolbar .tool[rel=gotoLine] { + .background-image-svg( '../images/gotoLine.svg', '../images/gotoLine.png' ); +} + +// TODO: Use this icon from OOUI +.codeEditor-ui-toolbar .tool[rel=toggleSearchReplace] { + .background-image-svg( '../images/find.svg', '../images/find.png' ); +} + +.wikiEditor-ui-toolbar .group-codeeditor-style { + border-right: 0; +} + +.codeEditor-status { + clear: both; + width: 100%; + background-color: #F0F0F0; + border-top: 1px solid silver; + display: table; +} + +.codeEditor-status .codeEditor-status-worker-cell.ace_gutter-cell { + background-position: 0 center; +} + +.codeEditor-status-worker { + padding: 0 0.3em; + user-select: none; + cursor: pointer; + display: table-cell; + *float: left; + *width: 10em; +} + +.codeEditor-status-message { + border-left: 1px solid silver; + border-right: 1px solid silver; + padding: 0 0.3em; + width: 100%; + display: table-cell; + *float: left; + *width: auto; +} + +.codeEditor-status-line { + padding: 0 0.3em; + text-align: right; + white-space: nowrap; + display: table-cell; + *float: right; + *width: 4em; +}