-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Description
jQuery is deprecated for over 10 versions of Nextcloud, its time to remove jQuery and especially jQuery UI.
We use Vue for the UI nowadays.
To do
As of Nextcloud 33
- core
- updater ( refactor(core): migrate web updater to Vue #57556 )
- public auth (uses
security_passwordfrom settings) - loginflow ( refactor(core): migrate login flow ui from jQuery to Vue #57526 )
- apps/settings
-
OC.Settings.UserSettings(refactor: consolidateOC.Settings#57355) - mail server admin settings ( refactor(settings): migrate mail settings to Vue #57544 )
-
security_password
-
- apps/encryption ( refactor(encryption): migrate to Vue 3 and Typescript and script setup #57515 )
- apps/theming ( refactor(theming): move from
js/tosrc/#57502 ) - apps/files_external (refactor(files_external): migrate to script-setup and Vue 3 #57237)
- user_ldap (renew password) (refactor(user_ldap): migrate jQuery UI of password renewal to Vue #57499)
Original request:
Details
From #11718 (comment)
@nextcloud/javascript if you want to standardize more and have cleanup legacy code. Baby steps is probably best.
$.widget
-
./core/js/jquery.ocdialog.js
2: $.widget('oc.ocdialog', { -
./apps/files/js/jquery.fileupload.js
87: $.widget('blueimp.fileupload', { -
./core/vendor/core.js
13:[Omitted long line with 24 matches] -
./apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js
25:$.widget("ech.multiselect", {
$.datepicker
$.ui.
-
./apps/files/js/jquery.fileupload.js
21: 'jquery.ui.widget'
27: require('./vendor/jquery.ui.widget') -
./core/js/jquery/ui-fixes.js
5:jQuery.ui.autocomplete.prototype._resizeMenu = function () { -
./apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js
562: if($.ui.position && !$ .isEmptyObject(o.position) ){
$.autocomplete
- ./core/js/sharedialogview.js
$.progressbar
- ./apps/files/js/file-upload.js
1084: $('#uploadprogressbar').progressbar({value: 0});
1150: $('#uploadprogressbar').progressbar('value', progress);
$.datepicker
- ./core/js/sharedialoglinkshareview.js
- ./core/js/sharedialogshareelistview.js
$.tooltip
./apps/updatenotification/js/updatenotification.js
1:[Omitted long line with 1 matches]
./apps/files_sharing/js/files_drop.js
68: $('[data-toggle="tooltip"]').tooltip();
76: $('[data-toggle="tooltip"]').tooltip();
./apps/files_sharing/js/sharedfilelist.js
124: .tooltip({placement: 'top'})
./apps/files/js/file-upload.js
992: $('#upload').tooltip('hide');
1091: $('#uploadprogressbar').tooltip({placement: 'bottom'});
./apps/files/js/app.js
130: $('#quota.has-tooltip').tooltip({
./apps/files/js/mainfileinfodetailview.js
73: $el.tooltip('hide')
75: .tooltip('fixTitle')
76: .tooltip({placement: 'bottom', trigger: 'manual'})
77: .tooltip('show');
79: $el.tooltip('hide');
81: .tooltip('fixTitle');
191: this.$el.find('[title]').tooltip({placement: 'bottom'});
./apps/files/js/newfilemenu.js
135: $input.tooltip({placement: 'right', trigger: 'manual', 'container': '.newFileMenu'});
136: $input.tooltip('fixTitle');
137: $input.tooltip('show');
146: $input.tooltip('hide');
./apps/files/js/files.js
317: $('#upload').tooltip({placement:'right'});
./apps/files/js/fileactions.js
433: $actionEl.tooltip({placement:'top'});
./apps/comments/js/commentstabview.js
115: this.$el.find('.has-tooltip').tooltip();
341: $el.find('.has-tooltip').tooltip();
481: $formRow.find('.has-tooltip').tooltip();
508: $field.tooltip('hide');
511: $field.tooltip({trigger: 'manual'});
512: $field.tooltip('show');
./apps/files/js/filelist.js
1369: nameSpan.tooltip({placement: 'top'});
1422: .tooltip({placement: 'top'})
2335: input.tooltip('hide');
2356: input.tooltip('hide');
2416: input.tooltip({placement: 'right', trigger: 'manual'});
2417: input.tooltip('fixTitle');
2418: input.tooltip('show');
2427: input.tooltip('hide');
2431: input.tooltip({placement: 'right', trigger: 'manual'});
2432: input.tooltip('fixTitle');
2433: input.tooltip('show');
3299: $newButton.tooltip({'placement': 'bottom'});
3310: this._newButton.tooltip('hide');
./apps/comments/js/filesplugin.js
105: context.$file.find('.action-comment').tooltip('hide');
./apps/updatenotification/js/updatenotification.js.map
1:[Omitted long line with 1 matches]
./core/js/contactsmenu.js
168: this.$('.top-action').tooltip({placement: 'left'});
170: this.$('.second-action').tooltip({placement: 'left'});
./core/js/backgroundjobs.js
26: $('.section .icon-info').tooltip({
./core/js/js.js
2413: this.tooltip(argument);
./apps/files_versions/js/versionstabview.js
145: $el.find('.has-tooltip').tooltip();
194: this.$el.find('.has-tooltip').tooltip();
./apps/files_external/js/settings.js
1265: $statusSpan.tooltip();
1267: $statusSpan.tooltip('destroy');
./apps/federatedfilesharing/js/settings-personal.js
24: $('#personal-settings-container .verify img').tooltip({placement: 'bottom', trigger: 'hover'});
26:[Omitted long line with 1 matches]
32: $input.tooltip('hide')
34: .tooltip('fixTitle')
35: .tooltip({placement: 'bottom', trigger: 'manual'})
36: .tooltip('show');
38: $input.tooltip('hide')
40: .tooltip('fixTitle');
54: $input.tooltip('hide')
56: .tooltip('fixTitle')
57: .tooltip({placement: 'bottom', trigger: 'manual'})
58: .tooltip('show');
60: $input.tooltip('hide')
62: .tooltip('fixTitle');
67: $('#fileSharingSettings .hasTooltip').tooltip({placement: 'right'});
./apps/theming/js/settings-admin.js
107: $('#theming [data-toggle="tooltip"]').tooltip();
165: $('#theming-name').tooltip({placement: 'top', trigger: 'manual'});
166: $('#theming-name').tooltip('fixTitle');
167: $('#theming-name').tooltip('show');
175: $('#theming-name').tooltip('hide');
./apps/user_ldap/js/wizard/view.js
357: $('#ldapSettings :input').tooltip({placement: "right", container: "body", trigger: "hover"});
./settings/js/certificates.js
16: $('#sslCertificate tr > td').tooltip({placement: 'bottom', container: 'body'});
./apps/updatenotification/src/components/root.vue
359: this._$el.find('.icon-info').tooltip({placement: 'right'});
./settings/js/authtoken_view.js
62: $html.find('.has-tooltip').tooltip({container: 'body'});
234:[Omitted long line with 1 matches]
240: $input.tooltip('hide')
242: .tooltip('fixTitle')
243: .tooltip({placement: 'bottom', trigger: 'manual'})
244: .tooltip('show');
246: $input.tooltip('hide')
248: .tooltip('fixTitle');
262: $input.tooltip('hide')
264: .tooltip('fixTitle')
265: .tooltip({placement: 'bottom', trigger: 'manual'})
266: .tooltip('show');
268: $input.tooltip('hide')
270: .tooltip('fixTitle');
381: $row.find('.icon-delete').tooltip('hide');
./settings/js/admin.js
18: $('#backgroundjobs span.crondate').tooltip({placement: 'top'});
./core/js/systemtags/systemtagsinputfield.js
121: $renameForm.find('[title]').tooltip({
162: $(ev.target).tooltip('hide');
359: this.$el.find('[title]').tooltip({placement: 'bottom'});
./core/vendor/strengthify/jquery.strengthify.js
157: ).tooltip({
160: }).tooltip(
162: ).tooltip(
167: $wrapper.tooltip(
$.position
./core/js/jquery.ocdialog.js
2: $.widget('oc.ocdialog', {
./apps/files/js/jquery.fileupload.js
87: $.widget('blueimp.fileupload', {
./core/vendor/core.js
13:[Omitted long line with 24 matches]
./apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js
25:$.widget("ech.multiselect", {
[christoph@christoph-workstation nextcloud]$ rg '.position(' . --ignore-vcs --max-columns 100
./core/js/multiselect.js
196: var pos=button.position();
269: list.css('top', list.position().top-li.outerHeight());
306: var pos=button.position();
./core/search/js/searchprovider.js
190: $searchResults.position() &&
191: $searchResults.position().top + summaryAndStatusHeight >
./core/vendor/core.js
4:[Omitted long line with 2 matches]
13:[Omitted long line with 10 matches]
./apps/user_ldap/vendor/ui-multiselect/src/jquery.multiselect.js
567: .position( o.position )
./apps/comments/js/vendor/Caret.js/dist/jquery.caret.min.js
2:[Omitted long line with 1 matches]
./core/vendor/jquery/dist/jquery.min.js
4:[Omitted long line with 2 matches]
./core/vendor/jquery/dist/jquery.js
8942: curPosition = curElem.position();
9096: jQuery( elem ).position()[ prop ] + "px" 👍