|
9 | 9 | {if $codemirrorMode|isset} |
10 | 10 | <script data-relocate="true">window.define.amd = undefined;</script> |
11 | 11 | {if $codemirrorMode != 'smartymixed'} |
12 | | - <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/codemirror/mode/{if $codemirrorMode == 'text/x-less'}css/css{else}{$codemirrorMode}/{$codemirrorMode}{/if}.js"></script> |
| 12 | + <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/codemirror/mode/{if $codemirrorMode == 'text/x-less'}css/css{else}{$codemirrorMode}/{$codemirrorMode}{/if}.js"></script> |
13 | 13 | {/if} |
14 | 14 |
|
15 | 15 | {if $codemirrorMode == 'htmlmixed' || $codemirrorMode == 'smartymixed' || $codemirrorMode == 'php'} |
|
25 | 25 | <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/codemirror/mode/javascript/javascript.js"></script> |
26 | 26 | <script data-relocate="true" src="{@$__wcf->getPath()}js/3rdParty/codemirror/mode/xml/xml.js"></script> |
27 | 27 | {/if} |
28 | | - |
29 | 28 | <script data-relocate="true">window.define.amd = window.__require_define_amd;</script> |
30 | 29 | {/if} |
31 | 30 | {event name='javascriptIncludes'} |
32 | 31 |
|
33 | 32 | <script data-relocate="true"> |
34 | 33 | {if !$codemirrorLoaded|isset} |
35 | | - ['{@$__wcf->getPath()}js/3rdParty/codemirror/codemirror.css', '{@$__wcf->getPath()}js/3rdParty/codemirror/addon/dialog/dialog.css'].forEach(function(href) { |
36 | | - var link = document.createElement('link'); |
| 34 | + ['{@$__wcf->getPath()}js/3rdParty/codemirror/codemirror.css', '{@$__wcf->getPath()}js/3rdParty/codemirror/addon/dialog/dialog.css'].forEach((href) => { |
| 35 | + const link = document.createElement('link'); |
37 | 36 | link.rel = 'stylesheet'; |
38 | 37 | link.href = href; |
39 | 38 | document.head.appendChild(link); |
40 | 39 | }); |
41 | 40 | {/if} |
42 | 41 | |
43 | 42 | require(['EventHandler', 'Dom/Traverse', 'Dom/Util'], function(EventHandler, DomTraverse, DomUtil) { |
44 | | - var elements = document.querySelectorAll('{@$codemirrorSelector|encodeJS}'); |
45 | | - var config = { |
| 43 | + const elements = document.querySelectorAll('{@$codemirrorSelector|encodeJS}'); |
| 44 | + const config = { |
46 | 45 | {if $codemirrorMode|isset} |
47 | 46 | {if $codemirrorMode == 'smartymixed'} |
48 | 47 | mode: { |
|
61 | 60 | readOnly: {if !$editable|isset || $editable}false{else}true{/if} |
62 | 61 | }; |
63 | 62 | |
64 | | - [].forEach.call(elements, function (element) { |
| 63 | + elements.forEach((element) => { |
65 | 64 | {event name='javascriptInit'} |
66 | 65 | |
67 | 66 | if (element.codemirror) { |
68 | | - for (var key in config) { |
| 67 | + for (const key in config) { |
69 | 68 | if (config.hasOwnProperty(key)) { |
70 | 69 | element.codemirror.setOption(key, config[key]); |
71 | 70 | } |
72 | 71 | } |
73 | 72 | } |
74 | 73 | else { |
75 | 74 | element.codemirror = CodeMirror.fromTextArea(element, config); |
76 | | - var oldToTextArea = element.codemirror.toTextArea; |
77 | | - element.codemirror.toTextArea = function () { |
| 75 | + const oldToTextArea = element.codemirror.toTextArea; |
| 76 | + element.codemirror.toTextArea = () => { |
78 | 77 | oldToTextArea(); |
79 | 78 | element.codemirror = null; |
80 | 79 | }; |
81 | 80 | } |
82 | 81 | |
83 | | - setTimeout(function () { |
| 82 | + setTimeout(() => { |
84 | 83 | element.codemirror.refresh(); |
85 | 84 | }, 250); |
86 | | - setTimeout(function () { |
| 85 | + setTimeout(() => { |
87 | 86 | element.codemirror.refresh(); |
88 | 87 | }, 1000); |
89 | 88 | |
90 | | - var tab = DomTraverse.parentByClass(element, 'tabMenuContent'); |
| 89 | + const tab = DomTraverse.parentByClass(element, 'tabMenuContent'); |
91 | 90 | if (tab !== null) { |
92 | | - var name = elData(tab, 'name'); |
93 | | - var tabMenu = DomTraverse.parentByClass(tab, 'tabMenuContainer'); |
94 | | - var scrollPosition = null; |
| 91 | + const name = elData(tab, 'name'); |
| 92 | + const tabMenu = DomTraverse.parentByClass(tab, 'tabMenuContainer'); |
| 93 | + let scrollPosition = null; |
95 | 94 | |
96 | | - EventHandler.add('com.woltlab.wcf.simpleTabMenu_' + DomUtil.identify(tabMenu), 'select', function(data) { |
| 95 | + EventHandler.add('com.woltlab.wcf.simpleTabMenu_' + DomUtil.identify(tabMenu), 'select', (data) => { |
97 | 96 | if (data.activeName === name) { |
98 | 97 | element.codemirror.refresh(); |
99 | 98 | if (scrollPosition !== null) element.codemirror.scrollTo(null, scrollPosition); |
100 | 99 | } |
101 | 100 | }); |
102 | 101 | |
103 | | - EventHandler.add('com.woltlab.wcf.simpleTabMenu_' + DomUtil.identify(tabMenu), 'beforeSelect', function(data) { |
| 102 | + EventHandler.add('com.woltlab.wcf.simpleTabMenu_' + DomUtil.identify(tabMenu), 'beforeSelect', (data) => { |
104 | 103 | if (data.tabName === name) { |
105 | 104 | scrollPosition = element.codemirror.getScrollInfo().top; |
106 | 105 | } |
107 | 106 | }); |
108 | 107 | } |
109 | 108 | |
110 | | - var scrollOffsetStorage = element; |
| 109 | + let scrollOffsetStorage = element; |
111 | 110 | do { |
112 | 111 | scrollOffsetStorage = scrollOffsetStorage.nextElementSibling; |
113 | 112 | } while (scrollOffsetStorage && !scrollOffsetStorage.classList.contains('codeMirrorScrollOffset')); |
114 | 113 | if (scrollOffsetStorage) { |
115 | 114 | element.codemirror.scrollTo(null, scrollOffsetStorage.value); |
116 | | - element.codemirror.on('scroll', function (cm) { |
| 115 | + element.codemirror.on('scroll', (cm) => { |
117 | 116 | scrollOffsetStorage.value = cm.getScrollInfo().top; |
118 | 117 | }); |
119 | 118 | } |
|
0 commit comments