@@ -3,9 +3,9 @@ import './styles/app.css';
33import 'select2' ;
44
55const $ = require ( 'jquery' ) ;
6- const $select2 = $ ( '# lang' ) ;
6+ const $select2 = $ ( document . getElementById ( ' lang' ) ) ;
77let selectedLanguages = [ ] ;
8- const $lineDetectionSelect = $ ( '# line-id' ) ;
8+ const $lineDetectionSelect = $ ( document . getElementById ( ' line-id' ) ) ;
99let lineModels = null ;
1010
1111const Cropper = require ( 'cropperjs' ) ;
@@ -86,7 +86,7 @@ $( () => {
8686 fetchLineModelsJSON ( ) ;
8787
8888 // Remove nojs class, for styling non-Javascript users.
89- $ ( 'html' ) . removeClass ( 'nojs' ) ;
89+ $ ( document . documentElement ) . removeClass ( 'nojs' ) ;
9090
9191 // Initiate Select2, which allows dynamic entry of languages.
9292 $select2 . select2 ( {
@@ -111,68 +111,69 @@ $( () => {
111111 const previousDataPlaceholder = $select2 . attr ( 'data-placeholder' ) ;
112112
113113 // Show engine-specific options.
114- $ ( '[name=engine]' ) . on ( 'change' , ( e ) => {
114+ $ ( document . querySelectorAll ( '[name=engine]' ) ) . on ( 'change' , ( e ) => {
115115 const engine = e . target . value ;
116116 updateSelect2Options ( engine ) ;
117- $ ( '.engine-options' ) . addClass ( 'hidden' ) ;
118- $ ( `# ${ engine } -options` ) . removeClass ( 'hidden' ) ;
117+ $ ( document . querySelectorAll ( '.engine-options' ) ) . addClass ( 'hidden' ) ;
118+ $ ( document . getElementById ( ` ${ engine } -options` ) ) . removeClass ( 'hidden' ) ;
119119 if ( engine === 'tesseract' || engine === 'google' ) {
120120 $select2 . prop ( 'required' , false ) ;
121121 $select2 . attr ( 'data-placeholder' , previousDataPlaceholder ) ;
122122 $select2 . data ( 'select2' ) . selection . placeholder . text = previousDataPlaceholder ;
123- $ ( '# transkribus-lang-label' ) . addClass ( 'hidden' ) ;
124- $ ( '# optional-lang-label' ) . removeClass ( 'hidden' ) ;
123+ $ ( document . getElementById ( ' transkribus-lang-label' ) ) . addClass ( 'hidden' ) ;
124+ $ ( document . getElementById ( ' optional-lang-label' ) ) . removeClass ( 'hidden' ) ;
125125 } else {
126126 updateLineModelOptions ( ) ;
127- $ ( '# transkribus-help' ) . removeClass ( 'hidden' ) ;
127+ $ ( document . getElementById ( ' transkribus-help' ) ) . removeClass ( 'hidden' ) ;
128128 $select2 . prop ( 'required' , true ) ;
129129 $select2 . attr ( 'data-placeholder' , '' ) ;
130130 $select2 . data ( 'select2' ) . selection . placeholder . text = '' ;
131- $ ( '# optional-lang-label' ) . addClass ( 'hidden' ) ;
132- $ ( '# transkribus-lang-label' ) . removeClass ( 'hidden' ) ;
131+ $ ( document . getElementById ( ' optional-lang-label' ) ) . addClass ( 'hidden' ) ;
132+ $ ( document . getElementById ( ' transkribus-lang-label' ) ) . removeClass ( 'hidden' ) ;
133133 }
134134 } ) ;
135135
136136 // modify selected engine after loading the page with preselected engine
137- const $engineRadioFields = $ ( '[name=engine]:checked' ) ;
137+ const $engineRadioFields = $ ( document . querySelector ( '[name=engine]:checked' ) ) ;
138138 if ( $engineRadioFields . val ( ) === 'transkribus' ) {
139139 $select2 . attr ( 'data-placeholder' , '' ) ;
140140 } else {
141141 $select2 . attr ( 'data-placeholder' , previousDataPlaceholder ) ;
142142 }
143143
144144 // For the result page. Makes the 'Copy' button copy the transcription to the clipboard.
145- const $copyButton = $ ( '.copy-button' ) ;
145+ const $copyButton = $ ( document . querySelector ( '.copy-button' ) ) ;
146146 if ( $copyButton . length ) {
147147 $copyButton . on ( 'click' , ( e ) => {
148148 e . preventDefault ( ) ;
149- const $textarea = $ ( '# text' ) ;
149+ const $textarea = $ ( document . getElementById ( ' text' ) ) ;
150150 $textarea . trigger ( 'select' ) ;
151151 document . execCommand ( 'copy' ) ;
152152 $copyButton . text ( $copyButton . data ( 'copied-text' ) ) ;
153153 } ) ;
154154 }
155155
156- const $submitBtns = $ ( '.submit-full, .submit-crop' ) ;
156+ const $submitBtns = $ ( document . querySelectorAll ( '.submit-full, .submit-crop' ) ) ;
157+ const $loader = $ ( document . querySelector ( '.loader' ) ) ;
157158 $submitBtns . closest ( 'form' ) . on ( 'submit' , ( ) => {
158159 $submitBtns . attr ( 'disabled' , true ) ;
159- $ ( '. loader' ) . removeClass ( 'hidden' ) ;
160+ $loader . removeClass ( 'hidden' ) ;
160161 } ) ;
161162 // Re-enable submit buttons on pagehide, so that they are re-enabled if returned to via browser history
162163 $ ( window ) . on ( 'pagehide' , ( ) => {
163164 $submitBtns . attr ( 'disabled' , false ) ;
164- $ ( '. loader' ) . addClass ( 'hidden' ) ;
165+ $loader . addClass ( 'hidden' ) ;
165166 } ) ;
166167
167- const $ocrOutputDiv = $ ( '.ocr-output' ) ;
168+ const $ocrOutputDiv = $ ( document . querySelector ( '.ocr-output' ) ) ;
168169 if ( $ocrOutputDiv . length ) {
169170 // Cropper.
170171 const img = document . getElementById ( 'source-image' ) ,
171172 x = document . querySelector ( '[name="crop[x]"]' ) ,
172173 y = document . querySelector ( '[name="crop[y]"]' ) ,
173174 width = document . querySelector ( '[name="crop[width]"]' ) ,
174175 height = document . querySelector ( '[name="crop[height]"]' ) ,
175- $modeButtons = $ ( '.drag-mode' ) ;
176+ $modeButtons = $ ( document . querySelectorAll ( '.drag-mode' ) ) ;
176177 const cropper = new Cropper ( img , {
177178 viewMode : 2 ,
178179 dragMode : 'move' ,
@@ -183,7 +184,7 @@ $( () => {
183184 responsive : true ,
184185 ready ( ) {
185186 // Make textarea match height of image.
186- $ ( '# text' ) . css ( {
187+ $ ( document . getElementById ( ' text' ) ) . css ( {
187188 height : cropper . getContainerData ( ) . height
188189 } ) ;
189190 // React to changes in the crop-mode buttons.
@@ -206,18 +207,18 @@ $( () => {
206207 width . value = Math . round ( event . detail . width ) ;
207208 height . value = Math . round ( event . detail . height ) ;
208209 // Enable the cropping buttons. No need to disable them ever because there's no way to remove the crop box.
209- $ ( '.btn.submit-crop' ) . attr ( 'disabled' , false ) . removeClass ( 'disabled' ) ;
210+ $ ( document . querySelectorAll ( '.btn.submit-crop' ) ) . attr ( 'disabled' , false ) . removeClass ( 'disabled' ) ;
210211 $modeButtons . attr ( 'disabled' , false ) ;
211212 }
212213 } ) ;
213214
214215 // When setting a new image URL, remove the preview and the crop dimensions.
215- $ ( '[name=image]' ) . on ( 'change' , ( ) => {
216+ $ ( document . querySelector ( '[name=image]' ) ) . on ( 'change' , ( ) => {
216217 $ocrOutputDiv . remove ( ) ;
217218 } ) ;
218219
219220 // When submitting the main 'transcribe' button, do not send crop dimensions.
220- $ ( '.submit-full' ) . on ( 'click' , ( ) => {
221+ $ ( document . querySelector ( '.submit-full' ) ) . on ( 'click' , ( ) => {
221222 x . value = null ;
222223 y . value = null ;
223224 width . value = null ;
0 commit comments