21
21
var button = $ ( buttonSelector ) ;
22
22
button . click ( function ( ) {
23
23
button . attr ( "disabled" , true ) ;
24
- $ ( document . body ) . css ( "cursor" , 'wait' ) ;
24
+ button . find ( 'div.spinner' ) . css ( 'display' , 'inline-block' ) ;
25
+ $ ( '#logs' ) . find ( tabSelector ) . css ( "cursor" , 'wait' ) ;
26
+ $ ( tabSelector + "-tab" ) . find ( 'div.spinner' ) . css ( 'display' , 'inline-block' ) ;
25
27
$ ( tabSelector + "-tab" ) . click ( ) ;
26
28
27
29
var reqUrl = url ;
63
65
}
64
66
} ) . done ( function ( data , status ) {
65
67
button . prop ( "disabled" , false ) ;
66
- $ ( document . body ) . css ( "cursor" , '' ) ;
68
+ button . find ( 'div.spinner' ) . css ( 'display' , 'none' ) ;
69
+ $ ( '#logs' ) . find ( tabSelector ) . css ( "cursor" , '' ) ;
70
+ $ ( tabSelector + "-tab" ) . find ( 'div.spinner' ) . css ( 'display' , 'none' ) ;
67
71
68
72
// show response
69
73
logElement . html ( data ) ;
70
74
} ) . fail ( function ( jqXHR , status ) {
71
75
button . prop ( "disabled" , false ) ;
72
- $ ( document . body ) . css ( "cursor" , '' ) ;
76
+ button . find ( 'div.spinner' ) . css ( 'display' , 'none' ) ;
77
+ $ ( '#logs' ) . find ( tabSelector ) . css ( "cursor" , '' ) ;
78
+ $ ( tabSelector + "-tab" ) . find ( 'div.spinner' ) . css ( 'display' , 'none' ) ;
73
79
74
80
// show errors
75
81
var msg = jqXHR . statusText ;
97
103
"{{ url_for('generate_configs') }}" ,
98
104
[ 'use_cached_project_metadata' , 'force_readonly_datasets' ] ,
99
105
'#nav-confgen' ,
100
- "Service configurations generated: " ,
101
- "Error while refreshing config cache: "
106
+ "Generating configuration... " ,
107
+ "Error while generating configuration "
102
108
) ;
103
109
{ % endif % }
104
110
119
125
"{{ url_for('update_solr_index') }}" ,
120
126
[ ] ,
121
127
'#nav-solr' ,
122
- "Solr search index update: " ,
123
- "Error while updating Solr search index: "
128
+ "Updating Solr search index" ,
129
+ "Error while updating Solr search index"
124
130
) ;
125
131
{ % endif % }
126
132
} ) ;
141
147
color : white;
142
148
background : black;
143
149
}
150
+
151
+ .spinner {
152
+ box-sizing : border-box;
153
+ display : inline-block;
154
+ width : 1em ;
155
+ height : 1em
156
+ }
157
+ .spinner : after {
158
+ box-sizing : border-box;
159
+ content : " " ;
160
+ display : block;
161
+ width : 1em ;
162
+ height : 1em ;
163
+ border-radius : 50% ;
164
+ border : 2px solid currentColor;
165
+ border-color : currentColor transparent currentColor transparent;
166
+ animation : spinner 1.2s linear infinite;
167
+ }
168
+ @keyframes spinner {
169
+ 0% {
170
+ transform : rotate (0deg );
171
+ }
172
+ 100% {
173
+ transform : rotate (360deg );
174
+ }
175
+ }
144
176
</ style >
145
177
{% endblock %}
146
178
@@ -153,7 +185,7 @@ <h1>{{ admin_gui_title }}</h1>
153
185
{% if have_config_generator %}
154
186
< br > < br >
155
187
< button id ="generate_configs " class ="btn btn-success ">
156
- {{ utils.render_icon('arrow-clockwise') }} {{ i18n('interface.main.generate_configs') }}
188
+ < div class =" spinner " style =" display: none " > </ div > {{ i18n('interface.main.generate_configs') }}
157
189
</ button >
158
190
< br >
159
191
< label style ="padding-top: 0.5em "> < input id ="use_cached_project_metadata " type ="checkbox " /> {{ i18n('interface.main.use_cached_project_metadata') }}</ label >
@@ -166,7 +198,7 @@ <h1>{{ admin_gui_title }}</h1>
166
198
{% if have_qgis_server %}
167
199
< br > < br >
168
200
< button id ="qgis_server_logs " class ="btn btn-success ">
169
- {{ utils.render_icon('arrow-clockwise') }} {{ i18n('interface.main.read_qgis_server_logs') }}
201
+ < div class =" spinner " style =" display: none " > </ div > {{ i18n('interface.main.read_qgis_server_logs') }}
170
202
</ button >
171
203
< br >
172
204
< label style ="padding-top: 0.5em "> < input id ="qgis_server_log_lines " type ="number " min ="0 " max ="10000 " value ="100 " /> {{ i18n('interface.main.qgis_server_log_lines') }}</ label >
@@ -175,21 +207,27 @@ <h1>{{ admin_gui_title }}</h1>
175
207
{% if solr_index_update_enabled %}
176
208
< br > < br >
177
209
< button id ="update_solr_index " class ="btn btn-success ">
178
- {{ utils.render_icon('arrow-clockwise') }} Update Solr search index
210
+ < div class =" spinner " style =" display: none " > </ div > Update Solr search index
179
211
</ button >
180
212
{% endif %}
181
213
182
214
< div id ="logs " class ="row mt-4 ">
183
215
< nav >
184
216
< div class ="nav nav-tabs " id ="nav-tab " role ="tablist ">
185
217
{% if have_config_generator %}
186
- < button class ="nav-link active " id ="nav-confgen-tab " data-bs-toggle ="tab " data-bs-target ="#nav-confgen " type ="button " role ="tab " aria-controls ="nav-confgen " aria-selected ="true "> ConfigGenerator logs</ button >
218
+ < button class ="nav-link active " id ="nav-confgen-tab " data-bs-toggle ="tab " data-bs-target ="#nav-confgen " type ="button " role ="tab " aria-controls ="nav-confgen " aria-selected ="true ">
219
+ < div class ="spinner " style ="display: none "> </ div > ConfigGenerator logs
220
+ </ button >
187
221
{% endif %}
188
222
{% if have_qgis_server %}
189
- < button class ="nav-link " id ="nav-qgisserver-tab " data-bs-toggle ="tab " data-bs-target ="#nav-qgisserver " type ="button " role ="tab " aria-controls ="nav-qgisserver " aria-selected ="false "> QGIS Server logs</ button >
223
+ < button class ="nav-link " id ="nav-qgisserver-tab " data-bs-toggle ="tab " data-bs-target ="#nav-qgisserver " type ="button " role ="tab " aria-controls ="nav-qgisserver " aria-selected ="false ">
224
+ < div class ="spinner " style ="display: none "> </ div > QGIS Server logs
225
+ </ button >
190
226
{% endif %}
191
227
{% if solr_index_update_enabled %}
192
- < button class ="nav-link " id ="nav-solr-tab " data-bs-toggle ="tab " data-bs-target ="#nav-solr " type ="button " role ="tab " aria-controls ="nav-solr " aria-selected ="false "> Solr index logs</ button >
228
+ < button class ="nav-link " id ="nav-solr-tab " data-bs-toggle ="tab " data-bs-target ="#nav-solr " type ="button " role ="tab " aria-controls ="nav-solr " aria-selected ="false ">
229
+ < div class ="spinner " style ="display: none "> </ div > Solr index logs
230
+ </ button >
193
231
{% endif %}
194
232
</ div >
195
233
</ nav >
0 commit comments