PageSourceSearch

https://nextcloud.naturfreunde-koeln.de/apps/files_rightclick/js/files.js?v=a3ac0fb4-1

js naturfreunde-koeln.de collected 2026-10-05 03:43:02 UTC 4,847 bytes, 122 lines download raw bytes

1(function(window, $, RightClick, undefined) {
2    'use strict';
3
4    if (!RightClick) {
5        console.error('The RightClick app is recommanded to have context menus');
6        return false;
7    }
8
9    var appName = RightClick.appName;
10
11    new RightClick.Menu($('tbody[class=files-fileList]'), function (event, context, delimiter) {
12        var options = new RightClick.Options();
13        var currentFile = $(event.target).closest('tr');
14        var selectedActions = '.selectedActions .menu-center li';
15        currentFile.find('.action-menu').click();
16        $('.filesSelectMenu').css('visibility', 'hidden');
17        $('.actions-selected').click();
18
19        var menu = currentFile.find('.fileActionsMenu');
20        var menuStyle = $('style.rightClickStyle');
21        var generateNewOption = function (action, icon, text, onClick, prepend, subOptions) {
22            return new RightClick.Option(action, text, 'icon-' + icon, typeof onClick === 'function' ? function (event, context) {
23                event.stopPropagation();
24                event.preventDefault();
25
26                menu.remove();
27                currentFile.removeClass('mouseOver');
28                currentFile.removeClass('highlighted');
29                currentFile.find('.action-menu').removeClass('open');
30
31                onClick(event, context);
32            } : onClick, subOptions);
33        };
34        var addNewOption = function (action, icon, text, onClick, prepend, subOptions) {
35            if (prepend === undefined)
36                prepend = true;
37
38            var option = generateNewOption(action, icon, text, onClick, prepend, subOptions);
39
40            if (prepend)
41                options.prepend(option);
42            else
43                options.append(option);
44        };
45        var addNewOpenSubOption = function (action, icon, text, onClick, prepend, subOptions) {
46            if (prepend === undefined)
47                prepend = true;
48
49            var option = generateNewOption(action, icon, text, onClick, prepend, subOptions);
50
51            if (prepend)
52                openSubOptions.prepend(option);
53            else
54                openSubOptions.append(option);
55        };
56
57        menu.css('visibility', 'hidden');
58
59        if (currentFile.hasClass('selected')) {
60            menu.find('ul').html('');
61
62            addNewOption('Check', 'category-disabled', t(appName, 'Unselect all'), function () {
63                currentFile.closest('tbody').find('tr input.selectCheckBox:checked').trigger('click')
64            });
65
66            $.each($('.selectedActions:not(.hidden) .menu-center li:not(.hidden)'), function (i, selectedAction) {
67                var action = $(selectedAction);
68
69                addNewOption(action.attr('class'), $(action.find('span.icon')).attr('class').replace('icon', '').replace(' ', '').replace('icon-', ''), $(action.find('span:not(.icon)')).text(), function () {
70                    action.find('a').click();
71                }, false);
72            });
73        }
74        else {
75            var mimeType = currentFile.attr('data-mime');
76            var text = '';
77            var icon = 'toggle';
78            var onClick = function () {
79                currentFile.find('.filename .nametext').click();
80            };
81
82            var share = currentFile.find('.filename .fileactions .action-share');
83
84            if (share.length !== 0) {
85                addNewOption('Share', 'shared', (currentFile.attr('data-type') === 'dir' ? t(appName, 'Share folder') : t(appName, 'Share file')), function () {
86                    share.click();
87                });
88            }
89
90            if (!$('.selectedActions').hasClass('hidden')) {
91                addNewOption('Check', 'category-enabled', t(appName, 'Select'), function () {
92                    $(currentFile.find('input.selectCheckBox')).click();
93                });
94            }
95        }
96
97        var fileOptions = menu.find('li:not(.hidden)');
98
99        for (var key in fileOptions) {
100            if (!isNaN(key)) {
101                var li = $(fileOptions[key]);
102                var spans = $(li.find('span'));
103
104                options.append(new RightClick.Option($(li.find('a')).attr('data-action'), $(spans[1]).text(), $(spans[0]).attr('class'), function (event, option) {
105                    event.stopPropagation();
106                    event.preventDefault();
107
108                    $($('.fileActionsMenu').find('a[data-action="' + option.name + '"]')).click();
109                }));
110            }
111        }
112
113        setTimeout(function () {
114            currentFile.find('.action-menu').click();
115            $('.fileActionsMenu').css('visibility', 'hidden');
116        }, 100);
117
118        return options;
119    }, $('#app-content-files .files-fileList'), function () {
120        $('.filesSelectMenu').css('visibility', 'visible');
121    });
122})(window, jQuery, RightClick);

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.