PageSourceSearch

https://issues.jalview.org/includes/jira/autocomplete/initAutoCompleteFields.js

js jalview.org collected 2026-09-24 18:06:57 UTC 4,819 bytes, 102 lines download raw bytes

1(function () {
2    'use strict';
3
4    var jQuery = require('jquery');
5    var parseOptionsFromFieldset = require('jira/data/parse-options-from-fieldset');
6    var Events = require('jira/util/events');
7    var Reasons = require('jira/util/events/reasons');
8    var Types = require('jira/util/events/types');
9    var IssueAutoComplete = require('jira/autocomplete/issue-autocomplete');
10    var UserAutoComplete = require('jira/autocomplete/user-autocomplete');
11    var wrmContextPath = require('wrm/context-path');
12    var contextPath = wrmContextPath();
13
14    Events.bind(Types.NEW_CONTENT_ADDED, function (e, context, reason) {
15        if (reason !== Reasons.panelRefreshed) {
16            UserAutoComplete.init(context);
17            IssueAutoComplete.init(context);
18        }
19    });
20
21    Events.bind(Types.NEW_CONTENT_ADDED, function (e, context, reason) {
22        if (reason !== Reasons.panelRefreshed) {
23            jQuery("fieldset.user-searcher-params", context).each(function () {
24                var params = parseOptionsFromFieldset(jQuery(this));
25                var $container = jQuery("#" + params.fieldId + "_container", context);
26
27                if (params.userPickerEnabled === true) {
28                    var autocompleter = UserAutoComplete({
29                        fieldID: params.fieldId,
30                        delimChar: params.multiSelect === true ? "," : undefined,
31                        ajaxData: {
32                            fieldName: params.fieldName
33                        }
34                    });
35                }
36
37                var setupFields = function setupFields(related) {
38                    var field = jQuery("#" + params.fieldId, context);
39                    var userImage = jQuery("#" + params.fieldId + "Image", context);
40                    var groupImage = jQuery("#" + params.fieldId + "GroupImage", context);
41                    var fieldDesc = jQuery("#" + params.fieldId + "_desc", context);
42                    if (related === "select.list.none") {
43                        field.val("").attr("disabled", "true");
44                        userImage.hide();
45                        groupImage.hide();
46                        fieldDesc.hide();
47                    } else {
48                        field.removeAttr("disabled");
49                        if (related === "select.list.group") {
50                            userImage.hide();
51                            groupImage.show();
52                            if (params.userPickerEnabled === true) {
53                                autocompleter.disable();
54                                fieldDesc.hide();
55                            }
56                        } else {
57                            userImage.show();
58                            groupImage.hide();
59                            if (params.userPickerEnabled === true) {
60                                autocompleter.enable();
61                                fieldDesc.show();
62                            }
63                        }
64                    }
65                };
66
67                jQuery("#" + params.userSelect, context).change(function () {
68                    var related = jQuery(this).find("option:selected").attr("rel");
69                    setupFields(related);
70                }).find("option:selected").each(function () {
71                    setupFields(jQuery(this).attr("rel"));
72                });
73
74                $container.find("a.user-popup-trigger").click(function (e) {
75                    var url = contextPath + '/secure/popups/UserPickerBrowser.jspa?';
76                    url += 'formName=' + params.formName + '&';
77                    url += 'multiSelect=' + params.multiSelect + '&';
78                    url += 'decorator=popup&';
79                    url += 'element=' + params.fieldId;
80
81                    var vWinUsers = window.open(url, 'UserPicker', 'status=yes,resizable=yes,top=100,left=100,width=800,height=750,scrollbars=yes');
82                    vWinUsers.opener = self;
83                    vWinUsers.focus();
84                    e.preventDefault();
85                });
86
87                $container.find("a.group-popup-trigger").click(function (e) {
88                    var url = contextPath + '/secure/popups/GroupPickerBrowser.jspa?';
89                    url += 'formName=' + params.formName + '&';
90                    url += 'multiSelect=' + params.multiSelect + '&';
91                    url += 'decorator=popup&';
92                    url += 'element=' + params.fieldId;
93
94                    var vWinUsers = window.open(url, 'GroupPicker', 'status=yes,resizable=yes,top=100,left=100,width=800,height=750,scrollbars=yes');
95                    vWinUsers.opener = self;
96                    vWinUsers.focus();
97                    e.preventDefault();
98                });
99            });
100        }
101    });
102})();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.