1
- function loadProposal ( api_key ) {
2
- const refresh_button = document . querySelector ( '#refresh-button > img' ) ;
3
- refresh_button . src = `${ url_base } /static/img/loading_white.svg` ;
4
- refresh_button . classList . add ( 'spinning' ) ;
5
-
6
- document . querySelector ( '.table-container' ) . classList . add ( 'hidden' ) ;
7
- document . querySelector ( '#import-button' ) . classList . add ( 'hidden' ) ;
8
- document . querySelector ( '#import-rename-button' ) . classList . add ( 'hidden' ) ;
1
+ const windows = {
2
+ start : document . querySelector ( '#start-window' ) ,
3
+ no_result : document . querySelector ( '#no-result-window' ) ,
4
+ list : document . querySelector ( '#list-window' ) ,
5
+ loading : document . querySelector ( '#loading-window' )
6
+ } ;
9
7
8
+ function loadProposal ( api_key ) {
9
+ windows . start . classList . add ( 'hidden' ) ;
10
+ windows . loading . classList . remove ( 'hidden' ) ;
11
+ const limit = parseInt ( document . querySelector ( '#limit-input' ) . value ) ;
10
12
const table = document . querySelector ( '.proposal-list' ) ;
11
13
table . innerHTML = '' ;
12
- fetch ( `${ url_base } /api/libraryimport?api_key=${ api_key } ` )
14
+ fetch ( `${ url_base } /api/libraryimport?api_key=${ api_key } &limit= ${ limit } ` )
13
15
. then ( response => response . json ( ) )
14
16
. then ( json => {
15
17
json . result . forEach ( result => {
@@ -53,15 +55,11 @@ function loadProposal(api_key) {
53
55
table . appendChild ( entry ) ;
54
56
} ) ;
55
57
56
- document . querySelector ( '#run-button' ) . innerText = 'Run' ;
57
- if ( json . result . length > 0 ) {
58
- document . querySelector ( '.table-container' ) . classList . remove ( 'hidden' ) ;
59
- document . querySelector ( '#import-button' ) . classList . remove ( 'hidden' ) ;
60
- document . querySelector ( '#import-rename-button' ) . classList . remove ( 'hidden' ) ;
61
- } ;
62
-
63
- refresh_button . src = `${ url_base } /static/img/refresh.svg` ;
64
- refresh_button . classList . remove ( 'spinning' ) ;
58
+ windows . loading . classList . add ( 'hidden' ) ;
59
+ if ( json . result . length > 0 )
60
+ windows . list . classList . remove ( 'hidden' ) ;
61
+ else
62
+ windows . no_result . classList . remove ( 'hidden' ) ;
65
63
} ) ;
66
64
} ;
67
65
@@ -79,13 +77,20 @@ function openEditCVMatch(filepath) {
79
77
document . querySelector ( '#search-input' ) . focus ( ) ;
80
78
} ;
81
79
82
- function editCVMatch ( filepath , comicvine_id , comicvine_info , title , year , group_number = null ) {
80
+ function editCVMatch (
81
+ filepath ,
82
+ comicvine_id ,
83
+ comicvine_info ,
84
+ title ,
85
+ year ,
86
+ group_number = null
87
+ ) {
83
88
let target_td ;
84
89
if ( group_number === null )
85
90
target_td = document . querySelectorAll ( `td[title="${ filepath } "]` ) ;
86
91
else
87
92
target_td = document . querySelectorAll ( `tr[data-group_number="${ group_number } "] > td[title]` ) ;
88
-
93
+
89
94
target_td . forEach ( td => {
90
95
td . parentNode . dataset . cv_id = comicvine_id ;
91
96
const link = td . nextSibling . firstChild ;
@@ -159,44 +164,38 @@ function searchCV() {
159
164
} ;
160
165
161
166
function importLibrary ( api_key , rename = false ) {
162
- const import_button = document . querySelector ( '#import-button' ) ;
163
- const import_rename_button = document . querySelector ( '#import-rename-button' ) ;
164
- const used_button = rename ? import_rename_button : import_button ;
165
-
166
167
const data = [ ...document . querySelectorAll ( '.proposal-list > tr:not([data-cv_id=""]) input[type="checkbox"]:checked' ) ]
167
168
. map ( e => { return {
168
169
'filepath' : e . parentNode . nextSibling . title ,
169
170
'id' : parseInt ( e . parentNode . parentNode . dataset . cv_id )
170
171
} } ) ;
171
-
172
- used_button . innerText = 'Importing' ;
172
+
173
+ windows . list . classList . add ( 'hidden' ) ;
174
+ windows . loading . classList . remove ( 'hidden' ) ;
173
175
fetch ( `${ url_base } /api/libraryimport?api_key=${ api_key } &rename_files=${ rename } ` , {
174
176
'method' : 'POST' ,
175
177
'headers' : { 'Content-Type' : 'application/json' } ,
176
178
'body' : JSON . stringify ( data )
177
179
} )
178
180
. then ( response => {
179
- import_rename_button . innerText = 'Import and Rename' ;
180
- import_rename_button . classList . add ( 'hidden' ) ;
181
- import_button . innerText = 'Import' ;
182
- import_button . classList . add ( 'hidden' ) ;
183
-
184
- document . querySelector ( '.table-container' ) . classList . add ( 'hidden' ) ;
181
+ windows . loading . classList . add ( 'hidden' ) ;
182
+ windows . start . classList . remove ( 'hidden' ) ;
185
183
} ) ;
186
184
} ;
187
185
188
186
// code run on load
189
187
190
188
usingApiKey ( )
191
189
. then ( api_key => {
192
- addEventListener ( '#run-button' , 'click' , e => {
193
- e . target . innerText = 'Running' ;
194
- loadProposal ( api_key ) ;
195
- } ) ;
196
- addEventListener ( '#refresh-button' , 'click' , e => loadProposal ( api_key ) ) ;
190
+ addEventListener ( '#run-import-button' , 'click' , e => loadProposal ( api_key ) ) ;
197
191
addEventListener ( '#import-button' , 'click' , e => importLibrary ( api_key , false ) ) ;
198
192
addEventListener ( '#import-rename-button' , 'click' , e => importLibrary ( api_key , true ) ) ;
199
193
} ) ;
200
194
201
195
setAttribute ( '.search-bar' , 'action' , 'javascript:searchCV();' ) ;
202
196
addEventListener ( '#selectall-input' , 'change' , e => toggleSelectAll ( ) ) ;
197
+ addEventListener ( '.cancel-button' , 'click' , e => {
198
+ windows . list . classList . add ( 'hidden' ) ;
199
+ windows . no_result . classList . add ( 'hidden' ) ;
200
+ windows . start . classList . remove ( 'hidden' ) ;
201
+ } ) ;
0 commit comments