Skip to content
This repository was archived by the owner on Sep 10, 2023. It is now read-only.

Commit c7c5538

Browse files
committed
Implemented optional JSON parameter readonly. If it exists and is true, the token will not have the 'x' to delete and will have an extra token-input-token-readonly CSS class (for optional styling)
1 parent ba668e3 commit c7c5538

File tree

1 file changed

+21
-16
lines changed

1 file changed

+21
-16
lines changed

src/jquery.tokeninput.js

100644100755
Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ var DEFAULT_SETTINGS = {
5858
var DEFAULT_CLASSES = {
5959
tokenList: "token-input-list",
6060
token: "token-input-token",
61+
tokenReadOnly: "token-input-token-readonly",
6162
tokenDelete: "token-input-delete-token",
6263
selectedToken: "token-input-selected-token",
6364
highlightedToken: "token-input-highlighted-token",
@@ -485,26 +486,30 @@ $.TokenList = function (input, url_or_data, settings) {
485486

486487
// Inner function to a token to the list
487488
function insert_token(item) {
488-
var this_token = settings.tokenFormatter(item);
489-
this_token = $(this_token)
490-
.addClass(settings.classes.token)
491-
.insertBefore(input_token);
489+
var $this_token = $(settings.tokenFormatter(item));
490+
var readonly = item.readonly === true ? true : false;
491+
492+
if(readonly) $this_token.addClass(settings.classes.tokenReadOnly);
493+
494+
$this_token.addClass(settings.classes.token).insertBefore(input_token);
492495

493496
// The 'delete token' button
494-
$("<span>" + settings.deleteText + "</span>")
495-
.addClass(settings.classes.tokenDelete)
496-
.appendTo(this_token)
497-
.click(function () {
498-
if (!settings.disabled) {
499-
delete_token($(this).parent());
500-
hidden_input.change();
501-
return false;
502-
}
503-
});
497+
if(!readonly) {
498+
$("<span>" + settings.deleteText + "</span>")
499+
.addClass(settings.classes.tokenDelete)
500+
.appendTo($this_token)
501+
.click(function () {
502+
if (!settings.disabled) {
503+
delete_token($(this).parent());
504+
hidden_input.change();
505+
return false;
506+
}
507+
});
508+
}
504509

505510
// Store data on the token
506511
var token_data = item;
507-
$.data(this_token.get(0), "tokeninput", item);
512+
$.data($this_token.get(0), "tokeninput", item);
508513

509514
// Save this token for duplicate checking
510515
saved_tokens = saved_tokens.slice(0,selected_token_index).concat([token_data]).concat(saved_tokens.slice(selected_token_index));
@@ -521,7 +526,7 @@ $.TokenList = function (input, url_or_data, settings) {
521526
hide_dropdown();
522527
}
523528

524-
return this_token;
529+
return $this_token;
525530
}
526531

527532
// Add a token to the token list based on user input

0 commit comments

Comments
 (0)