@@ -43,14 +43,13 @@ define([
43
43
if ( this . selectedInit && this . selectedInit . length ) {
44
44
this . selectedInit . forEach ( function ( region ) {
45
45
this . selectedInitHash [ region . cid ] = region ;
46
- this . selectedInitTkns . push ( { value : region . title_local , label : region . title_local } ) ;
46
+ this . selectedInitTkns . push ( { cid : region . cid , value : region . title_local } ) ;
47
47
} , this ) ;
48
48
}
49
49
50
50
this . regionsTree = ko . observableArray ( ) ;
51
51
this . regionsTypehead = [ ] ;
52
52
this . regionsHashByCid = { } ;
53
- this . regionsHashByTitle = { } ;
54
53
55
54
this . sortBy = ko . observable ( Utils . getLocalStorage ( 'regionSelect.sortBy' ) || 'alphabet' ) ; // alphabet, sub, photo, pic, comment
56
55
this . sortOrder = ko . observable ( Utils . getLocalStorage ( 'regionSelect.sortOrder' ) || 1 ) ; // 1, -1
@@ -193,7 +192,7 @@ define([
193
192
const result = [ ] ;
194
193
195
194
tokens . forEach ( function ( item ) {
196
- const region = this . regionsHashByTitle [ item . value ] ;
195
+ const region = this . regionsHashByCid [ item . cid ] ;
197
196
198
197
if ( region && region . exists ) {
199
198
result . push ( fields ? _ . pick ( region , fields ) : region ) ;
@@ -209,7 +208,7 @@ define([
209
208
const results = [ ] ;
210
209
211
210
tokens . forEach ( function ( item ) {
212
- const region = this . regionsHashByTitle [ item . value ] ;
211
+ const region = this . regionsHashByCid [ item . cid ] ;
213
212
214
213
if ( region && region . exists ) {
215
214
const result = [ ] ;
@@ -239,7 +238,7 @@ define([
239
238
const result = [ ] ;
240
239
241
240
tokens . forEach ( function ( item ) {
242
- const region = this . regionsHashByTitle [ item . value ] ;
241
+ const region = this . regionsHashByCid [ item . cid ] ;
243
242
244
243
if ( region && region . exists ) {
245
244
result . push ( region . cid ) ;
@@ -266,7 +265,7 @@ define([
266
265
} ,
267
266
createTokenfield : function ( ) {
268
267
const engine = new Bloodhound ( {
269
- local : this . regionsTypehead , /*[{cid: 2, title : 'США', tokens: ['2', 'USA', 'США']}]*/
268
+ local : this . regionsTypehead , /*[{cid: 2, value : 'США', tokens: ['2', 'USA', 'США']}]*/
270
269
datumTokenizer : function ( d ) {
271
270
// Join all tokens using space and tokenise using whitespace.
272
271
return Bloodhound . tokenizers . whitespace ( d . tokens . join ( ' ' ) ) ;
@@ -290,13 +289,13 @@ define([
290
289
highlight : true ,
291
290
} , {
292
291
name : 'regions' ,
293
- displayKey : 'title ' ,
292
+ displayKey : 'value ' ,
294
293
limit : 10 ,
295
294
templates : {
296
295
'suggestion' : function ( context ) {
297
- const title = ' <p>' + context . title + ' </p>' ;
296
+ const title = ` <p>${ context . value } </p>` ;
298
297
299
- return title + ( context . parentTitle ? " <p style=' color: #aaa; font-size 0.9em'>" + context . parentTitle + ' </p>' : '' ) ;
298
+ return title + ( context . parentTitle ? ` <p style=" color: #aaa; font-size 0.9em"> ${ context . parentTitle } </p>` : '' ) ;
300
299
} ,
301
300
} ,
302
301
source : engine . ttAdapter ( ) ,
@@ -309,7 +308,7 @@ define([
309
308
const existingTokens = $ ( this ) . tokenfield ( 'getTokens' ) ;
310
309
311
310
$ . each ( existingTokens , function ( index , token ) {
312
- if ( token . value === e . attrs . value ) {
311
+ if ( token . cid === e . attrs . cid ) {
313
312
e . preventDefault ( ) ;
314
313
}
315
314
} ) ;
@@ -319,8 +318,7 @@ define([
319
318
// Событие создания токена. Вызовется как при создании в поле,
320
319
// так и при удалении из дерева (потому что при этом пересоздаются неудаляемые токены).
321
320
onCreateToken : function ( e ) {
322
- const title = e . attrs . value ;
323
- const region = this . regionsHashByTitle [ title ] ;
321
+ const region = this . regionsHashByCid [ e . attrs . cid ] ;
324
322
325
323
if ( region && region . exists ) {
326
324
//Если регион уже выбран, значит, мы создаем токен вручную после клика по узлу дерева
@@ -338,8 +336,7 @@ define([
338
336
} ,
339
337
//Событие удаления токена непосредственно из поля
340
338
onRemoveToken : function ( e ) {
341
- const title = e . attrs . value ;
342
- const region = this . regionsHashByTitle [ title ] ;
339
+ const region = this . regionsHashByCid [ e . attrs . cid ] ;
343
340
344
341
if ( region && region . exists ) {
345
342
region . selected ( false ) ;
@@ -349,12 +346,12 @@ define([
349
346
//Ручное удаление токена, работает полной заменой токенов, кроме удаляемого.
350
347
//Поэтому для удаляемого токена событие onRemoveToken не сработает, но сработает onCreateToken для каждого неудаляемого
351
348
removeToken : function ( region ) {
352
- const title = region . title_local ;
349
+ const cid = region . cid ;
353
350
const tkn = this . $dom . find ( '.regionstkn' ) ;
354
351
const tokensExists = tkn . tokenfield ( 'getTokens' ) ;
355
352
356
353
_ . remove ( tokensExists , function ( item ) {
357
- return item . value === title ;
354
+ return item . cid === cid ;
358
355
} ) ;
359
356
tkn . tokenfield ( 'setTokens' , tokensExists ) ;
360
357
} ,
@@ -386,13 +383,12 @@ define([
386
383
return ;
387
384
}
388
385
389
- const title = region . title_local ;
390
386
const add = ! region . selected ( ) ;
391
387
const tkn = this . $dom . find ( '.regionstkn' ) ;
392
388
393
389
if ( add ) {
394
390
if ( this . selectRegion ( region ) ) {
395
- tkn . tokenfield ( 'createToken' , { value : title , label : title } ) ;
391
+ tkn . tokenfield ( 'createToken' , { cid : region . cid , value : region . title_local } ) ;
396
392
}
397
393
} else {
398
394
region . selected ( false ) ;
@@ -495,11 +491,10 @@ define([
495
491
cid = region . cid ;
496
492
this . regionsTypehead . push ( {
497
493
cid : cid ,
498
- title : region . title_local ,
494
+ value : region . title_local ,
499
495
parentTitle : region . parent && region . parent . title_local ,
500
496
tokens : [ String ( cid ) , region . title_local , region . title_en ] ,
501
497
} ) ;
502
- this . regionsHashByTitle [ region . title_local ] = region ;
503
498
504
499
const proceed = ! filterByCids || parentsCidsFilterHash [ cid ] === true ||
505
500
region . level > 0 && parentsCidsFilterHash [ region . parents [ region . level - 1 ] ] === true ;
0 commit comments